Sinds een jaartje ben ik naast mijn werk als .NET ontwikkelaar bezig met het leren van Java. Dat begon met het bouwen van Swing applicaties, en inmiddels ben ik web applicaties aan het bouwen. Eerst wat testprojectjes gedaan met JSF en uiteindelijk meer clientside bezig met AngularJS, maar wel een API met JAX-RS gebouwd (en PostgreSQL als database en Spring JdbcTemplate als simpele mapper).
Hartstikke leuk allemaal, vooral het open source en portability aspect ervan (C# icm Mono is nooit mijn ding geweest), maar Java is ergens natuurlijk ook een wat verouderde taal. Met Java 8 hebben ze wel wat nieuwe features toegevoegd om functioneel te kunnen programmeren (streams
), maar het blijft voor de rest een vrij verbose taal. En met de aankondiging van Swift (Apple) aan de ene kant, het lezen van een hoop nieuws over Python aan de andere kant, krijg ik steeds meer het gevoel dat we ons naar een de facto standaard aan het bewegen zijn dat talen minder verbose worden, wel strongly maar dynamisch getyped zijn, functional programming aspecten bevatten, etc.
En zodoende kwam ik terecht bij Scala, Haskell en Clojure. Nu is Haskell niet echt general purpose, maar vooral op functional programming gericht. En Clojure brengt bij mij oude nachtmerries naar boven van mijn tijd als AutoCAD ontwikkelaar (LISP
AKA "shit ik ben ergens een haakje vergeten"
).
Maar Scala ziet er wel goed uit. De syntax spreekt mij wel aan (en naar mijn idee heeft Apple met Swift een hoop gekopieerd daarvan).
Anderzijds heb ik echter ook het idee dat Scala niet echt voeten aan de grond krijgt. Je ziet wel een paar vacatures in NL, maar op diverse internetfora lijken de meesten zoiets te hebben van "Java is toch ook prima? Zoveel voegt het niet toe, omdat we goede tooling hebben die veel voor ons genereert".
Kortom, hoe staan jullie hierin?
Is goede tooling belangrijker dan een cleanere syntax? Heeft Scala toekomst? Of blijft Java zo groot als het nu is en blijven talen als Scala (en Haskell, Clojure) een soort van "testing ground" voor nieuwe technieken die uiteindelijk ook aan Java worden toegevoegd?
PS:
Eigenlijk blijf ik C# een mooie taal vinden, maar het hangt nog teveel aan Windows. En voor mijn priveprojecten werk ik nou eenmaal graag met OS X en Linux. Daardoor ben ik Java (en de bijbehorende volwassen tooling) steeds meer gaan waarderen. En ik zie het ook als een extra vaardigheid die misschien geld waard kan zijn. Kortom, dat ik meer kan dan alleen .NET.
Hartstikke leuk allemaal, vooral het open source en portability aspect ervan (C# icm Mono is nooit mijn ding geweest), maar Java is ergens natuurlijk ook een wat verouderde taal. Met Java 8 hebben ze wel wat nieuwe features toegevoegd om functioneel te kunnen programmeren (streams
En zodoende kwam ik terecht bij Scala, Haskell en Clojure. Nu is Haskell niet echt general purpose, maar vooral op functional programming gericht. En Clojure brengt bij mij oude nachtmerries naar boven van mijn tijd als AutoCAD ontwikkelaar (LISP

Maar Scala ziet er wel goed uit. De syntax spreekt mij wel aan (en naar mijn idee heeft Apple met Swift een hoop gekopieerd daarvan).
Anderzijds heb ik echter ook het idee dat Scala niet echt voeten aan de grond krijgt. Je ziet wel een paar vacatures in NL, maar op diverse internetfora lijken de meesten zoiets te hebben van "Java is toch ook prima? Zoveel voegt het niet toe, omdat we goede tooling hebben die veel voor ons genereert".
Kortom, hoe staan jullie hierin?
Is goede tooling belangrijker dan een cleanere syntax? Heeft Scala toekomst? Of blijft Java zo groot als het nu is en blijven talen als Scala (en Haskell, Clojure) een soort van "testing ground" voor nieuwe technieken die uiteindelijk ook aan Java worden toegevoegd?
PS:
Eigenlijk blijf ik C# een mooie taal vinden, maar het hangt nog teveel aan Windows. En voor mijn priveprojecten werk ik nou eenmaal graag met OS X en Linux. Daardoor ben ik Java (en de bijbehorende volwassen tooling) steeds meer gaan waarderen. En ik zie het ook als een extra vaardigheid die misschien geld waard kan zijn. Kortom, dat ik meer kan dan alleen .NET.
Ask yourself if you are happy and then you cease to be.