Archief - [PROG] De grote oude Java vs .NET topic

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bavo aka Joske

Legacy Member
Onlangs is in de praktijk gebeleken dat ervaren Java developers gemiddeld toch beter onderhoudbare en performante (!) applicaties afleveren dan ervaren C++ developers. Dat ligt niet aan de taal, wel aan de mentaliteit. Hoe je iets ontwerpt, hoeveel rekening je houdt met documentatie en logging etc.

Ook al vind ik goede C applicaties de max, en de devs knap van verstand. De filosofie is gewoon anders.

Tyfius

Legacy Member
dJeez zei:
Behalve als je cross-platform wil ontwikkelen, en neen, Mono is niet .NET.
Het probleem ligt niet aan Mono. De ontwikkeling gaat redelijk goed vooruit en het overgrote deel van de .NET applicaties kunnen zonder noemenswaardige problemen op Linux gedraaid worden (Mac heeft Mac specifieke problemen, maar dat geldt voor Java applicaties ook tegenwoordig). Het probleem stelt zich wanneer applicaties gebruik gaan maken van externe Windows specifieke libraries en andere resources. En dat ligt niet aan Mono maar aan de Windows implementatie en dat probleem heb je bij Java ook.

Ik heb een aantal jaar geleden als eindwerk een client-server applicatie geschreven in Mono, die zonder probleem ook op Windows compileerde en daar op draaide.

Er kan en moet nog veel gewerkt worden aan Mono, en niemand verbiedt jou van daaraan deel te nemen. Bug gevonden, klasse die je nodig hebt en die nog niet geïmplementeerd is, doe het gewoon, maak een patch en stuur die op naar de mailing list.

Bavo aka Joske

Legacy Member
Nauwelijks een argument voor bedrijfskritische applicaties, dat.

QplQyer

Legacy Member
Ice zei:
100% agree, een taal leren die je niet gaat gebruiken is toch nutteloos ;)

Een nieuw paradigma leren kan nochtans enorm verbredend werken. Daarom is iets zoals Haskell, Erlang, (Ans)Prolog, Coq, LISP/Scheme, Scala ... leren zonder de taal later ooit te gebruiken zeker nuttig. Je gebruikt de taal dan misschien niet later, je leert wel op een andere manier naar je probleem kijken (en éénmaal je bv. Haskell hebt doorgrond leer je gefrustreerd raken over kleine dingen die ontbreken in al die imperatieve talen, zoals algebraic datatypes, type inference, geen hogere orde functies etc. Ook heel tof.).

Tyfius

Legacy Member
Bavo aka Joske zei:
Nauwelijks een argument voor bedrijfskritische applicaties, dat.
Toen Java pas op de markt kwam was er van dat cross-platform zijn ook nog niet veel sprake.

Daarnaast is Mono een community iets, daar zit geen bedrijf met miljarden dollars achter, zoals bij Sun en Java wel het geval was. Novell heeft die mogelijkheden niet dus is het vrij logisch dat er beperkingen zijn. Als je dat mee wil nemen in de vergelijking die je maakt, dan moet je C# als taal en Java als taal op Windows vergelijken, zonder die 1001 3th party libs en cross-platform implementaties die er door de jaren heen werden ontwikkeld.

Bavo aka Joske

Legacy Member
Uw passie is mooi en harverwarmend, en past ideaal in een kader van onafhankelijke ontwikkelaars en hobbyisten. Als het gaat om betrouwbare applicaties echter, is het geen keuze en geen argument te zeggen dat het dat ooit wél zal zijn, indien het nu reeds wordt gebruikt.

Je zegt dat Java dat indertijd ook niet was, misshcien refereer je naar de versies 1.0 en 1.1 die hard in hun kinderschoeznen stonden, of naar de eerste enterprise versies. Dat is juist, en dat is dan ook niet gebruikt voor zulke doeleinden. Java was in vele gevallen het minste kwaadaardige (zie servlets versus CGI), het meest handige (applets) of het enige bruikbare cross-platform voor meer academische toepatssingen. C-talen en Basic bleven de eerste keuze voor desktop applicaties omdat ze gewoon beter daarvoor waren.
Java heeft zijn doorbraak gekend door serieus te evolueren op server-niveau, mede dankzij de kennis van Sun daarin die servers ontwikkelde, en door in te spelen op de behoefte platformonafhankelijk te blijven. Mede dankzij de filosofie daarachter kreeg het ook enorme vrijblijvende steun van geniale ontwikkelaars, zonder hen daarvoor te moeten betalen. Dat helpt.

