[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] C# eller Java



Marc Cromme wrote:
On Sun, 13 Mar 2005 19:36:39 +0100, Peter Makholm wrote:


Mono (.net) har den fordel at I ikke fravælger en hel verden af
programmeringssprog bare ved at vælge C#. Hvis der er en delopgave der
er bedre at løse med et andet sprog (IronPython, SML, whatever) så gør
man det.

Med JNI (Java Native Interface) er det muligt at få Java til at interface med andet end Java. Nå jeg hører om C# tænker jeg altid på Java. Faktisk er hele .NET Java. Der er bare ikke så mange mennesker der siger det højt. Det kan godt være at Microsoft kalder CLR for en
"Execution Engine" men læs "Virtual Machine". Selv Microsoft mener ikke der er stor forskel:


http://blogs.msdn.com/brada/archive/2005/01/12/351958.aspx

.NET er det samme koncept som Java og også grunden til at Microsoft har betalt to milliarder til Sun for lov til at bruge Sun's patenter.

>>Og C# (specielt version 2.0) ser ud til at have ganske rare features.
>
> Enig. Det ser faktisk ret gennemtænkt ud. Spørgsmålet er bare om C#
> også vilæ blive sprøjtet ud med nye og nyere versioner hele tiden,
> således at open source verdenen ikke kan følge med. Deter ihvert fald > en grim ting ved Java .. og et reelt problem for OS at følge med ...


Ok, den fik jeg ikke fat i! Java udkommer ikke hele tiden i nye versioner og når det gør, så kan de nye VM'er sagtens køre gammel Java kode - det er bagudkompatibelt. Tag f.eks. Java 5.0 dens VM kan sagtens køre gammel Java kode. Dog kan ny 5.0 kode ikke køre på gamle VM'er - hvilket egentligt er meget rimeligt!

At et sprog bliver fornyet er ikke en grim ting!!!!! Java 5.0 var også ventet og annonceret i meget god tid. Så jeg forstår slet ikke kritikken.


Jeg har aldrig brudt mig om Java. Jeg mener at Java er gennemsyret af
en filosofi om at et sprog passer alle (personer/opgaver), hviket jeg
er meget uenig i. Her er dotnet-platformen meget mere åben for
programmørens valg.


Det er også min fornemmelse.

Fornemmelser er ikke det samme som at vide. JNI er netop dér for at interface med anden kode end Java. Derudover kan jeg ikke se hvor I skulle få de fornemmelser fra?! Java forhindrer ikke at man bruger anden kode.


Desuden er dotnet en standard, hvilket Sun aldrig har turdet. Man kan
jo kun gisne om hvorfor Sun ikke tør. De har flere gange flirtet med
tanken om at få standardiseret Java, men opgivet det hver gang.

Det er en af de gode ting ved C#, enig. Man kan håbe at de værreste
ideer ikke få lov at overleve standardiserigsarbejdet.

At det skulle være et plus at være en standard er et eksempel på conventional wisdom, som ingen stiller spørgsmålstegn ved - selvom man burde!!!!! Jeg kan ikke se hvordan Java skulle være så meget dårligere stillet end andre sprog som er standardiseret!


Faktisk jo mere jeg dyrker C++ jo gladere bliver jeg for Java. F.eks. har C++ ingen standard på det binære nivau - ABI. Hvilket giver store problemmer hvis man skriver biblioteker og tvinger en til at bruge idiomer såsom opaque-pointers. Der er også et white-paper fra 2005 som forslår at C++ skal have reflections ligesom... Java! Derudover er der ingen tvivl om at managed code med carbage collector som i Java er "the way to go". Hele Windows bliver jo managed med Longhorn og .NET. Så Java er absolut ikke et sprog på retur.

Det virker på mig som om at også open-source er vigtig her og community support. Prøv at kigge på projekter hos freshmeat fordelt på sprog.

http://freshmeat.net/browse/160/

Her finder i 162 projekter skrevet i C# ... WOW det var vel nok mange ;-). Til sammenligning har Java 3858 projekter!!!

Iøvrigt når i taler om standarder så har Microsoft selv en del erfaring med at bryde dem... bla. med Java og så med C++ (f.eks. for-løkkerne - gammel sag) og nu med Managed C++ hvor multibel nedarvning ikke er tilladt - indrømmet ikke en stor forbrydelse. Selvom man patcher sin gamle VC6.0 får men ikke den rigtige implementering af STL bl.a.

Som led i "standardiseringsarbejdet" bliver der også lyttet til Java brugerne, så jeg kan ikke se jeres bekymringer.

Open source-muligherne for at arbejde med dotnet er ikke helt så modne
som de tilsvarende Java-muligheder. Men det skal nok komme.

Nee - men mono ser nu ret fint ud.

Håber at I får ret - seriøst. Men jeg håber at I ved at Mono ikke en fuld implementering af .NET, og det er langtfra sikkert at det nogensinde bliver det. En så stor beslutning som hvilket sprog et projekt skal skrives/porteres til - det spørgsmål tråden startede med, bør ikke dannes på grundlag af måske'er og luftige håb, men konkrete fakta.


Fakta er at Java er et meget modent sprog. Der findes en hel del projekter - også OS som er modne - tilsvarende kan ikke siges om C#. Se blot på Freshmeat.

Fakta er at Java's VM er optimeret og moden, hvilket C#'s CLR ikke kan være endnu.

JIT compilere har gjordt Java rigtigt hurtigt. Især kode såsom algoritmer der oftest kører i et for/while loop kan optimeres run-time af JIT. Søg på nettet og I vil finde folk der hævder at deres algoritmer kører hurtigere end tilsvarende C++. Til numeriske beregninger er Java absolut ikke dårligt - men heller ikke super. Min pointe er at Java passer fint til applikationer, da de typisk ikke bruger CPU særlig meget.

/MArk



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:44 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *