[Alg] Carrièrekeuze: Java of .NET ?

Pagina: 1
Acties:

  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Hallo,

Naar aanleiding van een ander topic hier smijt ik ook even mijn dilemma in de groep.
Ik ben binnenkort afgestudeerd als licentiaat in de informatica, en heb al enkele sollicitatie's achter de rug. Een terugkomende vraag op deze sollicitaties was of ik een voorkeur had voor Java of voor .NET .
Ik heel misschien aan de slag kunnen binnen een bedrijf waar ze beide doen, en dan zou ik een keuze moeten maken tussen 1 van de 2 .
Nu is mijn vraag, als jullie zouden moeten kiezen, wat zou je kiezen?

Ik vind de keuze vrij moeilijk.
Ik heb van beide een meer dan behoorlijke kennis, en vind beide erg interessant.
Java vind ik erg leuk omdat je er erg vlot en zonder veel poespas in kan ontwikkelen.
Mooie duidelijke API's.
.NET (C++ dan vooral) vind ik erg leuk omdat je heel veel kracht en verantwoordelijkheid krijgt.
Je kan er ook erg low-level mee gaan, iets wat mij ook wel erg fascineert.
En compileren naar bytecode bevalt mij nog altijd beter dan virtuele machines en cross-platform.
Je hebt vooral een stuk meer controle eigenlijk.

Na veel gepeins denk ik dat ik een lichte voorkeur heb voor C++ .
Ik vind programmeren in C++ en .net net dat tikje uitdagender dan in Java, en daar hou ik wel van.
Maar qua carrière, zou dat een slimme zet zijn om mij op .net toe te leggen?
Of zou ik toch met de Java-stroom meegaan?
Ik heb zo'n beetje het gevoel dat er in de toekomst zo'n beetje een overvloed zal zijn aan Java-ontwikkelaars, terwijl C++ en .net ook zeker een belangrijke rol zullen blijven spelen denk ik.
(Nogal vaag gevoel hoor trouwens, niet echt op veel gebaseerd. Ik hoor er graag wat commentaar op!)

Ik kan me inbeelden dat deze keuze ook nogal bepalend is voor het verdere verloop van mijn carrière, vandaar dat ik er niet te licht overga...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

DieterVDW schreef op woensdag 10 augustus 2005 @ 05:23:
Hallo,
Een terugkomende vraag op deze sollicitaties was of ik een voorkeur had voor Java of voor .NET .
Als je nog zo aan het begin van je carriere staat zou ik gaan voor beide.
En compileren naar bytecode bevalt mij nog altijd beter dan virtuele machines en cross-platform.
Je hebt vooral een stuk meer controle eigenlijk.
Java compileerd juist naar bytecode, maar volgens mij ontgaat het principe van de JIT je helemaal. Bytecode is java`s equivalent van c code (dat is in essentie ook platform onafhankelijk) Pas op de JIT compiler wordt bytecode doorgecompileerd naar machine afhankelijke instructies (zoals de c-compiler dat doet met c-code)
Na veel gepeins denk ik dat ik een lichte voorkeur heb voor C++ .
Probeer maar eens een baan te vinden als c++ developer (zeker als je weinig ervaring hebt). Java/.NET wordt erg veel gevraagd.
Ik vind programmeren in C++ en .net net dat tikje uitdagender dan in Java, en daar hou ik wel van.
Je denkt niet goed. Taal is een hulpmiddel, het gaat erom wat je nog meer voor de kiezen krijgt. Java heb je in een paar week de basics onder de knieen, maar als je met j2ee problematiek in aanraking komt kan je jaren zoet zijn en nog maar een fractie van het geheel weten. Als je developer bent is werken op taal nivo niet bijster interessant.

Persoonlijk vind ik .NET onduidelijk en ontoegankelijk. Heb het gevoel als ik in een wereld kom waarbij krom denken heerst. Bij java (en dan moet je ook bij de goeie tools zitten zoals Spring) heb ik het gevoel dat ik thuis kom. Verder zijn er bij java opties (soms te veel) maar je zult vaak iets vinden wat bij jouw manier van denken/werken past. Bij .NET heb je gewoon weinig opties... als het werkt werkt het ok.. als je iets anders wilt, zoek het dan maar uit. Ik zie wel dat java api`s naar .NET omgezet zodat ze daar ook wat keuzes hebben, maar ze lopen altijd achter de feiten aan. ANT/Spring/Hibernate/Lucene etc etc.
Maar qua carrière, zou dat een slimme zet zijn om mij op .net toe te leggen?
Of zou ik toch met de Java-stroom meegaan?
Goed algemeen inzicht is nooit weg dus probeer niet zwart wit te denken. Als je de kans krijgt om je in Java te verdiepen, doe dat. Als je de kans krijgt om in .NET te verdiepen, doe dat. Dan krijg je een goed algemeen beeld en dat is extreem waardevol.

