Uitleg wosi

From WOSI
Jump to: navigation, search

Juni 2011: De keuze voor Spring MVC herijkt

spring framework

Het Spring framework is in de afgelopen jaren uitgegroeid tot de de facto standaard voor het bouwen van enterprise Java-applicaties. Wie goed leert werken met Spring, kan vervolgens ook snel leren met andere frameworks applicaties te bouwen. Veel belangrijke basis-principes blijven bij object georiënteerde softwareontwikkeling ongeveer hetzelfde.


WOSI is een project dat in samenwerking met de informatica opleiding van de HvA geïnitieerd is, en waar op basis van het Spring-framework enterprise applicaties gebouwd worden voor 'echte' opdrachtgevers, als woningcorporaties (De Woonplaats, Woonbron, Stedelijk Wonen, etc.), Defensie, NOS en diverse andere grote organisaties. Inmiddels doen ook regelmatig studenten van de Hogeschool Rotterdam, Saxion en UvA mee.


Naast studenten die de minor ASD (Advanced Software Development) volgen, begeleidt WOSI ook studenten van andere richtingen binnen de informatica opleidingen (ITM, HCD, etc). Studenten kunnen bij ons terecht voor hun afstudeerstage, bedrijfsstage, of projectpunten. Als je de ambitie hebt om een professioneel software engineer te worden, dan moet je echt eens bij ons langskomen. Want we zorgen voor een hele goede begeleiding van studenten door professionals die je op de werkplek kunnen helpen. Zie de homepage voor meer informatie.

java versus .NET


Ook studenten van andere studierichtingen kunnen deelnemen, bijvoorbeeld studenten die grafische vormgeving, interactieve media, communicatie of rechten studeren. In de afgelopen periode hebben verschillende groepen HvA-rechtenstudenten onderzoek naar (open source) licenties gedaan.


Voor het onderwijs en voor WOSI heeft Java (Spring MVC) een aantal voordelen boven het (leren) werken met bijvoorbeeld een PHP, Python of .NET. Het gaat daarbij om een mix van argumenten. Een aantal daarvan zetten we hieronder op een rij. Laat duidelijk zijn dat het geen waarde-oordeel bevat over een taal of welke oplossing in een specifieke situatie de beste keuze is.

php versus java

PHP is weliswaar (ook) groeiend in het professionele domein, maar wordt op de arbeidsmarkt toch beduidend minder gevraagd.


Dat geldt in nog sterkere mate voor Python en ook voor bijvoorbeeld C++. Dit zegt uiteraard niets over specifieke toepassingen.

python versus java


Spring is open source en dus is alle informatie, code en libraries voor iedereen toegankelijk. Voor onderwijs- en onderzoeksdoeleinden is dat essentieel, vanwege de inzichtelijkheid en controleerbaarheid.


Het gereedschap dat nodig is voor software-ontwikkeling, is eveneens voor iedereen beschikbaar, zoals bijvoorbeeld: Eclipse, Maven, Tomcat, GIT, etc.).


Applicaties zijn te gebruiken in combinatie met vrijwel ieder operating systeem. Dat is belangrijk, omdat ze in iedere infrastructuur passen en er dus geen verplichte winkelnering ontstaat bij één specifieke leverancier.

python versus java


Spring-applicaties kunnen gebruikt worden in combinatie met vrijwel iedere database. In veel gevallen wordt gebruik gemaakt van een ORM (object relational mapping tool), zoals Hibernate. Dat betekent dat een applicatie getest kan worden met een groot aantal verschillende databases.

database independent


Spring applicaties kunnen gebouwd worden door uitsluitend gebruik te maken van open source software-onderdelen en -tools, waardoor er voor het eindproduct geen licentie-verplichtingen voortvloeien uit de ontwikkeling.


Alle WOSI-modules zijn gebouwd met uitsluitend oss-tools en oss-producten, waardoor er voor onze opdrachtgevers geen wederkerende licentiekosten zijn. Echter, als onze klanten gebruik willen maken van gelicenseerde operating systemen of databases (Oracle, MSSql, DB2, etc), dan kan dat uiteraard.


Andere overwegingen om te kiezen voor Spring. Spring is gemaakt voor het bouwen van object geörienteerde web-applicaties, het is (ten opzichte van JEE) light weight: je installeert wat je nodig hebt.


De Model View Controller en Dependency Injections (Inversion of Control) zijn krachtige principes voor de ervaren ontwikkelaar.


Spring ROO is een nieuwe loot aan de Spring boom, het bouwen van prototypes voor enterprise applicaties wordt bijna kinderspel, maar deze tool die automatisch de verschillende schermen genereert, is nog in ontwikkeling en leent zich (uiteraard) niet voor iedere situatie. Er zijn meerdere interessante ontwikkelingen in het Spring-project, die WOSI met belangstelling volgt.


Programmeurs met Spring-kennis worden (door ICT-bedrijven) veel gevraagd, volgens diverse bronnen beduidend meer dan mensen met andere Java-kennis (inmiddels 4x zoveel dan programmeurs met kennis van Enterprise Java-Beans)

python versus java


Java en .NET zijn ongeveer evenveel gevraagd op de arbeidsmarkt. Java lijkt de laatste jaren wat meer afstand te nemen van .NET. Het stijgend gebruik van Spring is daar één van de oorzaken van. De grafieken zijn afkomstig van vacaturesite indeed.com. Bedenk dat een goede Spring-programmeur veel makkelijker .NET leert dan andersom. Bovendien zal de .NET programmeur vaak alleen maar kennis hebben gemaakt met de Microsoft-familie: Visual Studio, Windows als operating systeem en MSsql als database.


Goeie software-architecten en -ontwikkelaars heb je dichtbij huis nodig en moeten dus hier worden opgeleid. Ook de Automatiseringsgids berichtte in mei 2011 over het groeiende tekort aan SE'ers. Het idee dat je alles kunt out-sourcen, is voorbij. Out-sourcen kan wel, maar alleen als bedrijven heel goed weten wat ze willen en dat ook heel goed kunnen aansturen. Dan is goede inhoudelijke kennis (hier) nodig, die alleen te verkrijgen is door 'fysiek' in grote softwareprojecten te participeren.


De architectuur van Spring is zeer geschikt om grote projecten blijvend goed te managen. Om die reden is het ook mogelijk gebleken met steeds weer wisselende (grote) groepen studenten aan (een onderdeel van) dezelfde applicatie te werken. De eerlijkheid gebied te zeggen dat het wel enige jaren geduurd heeft voordat WOSI dat proces volledig onder controle had.


http://www.springsource.org, ondersteunt door Springsource.com, is een zeer levendige en grote community, met talloze bijeenkomsten, forums, blogs en mailinglijsten.


Conclusie: het is goed om regelmatig de uitgangspunten van projecten te herijken en kritisch te kijken naar de ontwikkelingen in de markt. Voor WOSI geldt dat de keuzes die een jaar of vijf geleden gemaakt zijn, nog steeds valide zijn. Of eigenlijk, in 2011 is de keuze voor het Spring framework veel beter te onderbouwen.


Jo Lahaye, j.lahaye@hva.nl, juni 2011.

Personal tools