Java doet voorlopig nog mee
1. Java heeft het programmeeronderwijs meeDe programmeertaal Java is de afgelopen vijf à tien jaar in een hoog tempo ingeburgerd in hbo-land.
Java is voor grote aantallen studenten de eerste programmeertaal waarmee kennis wordt gemaakt. De opleidingen kiezen in de propedeuse voor Java omdat het een actuele heldere objectgeoriënteerde taal is en prima geschikt om mee te leren programmeren. Hergebruik van de beschikbare kennis en programmatuur binnen de opleidingen leidt ertoe dat Java ook in de hogere jaren veel gebruikt wordt. PHP, C# en C zijn andere talen die in het onderwijs veel voorkomen, maar Java overheerst op dit moment. Dit leidt tot een continue instroom van Java-kennis in het bedrijfsleven, iets waar Microsoft nog hard voor moet werken.
Dat studenten minder oog hebben voor de formeel wiskundige correctheid van programma’s (zoals een aantal weken geleden gesteld) is inderdaad waar en is het gevolg van veranderende onderwijsprogramma’s. Java hiervoor als oorzaak aanwijzen is te vergelijken met het verwijt dat scholieren slechter rekenen vanwege het merk rekenmachine dat ze hebben.
2. Java heeft de open-sourcebeweging mee
De belangrijkste stuwende kracht achter de opmars van Java is de enorme ontwikkeling die open source doormaakt de laatste jaren. Of men voor een open-sourceomgeving kiest vanuit financiële of ideologische overwegingen, Java is een logische keuze als ontwikkeltaal. In voorgaande bijdragen zijn hier al voorbeelden van gegeven.
Binnen het onderwijs heeft de vraag vanuit het beroepenveld ertoe geleid dat open-sourcetools en gedachtegoed ook in het curriculum zijn opgenomen, wederom soepel aansluitend op de Java-onderdelen en docentkennis die al aanwezig waren. Java en open source versterken elkaar dus, ook binnen het onderwijs.
3. De productiviteit van Java-ontwikkelaars?Het heikele punt, hoe staat het met de productiviteit van Java-ontwikkelaars? Op een seminar vergeleek Rick van der Lans een Java-ontwikkelaar met een martialartsexpert die door één kogel (.NET? 4GL?) werd neergelegd. Dit heeft enerzijds met techniek en anderzijds met mentaliteit te maken.
Qua techniek durf ik te stellen dat de eerste versies van J2EE verantwoordelijk waren voor het dal waar Java doorheen is gegaan. De introductie van J2EE/EJB’s in het klaslokaal was een drama. De complexiteit was zo groot dat de techniek feitelijk onbruikbaar was. De snelle opmars van PHP voor het ontwikkelen van eenvoudige webapplicaties bracht de doodsteek. Zoals Huub Cleutjes betoogt herstelt de Java-community zich van dit debacle. Maar dat er nog werk aan de winkel is op het gebied van gebruikersvriendelijkheid en tooling staat vast.
De mentaliteitskwestie is dat softwareontwikkelaars zich moeten openstellen voor beschikbare tooling. Dat een Java-team de Development Tools wint, wil nog niet zeggen dat het gros van de ontwikkelaars met die tools aan de slag gaat. Een groot deel blijft liever zelf het wiel uitvinden en de gemiddelde Java IDE biedt daarvoor meer mogelijkheden dan Visual Studio. Bij een recente demonstratie van MDA reageerden de studenten geschokt. “Hoef ik dan niet meer te programmeren?”
4. Wat zien we bij bedrijven?
Jaarlijks gaan vele van onze studenten op stage, afstuderen of op bedrijfsbezoek. Het beeld dat daaruit naar voren komt, is divers. Bij de webapplicaties aan de ‘onderkant’ (kleinere bedrijven, kleinere projecten) springt vooral het gebruik van PHP in het oog. Van een doorsnee tweedejaars groep die net een kwartaal op stage is geweest, bleek 90% (!) iets met PHP te hebben gedaan. In de hogere jaren verschuift dat naar C#, Java (meestal in een open-sourceomgeving) en C voor de technische-informaticastudenten. Harde statistieken ontbreken, maar bij mijn eigen studenten houden C# en Java elkaar ongeveer in evenwicht. De lage positie van C# op de TIOBE Programming Community Index verbaast me dan ook, maar dat kan aan de metriek liggen.
Een andere trend die we zien is die van het agile ontwikkelen. Dat Huub Cleutjens ‘agile’ onder de onproductieve oude garde plaatst, herken ik totaal niet. Al vijf jaar bieden we een keuzethema eXtreme Programming aan en de gerealiseerde producten zijn goed. Wat verder opvalt, is de grote hoeveelheid positieve energie die hierbij vrijkomt bij de studenten.
5. Toekomstige troonpretendenten
Microsofts .NET en Java delen al jaren de positie één en twee. Nu ze hun plek naast elkaar gevonden hebben, is het de vraag welke taal Java zou kunnen verstoten. Daarbij moet bedacht worden dat de kwaliteit of elegantie van die taal niet de enige factor kan zijn. Hoe krijgt een nieuwe taal voldoende kritische massa aan ontwikkelaars, forums, tooling, literatuur, acceptatie door de industrie, etc? Daar zal een fundamentele stap voor nodig zijn in de vorm van een ander paradigma of een hogere generatietaal. Andere verbeteringen kunnen immers binnen Java eenvoudig worden overgenomen. Ruby zie ik dus te weinig toevoegen en AOP is naar mijn idee nog te academisch. MDA zou wat kunnen zijn, maar biedt tijdens de codegeneratie altijd nog de optie ‘Java’. Het komt erop neer dat we het nu waarschijnlijk nog niet weten. Conclusie: Java heeft voldoende mee om nog lang eredivisie te spelen. Dat neemt niet weg dat de positie op het veld kan veranderen en dat we blijven scouten.
Jan Baljé is docent Informatica / Profieleigenaar Software Engineering School of Computer Science aan de Hanzehogeschool Groningen.
0020reageer Geef uw mening op http: ∕ ∕ re.ageer.nuOpinie-bijdragen staan los van de redactionele opvattingen van Automatisering Gids. De redactie behoudt zich het recht voor artikelen te redigeren en in te korten. Bijdragen sturen aan: ag@sdu.nl o.v.v. ‘opinie’.