[ Voor 12% gewijzigd door Alarmnummer op 10-08-2005 10:01 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:52
DieterVDW schreef op woensdag 10 augustus 2005 @ 05:23:

Nu is mijn vraag, als jullie zouden moeten kiezen, wat zou je kiezen?
Tja, wat zou je kiezen.... Ik persoonlijk vind dat een beetje raar. Het is niet omdat je je nu bv op .NET richt, dat je daarom bv 2 jaar later niet de Java wereld zou kunnen inrollen, en omgekeerd.
En compileren naar bytecode bevalt mij nog altijd beter dan virtuele machines en cross-platform.
Je hebt vooral een stuk meer controle eigenlijk.
In .NET compileer je toch ook naar MSIL, en daar zit je toch ook met een soort 'virtuele machine' ?

[ Voor 7% gewijzigd door whoami op 10-08-2005 08:34 ]

https://fgheysels.github.io/


  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16
DieterVDW schreef op woensdag 10 augustus 2005 @ 05:23:
Na veel gepeins denk ik dat ik een lichte voorkeur heb voor C++ .
Ik vind programmeren in C++ en .net net dat tikje uitdagender dan in Java, en daar hou ik wel van.
Maar qua carrière, zou dat een slimme zet zijn om mij op .net toe te leggen?
Genoeg toekomst in .Net. Je ziet dat erg veel grote bedrijven ontwikkelen voor .Net, ook kwa webapplicaties. Volgens mij mis jij alleen een paar dingen.

Het maakt niet uit of je managed C++ of C# gebruikt in je webapplicaties, men zal er alleen over het algemeen vanuit gaan dat je C# gebruikt. Managed C++ is vooral voor mensen die altijd in C++ gewerkt hebben en zoveel mogelijk dezelfde syntax willen gebruiken. Managed C++ is niet 'uitdagender' dan Java. Een taal is ook niet uitdagend (nja, 'echt' C++ misschien, maar persoonlijk vind ik zoeken naar memoryleaks meer frustrerend dan uitdagend), een probleem wel.
Ik kan me inbeelden dat deze keuze ook nogal bepalend is voor het verdere verloop van mijn carrière, vandaar dat ik er niet te licht overga...
Absoluut niet. .Net is microsofts Java versie. Zoals anderen al zeiden, de taal en het platform waarvoor je ontwikkeld zijn bijzaak, vooral als je al Java kennis hebt, is C# gewoon meer vna hetzelfde.

https://niels.nu


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Als ik in jouw schoenen zou staan, zou ik voor Java gaan.

Java en .NET zijn 2 grote players in het enterprise gebeuren, waar ook de meeste job opportuniteiten te vinden zijn. Maar het gevoel dat ik heb is, dat veel schoolverlaters (hbo, uni) eerder voor .NET kiezen omdat dat vooral in het begin 'gemakkelijker/sneller' werkt. Als ik de commentaren van de schoolverlaters moet geloven natuurlijk. Daarom denk ik dat je, carrière gewijs, het best voor het JEE platform kiest (als je toch de keuze moet maken).

In eerste instantie omdat er in de toekomst minder Java-afstudeerders zullen zijn imho, maar in tweede instantie ook zeker omdat je dan al een vrij stabiele/goede basis hebt om eventueel later over te schakelen naar het .NET platform. Zeker omdat je de basis van het platform al goed onder de knie hebt. Verder zie ik ook meer developers de overstap van Java->.NET maken dan omgekeerd, omdat het imho simpeler is, vooral op het gebied van enterprise problematiek.
Opeens krijg je met EJB's te maken, jms, zware appservers, ...

Zoals hierboven namelijk al gezegd is, is de taal niet echt doorslaggevend... maar kijk gerust eens rond, solliciteer voor de verschillende jobs en kijk wat er uit de bus komt.
Ik denk dat je in geen geval een 'foute' keuze kan maken qua taal en denk daarom dat er nog andere zaken zijn waarop je vooral moet letten.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16
-FoX- schreef op woensdag 10 augustus 2005 @ 10:29:
In eerste instantie omdat er in de toekomst minder Java-afstudeerders zullen zijn imho, maar in tweede instantie ook zeker omdat je dan al een vrij stabiele/goede basis hebt om eventueel later over te schakelen naar het .NET platform. .
"Java aftudeerders"? Ik denk niet dat hier iemand aangenomen zou worden die afgestudeerd is in "Java". Welke taal/platform je gebruikt is echt compleet irrelevant. Bij ons is het afhankelijk van de klant, de meeste willen .Net, een aantal Java, en weer anderen werken in Delphi of vragen ons of we ajb even wat in PLSQL willen doen.
-FoX- schreef op woensdag 10 augustus 2005 @ 10:29:
Verder zie ik ook meer developers de overstap van Java->.NET maken dan omgekeerd, omdat het imho simpeler is, vooral op het gebied van enterprise problematiek.
Opeens krijg je met EJB's te maken, jms, zware appservers, ...
Zou het misschien ook iets te maken kunnen hebben met dat het .Net framework gewoon erg goed in mekaar zit? Persoonlijk zou ik enums en delegates niet meer willen missen. IMHO is Java zolangzamerhand een grote rotzooi aan het worden. Bovendien is een Java GUI in AWT of Swing gewoon geen optie.

[ Voor 34% gewijzigd door Hydra op 10-08-2005 11:13 ]

https://niels.nu


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Hydra schreef op woensdag 10 augustus 2005 @ 11:10:
"Java aftudeerders"? Ik denk niet dat hier iemand aangenomen zou worden die afgestudeerd is in "Java". Welke taal/platform je gebruikt is echt compleet irrelevant. Bij ons is het afhankelijk van de klant, de meeste willen .Net, een aantal Java, en weer anderen werken in Delphi of vragen ons of we ajb even wat in PLSQL willen doen.
Je weet goed genoeg wat ik bedoel met Java afstudeerders, nl: personen die na hun afstuderen zich verder willen specialiseren op het gebied van Java.
Een taal/platform is niet compleet irrelevant, er zijn namelijk zat klanten die wel ongeveer weten wat ze willen maar de implementatie aan het bedrijf in kwestie overlaten. Daar dient dan een weloverwogen keuze over gemaakt te worden en daar speelt dan weer de taal/platform een erg grote rol.
Bij kleinere ondernemingen zie ik wel eens dat er op meerdere paarden gewed wordt, nl: we maken wel hetgeen de klant vraagt en in welke taal hij verkiest, imho een foute aanpak omdat je nooit gespecialiseerd geraakt in een bepaald domein/taal/platform en dus ook de taal/platform ten volle kunt benutten... nuja, in sommige gevallen valt er gewoon niet te kiezen, dat weet ik ook wel.
Zou het misschien ook iets te maken kunnen hebben met dat het .Net framework gewoon erg goed in mekaar zit? Persoonlijk zou ik enums en delegates niet meer willen missen. IMHO is Java zolangzamerhand een grote rotzooi aan het worden. Bovendien is een Java GUI in AWT of Swing gewoon geen optie.
Ik denk niet dat het de bedoeling is om deze discussie te laten ontaarden in een Java vs NET. Het .NET platform zit ook goed in elkaar, maar Java moet er zeker niet voor onderdoen.

Java GUI's geen optie? bekijk deze gast zijn blog maar eens, hij pakt naar mijn mening nochtans erg mooie gui's in Java: Romain Guy

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 03-05 23:13

alienfruit

the alien you never expected

Als je de keuze mag maken, zou ik ook voor beidde gaan. Als eenmaal de nieuwe Windows komt lijkt mij dat .NET steeds belangrijker wordt, en als je dan Java/J2EE kent. Dan ben ik van mening dat de werkgever minder makkelijk om je heen kan ;) Omdat Java en .NET toch zoveel op elkaar lijkt, beide bytecode (JIT en MSIL) en allebei met een mooie framework erbij. Het lijkt mij dat de overstap niet zo moeilijk is, zelf heb ik wel het gevoel dat je onder .NET meer controle hebt, dan in Java. Maar dat kan misschien ook liggen aan mijn te verwaarlozen kennis van Reflection/JIT is.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

