EfBe schreef op vrijdag 17 april 2015 @ 08:25:
[...]
Ik begrijp ook niet goed waarom .NET core zo nodig op linux en mac moet draaien. Het lijkt alsof ze dolgraag de developers die weg zijn gegaan en nu node gebruiken terug willen winnen. Maar die krijgen ze nooit meer terug, die zijn niet voor niets weg. Ze kunnen zich beter focusen op wat de devs die nog op .net zitten nodig hebben.
Linux en de Mac zijn razend populair bij jonge ontwikkelaars. Kijk naar de gemiddelde developer conference - zelfs bij Microsoft - en bijna iedereen loopt rond met een MacBook Pro. Microsoft is heel bang dat ze de boot missen. En dan gaat het ze duidelijk niet om de programmeurs van nu, maar die van de toekomst.
Ik begrijp op zich wel waarom ze bepaalde dingen doen, maar ik vind de manier waarop om te huilen.
Als je kijkt naar Java bijvoorbeeld, daar hebben ze hetzelfde probleem: de JVM en JDK is een grote monolithische puinhoop. Daar moet project Jigsaw verandering in brengen. Java 9 gaat modulair worden.
Dus zijn ze bij Oracle al jaren bezig om alle libraries zo in te richten dat ze een duidelijke dependency structuur hebben. De spaghetti aan het ontwarren zeg maar. Daar zijn ze de afgelopen jaren al behoorlijk ver mee gekomen en met de volgende release wordt de boel dus echt modulair. En het mooie is:
alles blijft werken. De Java 8 SDK is al vele malen "opgeruimder" dan Java 7.
Heb je geinvesteerd in JSF of andere EE libraries? Bouw je client applicaties met Swing of ben je wat avontuurlijker bezig met JavaFX? Er wordt nog steeds aan gewerkt. Sterker nog, je kunt zelfs JavaFX op een Android telefoon draaien.
Er wordt niet gezegd van "oh laten we de hele boel wegpleuren en opnieuw beginnen".
Dat vind ik een heel sterk argument voor het kiezen van Java. Het is natuurlijk ook meteen het nadeel ervan. Als ik met Java aan het programmeren ben, voelt het nog steeds als het jaar 1999. Er zijn geen coole type inference features, automatic properties (ueberhaupt geen properties

), verbose exception handling, enzovoorts. Java 8 heeft dan iig nog lambda's geintroduceerd. En die gebruiken dan ook meteen een minder data georienteerde en juist FP trouwere syntax dan LINQ.
Maar ja, het werkt wel. En het werkt veel sneller dan 10 jaar geleden. De JVM is enorm geoptimaliseerd.
Daarom denk ik ook dat een modernere taal die de JVM target, zomaar eens de toekomst kan hebben. Scala was mijn persoonlijke favoriet, maar probeerde zoveel dingen tegelijk op te lossen dat het niet meer praktisch werd (dat zien ze ook in, dus er is nog hoop). Maar wie weet wat een Kotlin (van JetBrains) bijvoorbeeld gaat doen (en daar kun je dan gewoon weer alles mee.. zelfs Swing applicaties bouwen, want het blijft op de JVM draaien).
Ik ben nu al bijna een jaar aan het twijfelen

.NET developer by day, Java developer by night

Het zou me niet verbazen als ik op een dag gewoon helemaal switch.
En er zijn genoeg mensen die mij dan voor gek verklaren, want die hebben vooral het Java van 10 jaar geleden gezien en zijn toen heel snel overgestapt op .NET. Maar Java stond al die tijd niet stil en de frameworks er omheen al helemaal niet.
Als ik een web applicatie met Spring MVC bouw dan zit dat zoveel mooier in elkaar dan met Asp.net.. de scheiding tussen een web container en een applicatie is ook erg fijn. Via JNDI lookups kan ik allerlei configuratiewaarden ophalen. Geen web.config die op elke server anders is. Ik gooi gewoon de WAR op de server en het werkt. Fire and forget.
Dependency injection die gewoon in het framework zit en aspect oriented werkt. Ga zo maar door.
Het leren van Java en vooral de frameworks er omheen was voor mij een scary experience. Ik ging .Net in een heel ander licht zien. Het .Net waar ik al bijna 12 jaar mijn brood mee verdien
Microsoft wil heel graag dat diezelfde mensen die mooie open source frameworks als het Spring framework of het Play framework hebben gemaakt, dat ook voor .NET gaan doen. Scheelt Microsoft ook een hoop geld (hoeven ze het zelf niet meer te doen).
Dus gaan ze nu op de open source tour en moet het op Linux en de Mac werken. Anders gaan ze die developer mindshare nooit krijgen.
Ask yourself if you are happy and then you cease to be.