Archief van januari, 2008

Programmeren leer je niet met productietalen

Finalist IT Group reageert op het artikel “Met Java leer je niet echt programmeren” in de Automatisering Gids (18 januari 2008) met een ingezonden publicatie ‘Programmeren leer je niet met productietalen.’

De kop van het artikel “Met Java leer je niet echt programmeren” is op z’n minst tendentieus te noemen. AG verwijst met deze kop naar een artikel van de heren Dewar en Schonberg waarin zij voor zichzelf een antwoord trachten te formuleren op de vraag waar de software-engineers van de toekomst zijn. Wat ze beweren is dat de keuze voor Java als eerste programmeertaal in het onderwijs er mede oorzaak van is dat het fundamentele begrip van studenten Informatica voor programmeren achteruitgaat. Het wordt tegenwoordig steeds lastiger is om ‘gedegen’ programmeurs te vinden. Programmeurs die beschikken over een uitstekende theoretische achtergrond die nodig is om kritieke, hoog betrouwbare en uiterst veilige software te produceren. Kort wordt kritiek geleverd op het curriculum van onderwijsinstellingen. Maar het grootste stuk wordt gewijd aan het fenomeen ‘eerste’ programmeertaal.
Lees verder »

  |  7 reacties

Bugs zoeken met FindBugs

Bij sommige projecten wordt er serieus aandacht besteed aan kwaliteitscontroles. Elke class die ingecheckt wordt moet voorzien zijn van testcases die 85% van de code raken en 100% van de branches binnen de code. Ook mag CheckStyle, een tool die code beoordeeld of deze aan de standaarden voldoet, geen commentaar meer hebben en wordt de code ook nog door een reviewer bekeken, zodat de unittests niet alleen geschreven worden om de coverage te halen, maar ook daadwerkelijk controles uitvoeren. Toch kunnen er nog verdachte stukken code doorheen slippen. In een verloren uurtje heb ik FindBugs maar eens los gelaten op de code. De leukste bug is bewaard voor het einde van dit artikel.
Lees verder »

  |  8 reacties

Evolutie en revolutie in software ontwikkeling

Small steps by mankind

Rond de kerst mocht ik weer genieten van de The Royal Institution of Great Britain Christmas Lectures. Dit keer niet de meest recente versie maar de naar grote waarschijnlijkheid zeker niet minder interessante ‘Growing Up in the Universe’ lectures door Richard Dawkins, zoals uitgezonden door de BBC in 1991. Voor dit verhaal verder niet zo bijster relevant, behalve dan dat verschillende aspecten van evolutie worden behandeld. Daarnaast bevatte de aftiteling van de lectures een verwijzing naar wat eigenlijk wel een kleine revolutie mag worden genoemd. Of beter; juist de afwezigheid ervan; in 1991, een goede 15 jaar geleden, had de BBC nog geen website.

Als het gaat om evolutie of revolutie vinden veranderingen in ons vakgebied meestal op een evolutionele manier plaats. Hoewel vaak met de mond beleden is er niet vaak sprake van een echte revolutie.

Lees verder »

  |  Reageer

Final methods/classes een zegen of een vloek?

In het eerste deel ben ik ingegaan op het gebruik van final bij variabelen. In dit deel wil ik het gebruik van final bij functies en klassen bespreken.

Functies (methods)

Door het keyword final voor een functie te plaatsen geef je als programmeur aan dat deze functie, in een afgeleide class, niet overriden kan worden. Een sub-class kan van zo’n functie dus geen eigen implementatie hebben.

Maar wacht eens even, dat was nou toch zo mooi in talen die overerving en overriding toestaan. Dan kan in een sub-class toch net het gedrag gewijzigd worden in iets wat je wil? Dat is inderdaad waar, maar dat leidt soms tot heel moeilijk te vinden fouten. De programmeur van de base class kan namelijk in zijn overige code van een bepaald gedrag van de functie zijn uitgegaan.
Lees verder »

  |  3 reacties

Behavior driven development, oude wijn in nieuwe zakken?

Als een groot aantal ontwikkelaars aan één ding een broertje dood hebben dan is het wel aan testen. Hoe krijg je die zelfde ontwikkelaar dan aan test-driven development? Simpel, je vermijdt te allen tijde het woord test. Dus test-driven development wordt behaviour-driven development en je vervangt het unit-test framework JUnit door JBehave.
Lees verder »

  |  Eén reactie

·