alienfruit schreef op woensdag 10 augustus 2005 @ 12:35:
Omdat Java en .NET toch zoveel op elkaar lijkt, beide bytecode (JIT en MSIL)
Qua taal vind ik c# en Java niet echt verschillen (vind c# zelfs iets mooier). Maar het gaat juist om de stuf erom heen.Het werken onder .NET is wel heel erg anders dan onder Java en daar gaat het om. Taal = onbelangrijk. Frameworks/platforms/ide`s.. die zijn belangrijk.
en allebei met een mooie framework erbij. Het lijkt mij dat de overstap niet zo moeilijk is, zelf heb ik wel het gevoel dat je onder .NET meer controle hebt, dan in Java.
Op taal nivo: zeker. Verder? Ik vind juist dat je bij java totale controle kunt bereiken mits je de goeie tools maar gebruikt. Java heeft last van een erge ziekte: namelijk specs maken voor tool developers maar geen specs voor developers. Daarom kies ik al bijna niet voor crap die Sun tegenwoordig maakt en tools waar ik makkelijk en eenvoudig mee kan werken.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16
-FoX- schreef op woensdag 10 augustus 2005 @ 11:25:
Bij kleinere ondernemingen zie ik wel eens dat er op meerdere paarden gewed wordt, nl: we maken wel hetgeen de klant vraagt en in welke taal hij verkiest, imho een foute aanpak omdat je nooit gespecialiseerd geraakt in een bepaald domein/taal/platform en dus ook de taal/platform ten volle kunt benutten... nuja, in sommige gevallen valt er gewoon niet te kiezen, dat weet ik ook wel.
Het is geen kwestie van 'wedden op paarden'. Ik heb het hier niet over een kleine site, maar grote projecten waar een aantal bedrijven in betrokken zijn. Een systeemarchitectuur is van een hoop dingen afhankelijk, als er besloten wordt in Java te werken, kun je als een van de spelers niet gaan lopen klagen dat je 't perse in .Net wil doen. Dat is voor veel bedrijven gewoon geen optie. En vice versa.