Java was trouwens altijd cross-platform, dat was de eerste doelstelling van het platform (de JVM). Mono volgt Java in dezelfde geest, maar imo een decennium te laat. Er is reeds een platform, en .NET voegt te weinig toe voor de meeste ontwikkelaars om de focus te gaan verleggen.

dJeez

Legacy Member
Tyfius zei:
Toen Java pas op de markt kwam was er van dat cross-platform zijn ook nog niet veel sprake.

Daarnaast is Mono een community iets, daar zit geen bedrijf met miljarden dollars achter, zoals bij Sun en Java wel het geval was.
Nu neem je toch een loopje met de realiteit. Het was reeds bij de aanvang de bedoeling van Java op verschillende platformen (voornamelijk consumer devices met beperkte memory footprint) te draaien (denken we maar aan de vele smartcards, GSMs ed meer).

Daarnaast bepaalt Microsoft wat er in het .NET platform komt, niet Ximian, de Icaza of Novell. Mono zal dus ook altijd achter de feiten aan blijven hollen, er is al een .NET 3.5 beschikbaar en Mono hangt nog steeds ergens tussen .NET 1.1 en 2.0. De enige ander optie zou zijn dat ze de banden met het .NET platform doorbreken, maar dan valt imho het nut van Mono ook direct weg.

Java op Mac (OS X) draaien heeft - behoudens het feit dat JDK 1.6 niet meer beschikbaar is voor de oudere Apple PPC hardware en Apple ook wat achterloopt bij het afleveren van recente JDKs - geen echte nadelen. Er zijn slechts enkele details waar je op moet letten, zeker als je wil voldoen aan de Apple Human Interface guidelines - maar de Quaqua L&F lost dat probleem indien nodig wel op :p. Ik spreek hier uit eigen dagdagelijkse ervaring.

Daarnaast zorgde de OpenJDK ook voor een serieuze boost. Er staan ons nog mooie tijden de wachten :p.

Bavo aka Joske

Legacy Member
OpenJDK mocht er wel al langer zijn geweest. Het 'community proces' gaat ook iets te traag om qua standaarden kort op de bal te spelen. De standaarden lopen de innovatie achterna, zoals Mono dat bij .NET doet.

Apple en Java zijn overigens niet echt dikke vrienden (het kan, maar het kan beter). Apple monopoliseert graag zelf, third party betekent weinig voor hen.

UniKorn

Legacy Member
In de meeste gevallen is dat cross-platform verhaal een hoop gezever. Ja, de applicatie draait op verschillende systemen, maar de zichzelf respecterende IT-er heeft meestal in zijn organizatie voor standaarden gezorgd, waardoor de vraag naar cross-platform minder belangrijk wordt. Niet onbestaande, maar veel minder belangrijk.

En in mijn ogen heeft Microsoft een grote stap voorwaarts gemaakt, vooral met framework 3.0 en 3.5. The future looks bright :)

Bavo aka Joske

Legacy Member
Zolang je maar weet dat het merendeel van nieuwe concepten in .NET vaak al jaren bestaan in de opensource wereld

Ice

Legacy Member
QplQyer zei:
Een nieuw paradigma leren kan nochtans enorm verbredend werken. Daarom is iets zoals Haskell, Erlang, (Ans)Prolog, Coq, LISP/Scheme, Scala ... leren zonder de taal later ooit te gebruiken zeker nuttig. Je gebruikt de taal dan misschien niet later, je leert wel op een andere manier naar je probleem kijken (en éénmaal je bv. Haskell hebt doorgrond leer je gefrustreerd raken over kleine dingen die ontbreken in al die imperatieve talen, zoals algebraic datatypes, type inference, geen hogere orde functies etc. Ook heel tof.).
Akkoord, mijn comment sloeg eerder op zowel C#, VB.net en Java leren wat eigenlijk gewoon 3x hetzelfde is.

Ik werk dagelijks in Smalltalk & in Java, dus geloof mij ik vloek serieus veel als ik weer in Java moet werken :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan