Monday, January 22, 2007

één is enkelvoud

Ik ben niet de enige die dit jaar publiek gaat met een blog. Neem nu Michiel Decancq, een mens die ik voor de rest van haar noch van pluimen ken, die zijn eerste post geplaatst heeft, en die daaarin aangeeft dat hij tegen de taalverloedering is. Terecht.

Maar wat zie ik daar rechtsboven :



Jawel : "1 posts". Wat doet die "s" daar ? Het is geen taalverloedering, maar slordige programmatie. Dat is Michiel zijn schuld niet, wellicht gebruikt hij één of andere standaard blogsoft, zoals ik dat ook doe. En gaat u zeggen : dat is niet belangrijk, dat gebeurt maar 1 keer in zijn bloggende leven, namelijk bij het begin. Daar heeft u gelijk in.

Maar kijkt u nu eens even hier :

Bij het installeren van Adobe Reader zie ik '1 minutes' verschijnen, en wat later ook '1 seconds', maar dat ging te snel om op Print Screen te drukken.

Je mag toch redelijkerwijs veronderstellen dat de programmeur van dit schermpje (ofwel iemand bij Adobe, ofwel iemand van Microsoft -als dit een feature van de installler is) een professioneel informaticus is, die toch de moeite had kunnen doen om iets in deze stijl te programmeren :

if t=1

then

label='minute'

else

label='minutes'



in C zou dat zoiets zijn :
printf("Time remaining: %d %s",t,t==1?"minute":"minutes");


Dat is nu toch géén moeite ? Maar dat is een detail, zal u zeggen, en onbelangrijk. Ja, maar dan denk ik : als die programmeur te lui is om zoiets simpel correct te programmeren, dan zal hij beslist niet de moeite doen om iets wat complex is correct uit te werken. Dan begin ik mij af te vragen : hoe zit die berekeningsmodule om de resterende tijd uit te rekenen in elkaar ?

De verhouding reeds gecopiëerde bytes - verlopen tijd projecteren op de nog te copïeren bytes ? Simpel, maar niet correct: heeft de programmeur ook de moeite gedaan om te kijken wat hij copiëert : enkele grote bestanden, of vele kleintjes ?

Heeft de programmeur threadsafe gewerkt ? Of helemaal zonder threads ? Heeft hij zich voorzien tegen onverwachte input ? Delingen door nul vermeden ? Doet hij voor elke malloc() wel een free() ? Is zijn programma er tegen bestand dat het verschillende keren tegelijk wordt opgestart ? Ruimt hij aan het eind alle rommel (tijdelijke bestandjes,...) op ? Als het fout loopt, krijg je dan een duidelijke foutmelding, of 'cannot continue: err 315' ?

Een s teveel : op zich zegt het niets, maar het is wel een indicatie.

Dat Michiel maar gauw een tweede artikeltje plaatst.



1 Comment

Michiel said...

Tweede post is geplaatst. Ik ergerde me overigens zelf aan die 's'.