Bovendien is er geen enkele reden je te 'specialiseren' in alleen Java of .Net. Die twee zijn vrijwel identiek. Als je niet mee kunt komen met de vraag kan het zo maar eens gebeuren dat een grote klant bij je wegloopt. Voor jou 10 anderen.
Ik denk niet dat het de bedoeling is om deze discussie te laten ontaarden in een Java vs NET. Het .NET platform zit ook goed in elkaar, maar Java moet er zeker niet voor onderdoen.
Persoonlijk vind ik Java er wel voor onderdoen, en als het aan mij ligt doen we 'het' danook in C#/.Net. Maar het is niet aan mij of aan ons bedrijf. Wij leveren een backend, en vanuit welk platform je daarmee wil interfacen maakt niet uit. We gaan een klant niet C# in de maag splitsen omdat wij vinden dat het beter is, wij zijn slechts een onderdeel van een groter geheel.
Java GUI's geen optie? bekijk deze gast zijn blog maar eens, hij pakt naar mijn mening nochtans erg mooie gui's in Java: Romain Guy
Mooi doet er IMHO weinig toe. Swing is bijzonder log.

https://niels.nu


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:47

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op woensdag 10 augustus 2005 @ 09:45:
Managed C++ is vooral voor mensen die altijd in C++ gewerkt hebben en zoveel mogelijk dezelfde syntax willen gebruiken.
Vergeet Managed C++, de syntax is bagger gaat bovendien op de schop. Je kunt je wat dat betreft beter verdiepen in C++/CLI die met de whidbey release komt. (Ik heb overigens nooit memory leaks in C++, maar dat terzijde ;))

