Overslaan en naar de inhoud gaan

‘Met Java leer je niet echt programmeren’

Studenten leren tegenwoordig hoe je snel een programma in elkaar zet, maar ze leren steeds minder programmeren. Dat leidt tot kwaliteitsproblemen in software die wat meer eisen stelt dan een gelikte webapplicatie. Dat is de klacht van twee emeritus-professoren van de New York University in een artikel in het Amerikaanse ontwikkeltijdschrift Crosstalk.
Carriere
Shutterstock
Shutterstock


De twee zien in studieprogramma’s steeds minder aandacht voor formele technieken die de correctheid van programma’s kunnen afdwingen en voor de wiskundige principes die aan goed werkende programmatuur ten grondslag liggen. In plaats daarvan krijgen informaticastudenten in hun eerste jaar vooral Java voorgeschoteld, volgens de professoren in een misplaatste poging om programmeren ‘leuk’ te maken en meer studenten te trekken. Het resultaat is dat studenten het vervolgens lastig vinden programma’s zonder grafische interface te schrijven en geen voeling hebben voor de relatie tussen programmatuur en hardware. “We leiden professionals op die heel makkelijk te vervangen zijn.” De beide professoren, Robert Dewar en Edmond Schonberg, trekken de vergelijking met een loodgieter die rondstruint in een ijzerwarenzaak; uiteindelijk zoekt hij de onderdelen (lees: libraries) bij elkaar die een min of meer werkende oplossing opleveren, maar hóe het werkt is niet interessant. Dat software op die manier wellicht erg inefficiënt met hardware omgaat, zal niet meer bij de programmeur opkomen.
Natuurlijk is Java belangrijk, nuanceren ze, maar dan bijvoorbeeld vooral om te leren programmeren in ‘threads’ of om te laten zien hoe een programma zijn eigen status kan onderzoeken. De taal Lisp is het toonbeeld van functioneel programmeren. C is de low-leveltaal die de relatie tussen hardware en software prachtig blootlegt. En C++ laat mooi zien hoe je met encapsulatie omgaat. En Ada, waarin Dewar en Schonberg zichzelf hebben gespecialiseerd, is volgens hen de échte software-engineeringtaal. Iemand die Ada onder de knie heeft, zal ook in C en andere talen netjes de specificaties en de implementaties scheiden. Een echte programmeur heeft, om kort te gaan, het programmeren op zodanige wijze geleerd dat hij in elke taal correct te werk gaat.
Hans van Vliet, professor Software Engineering aan de VU, bevestigt de ontwikkeling, maar relativeert die. “We hebben in Nederland bredere informaticaopleidingen dan in de VS, maar voor zover de eindtermen betrekking hebben op software-enigneering wordt er wel gekeken naar de eindtermen die door IEEE en ACM zijn opgesteld. En in Nederland wordt inderdaad veel Java gebruikt als vehikel om mensen te leren programmeren.” Dat opleidingen breder en minder diep worden, vindt hij een natuurlijke ontwikkeling. “De meeste problemen in software-engineering hebben meer te maken met de sociale en psychologische kanten.” De ‘loodgietersbenadering’ is volgens hem zelfs onontkoombaar. “Je moet dus zoeken naar fundamentele technieken om iets te zeggen over het aan elkaar knopen, in plaats van te zeggen dat je alles vanaf de grond moet opbouwen.”

/f.blankena@sdu.nl

Lees dit PRO artikel gratis

Maak een gratis account aan en geniet van alle voordelen:

  • Toegang tot 3 PRO artikelen per maand
  • Inclusief CTO interviews, podcasts, digitale specials en whitepapers
  • Blijf up-to-date over de laatste ontwikkelingen in en rond tech

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in