[ Voor 9% gewijzigd door .oisyn op 10-08-2005 13:04 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Het is hierboven al gezegd, maar laat ik ook maar een duit in het zakje gooien.

Je kunt inderdaad het beste voor allebei gaan. Kwa taal lijken C# (de voorkeurs taal in .NET) en Java sterk op elkaar. Kwa platform heb je ook met beide dat ze zowel een serverside gedeelte in de library hebben als een clientside.

Ik denk dat beiden volwassen produkten zijn, waar een sterke fillosofie achter zit en waar je veel mee kunt. Het voordeel van met beiden omgaan is dat je steeds meer overeenkomsten gaat zien, zowel in het serverside gedeelte als het clientside, en dat je nieuwe dingen eerder kunt begrijpen.

Ik heb zelf in het verleden met verschillende GUI clientside frameworks/toolkits gewerkt (MFC, Motif, Qt, AWT/Swing, SWT) en dus begrijp ik 'redelijk' snel een totaal andere.

Mijns inziens heeft Microsoft met haar webcomponenten in ASP.NET een voorsprong op SUN. Die komt daar nu ook wel mee met JSF (nu nog los, straks vast onderdeel van Java EE), maar de markt voor losse componenten en IDEs moet nog echt goed op stoom komen.

Nog een losse opmerking: Bij Java zit je niet vast aan Swing voor de clientside. Als alternatief heb je de uitstekende SWT toolkit gemaakt door IBM. Deze is oorspronkelijk bedoeld om Eclipse mee te bouwen, maar is nu gewoon een losse toolkit. (dit is precies dezelfde situatie als dat GTK oorspronkelijk alleen een eigen widget zet voor The Gimp was).

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 03-05 23:13

alienfruit

the alien you never expected

Qua taal vind ik c# en Java niet echt verschillen (vind c# zelfs iets mooier). Maar het gaat juist om de stuf erom heen.Het werken onder .NET is wel heel erg anders dan onder Java en daar gaat het om. Taal = onbelangrijk. Frameworks/platforms/ide`s.. die zijn belangrijk.
Natuurlijk zijn de tools belangrijk omdat je de tools kan gebruiken voor het verhogen van de productiviteit, ding waarvan ik vind dat je die niet in de taal zelf moet oplossen. Maar er juist buiten, bijvoorbeeld in een ide zoals Eclipse of plug-in voor zo'n IDE (CodeRush voor Visula Studio).
Op taal nivo: zeker. Verder? Ik vind juist dat je bij java totale controle kunt bereiken mits je de goeie tools maar gebruikt.
Ja, op zekere hoogte op taal nivo, je kan gewoon alles met .NET wat je wil. Ziet generics niet in? Nou dan bouw je zelf een oplossing in MSIL ervoor. Enige probleem is dat de classes die van geneics gebruiken niet lekker samenwerken in andere .NET taal. Over wat voor controle heb jij het dan over?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

alienfruit schreef op woensdag 10 augustus 2005 @ 14:58:
Ja, op zekere hoogte op taal nivo, je kan gewoon alles met .NET wat je wil. Ziet generics niet in? Nou dan bouw je zelf een oplossing in MSIL ervoor.
Dit vind ik een erg onbruikbare opmerking. Normale mensen die kunnen dit niet toevoegen, dus deze oplossing heeft praktisch gezien 0.0 waarde.
Enige probleem is dat de classes die van geneics gebruiken niet lekker samenwerken in andere .NET taal. Over wat voor controle heb jij het dan over?
Over alles mbt het draaien van applicaties. Ik gebruik veel Spring aangevuld met eigen addons, een superstrakke channels implementatie, Lucene, strak platform over Lucene heen, het concurrency library van Java 5, uiteraard aangevuld met mijn eigen zaken. Dat is controle.. tot in de kleinste puntjes bepaalde processen kunnen beheren zonder dat je extreem moeilijk hoeft te doen. Ik heb overzicht, ik heb controle, ik ben flexibel, ik ben de baas en ik kan uitspraken doen. Dat is wat ik wil.

[ Voor 5% gewijzigd door Alarmnummer op 10-08-2005 15:25 ]


Verwijderd

Je lijkt nu als belangrijkste beslissingspunt de technische kwaliteiten van de verschillende platformen te nemen. Misschien moet je ook wat verder kijken en nadenken over de soort opdrachten dat je gaat krijgen, en wat jij graag voor opdrachten zou willen doen.

Met .Net zal je vaker een desktop app maken of een website, waar je met Java eerder een uitbreiding zal doen aan een bestaand enterprise product. Dit is een hele grove generalisatie, maar het snijdt wel hout. Dat ligt dus niet zozeer aan de technische mogelijkheden (wat het kan), maar meer aan waar het voor gebruikt wordt. MS is pas net zijn voeten aan het natmaken in de enterprise markt, maar voor Java bestaat daar al veel spul voor van verschillende leveranciers.

Kijk verder ook eens rond bij het bedrijf zelf en wat voor opdrachten ze doen. De meeste bedrijven schrijven eigenlijk vrije saaie input / output administatiesoftware, en dan gebruik je slechts een beperkt deel van de techniek, en is het meest interessante werk (mijns inziens) het modelleren / ontwerpen van de applicatie.

Bedenk ook dat een platform / taal slechts een middel is tot een doel. In het begin van je carriere zal het veel van je aandacht opeisen, maar hoe verder je komt, des te minder relevant het wordt, dus maak niet een enorme halszaak van je keuze nu. Als je veel ervaring opdoet met software ontwikkelen op een OO manier, leert samenwerken in teams, denkt over en werkt aan kwaliteitsbeheersing, patterns herkent, kan communiceren met een klant, etc, dan is die kennis later veel meer waardevol dan de specifieke taal- / platformeigenschappen.
Pagina: 1