Echte programmeurs kiezen voor Open Source

Vandaag was familie/kennis van de vriendin van mijn vader op bezoek. Ook iemand met een eigen bedrijf, een zeer succesvol eigen bedrijf zelfs. Toch kon ik me er niet toe brengen om daadwerkelijk mijn marketingpraatje te gaan zitten houden. Uiteraard omdat zoiets in mijn ogen niet hoort wanneer iemand op visite is, maar ook omdat ik te druk bezig was met andere dingen. Die paar seconden dat Hanneke probeerde om een dialoog te starten tussen mij en Ton, heb ik al heel snel afgekapt.

"En Tim, als je Ton ompraat, heb je weer een interessant netwerk, want hij kent heel veel mensen."

"O, maar ik zit niet in het vak om mensen om te praten. Als hij tevreden is met wat hij heeft, moet hij dat uiteraard gewoon blijven gebruiken," zei ik, meer als excuus om het gesprek te ontwijken omdat ik echt weer naar mijn werkkamer toe wilde.

Ton gebruikt al jaren Microsoft en is er zeer tevreden mee. En hij was zelf ook een tijdje een programmeur geweest en vond dat goed te doen onder Windows. Waarop ik zuchtte, hem volledig gelijk gaf en de kamer ben uitgegaan. Dergelijke gesprekken hebben gewoon geen zin.

De vraag of je Closed Source (Microsoft, Apple, HP-UX, AT&T Unix, whatever) of Open Source (Linux, FreeBSD, NetBSD, Plan9, Hurd, whatever) moet gebruiken, is een zinloze discussie bij iemand die al jaren verknocht is aan datgene wat hij heeft. Zo'n discussie ontaart namelijk altijd in een gegooi met modder naar weerszijden en het evangeliseren van de eigen keuze. Zowel voor de Open Source fanaat (zoals ik) als de Closed Source fanaat (zoals Ton). Gegronde redenen komen maar zelden bovendrijven, simpelweg omdat het onderwerp voor een IT'er nu eenmaal dicht bij het hart zit.

Terwijl ik echter op mijn werkkamer weer bezig was, sloop een overzicht van enkele argumenten wel in mijn hoofd. Voornamelijk pro Open Source, wanneer je een programmeur bent. Nu wil ik mezelf geen hardcore programmeur noemen (ik gebruik niet eens C!), maar ik denk wel dat ik een beter inzicht heb in de mensen die ik echte programmeurs noem, in tegenstelling tot de mensen die ik hobby programmeurs noem.

Eerst even een uitleg van deze twee termen. Een echte programmeur vind ik iemand die aan een programma werkt om een probleem op te lossen. Bijvoorbeeld, mensen die FreeBSD op een Microsoft XBox laten draaien, of mensen die besturingssysteem opbouwen en verbeteren, gewoon omdat ze het kunnen. Nee, dit zijn niet de programma's die de gemiddelde gebruiker dagelijks gebruikt, dit zijn programma's die veel dichter op de echter hardware liggen dan bijvoorbeeld je tekstverwerker. Maar daar houdt het niet op, tekstverwerkers worden ook gemaakt door echte programmeurs, net als de browser waarmee je deze pagina bekijkt. Ik denk om echt in te zien waar ik de grens trek, is weten hoe die echte programmeurs te werk gaan. Daarover zodadelijk meer.

Ikzelf ben een hobby programmeur. Zo heel nu en dan waag ik me wel eens aan een klein beetje "echt" werk, maar meestal schuif ik dat liever door naar anderen. Als je kijkt op mijn programs pagina, zie je de projectjes die ik bedoel. Een simpel programmaatje (scriptje, eigenlijk) waarmee mijn vader makkelijk foto's kan verkleinen in een directory. Of een ingepakte versie van een grafische tekstverwerker voor je browser. Of een hele kleine aanpassing aan een bestaand programma, zodat het STARTTLS gebruikt om een beveiligde verbinding aan te maken, in plaats van ldaps://. Met die laatste begeef ik me misschien een heel klein beetje in de richting van wat ik echt programmeren noem.

Want het aanpassen van een bestaand programma, om het te laten werken zoals jij wilt, is wat ik echt programmeren noem. Niet je eigen taken aanpassen aan de werking van het programma, maar het programma aanpassen aan je taken. Als je werkt aan een tekstverwerker en je komt een fout tegen in een programma waar je gebruik van maakt (bijvoorbeeld een besturingssysteem), niet je tekstverwerker aanpassen zodat het om die fout heen kan werken, maar de fout oplossen. Dat is echt programmeren. Niet programmeren om iets werkend te krijgen, maar programmeren om iets goed werkend te krijgen.

Iedere programmeur kan een werkend programma schrijven. Echt, geloof me, met een beetje oefening is het eigenlijk helemaal niet zo moeilijk. Dat is ook waarom we tegenwoordig zoveel problemen zien met bestaande programma's. Denk aan de ERP systemen die een specifieke werkwijze opdringen. Of de tekstverwerker die je niet met de betekenis van je tekst bezig laat zijn, maar met de grafische weergave ervan. Of de emailclient die, omdat het zo praktisch werkt, maar gewoon alle bijlages van emails opent en opstart. Of het besturingssysteem dat zoveel mogelijkheden biedt, dat het een waar paradijs is voor mensen die je computer stuk willen maken.

Zoals ik al zei, vind ik dat er twee manieren van programmeren zijn: Echt programmeren en hobby programmeren. Echt programmeren is een samenspel van de programmeur, de werking van de computer en een hele reeks aan afspraken en protocollen die zijn vastgelegd over de werking van die computer. Dus verder kijken dan je neus lang is en eventueel problemen oplossen daar waar het probleem echt bestaat, niet je eigen programma om de problemen heen bouwen. Hobby programmeren is snel iets in elkaar zetten, iets wat werkt en waarschijnlijk om een heleboel fouten in de onderliggende laag heenwerkt. Oogkleppen op en enkel je doel in de gaten houden. Soms werkt dit laatste. Maar als je het goed wilt doen, dan werkt het niet. Echt programmeren kost meer tijd, maar het resultaat mag er dan ook zijn.

Een echte programmeur, zo'n goede, waar ik waarlijk tegenop kijkt, die vindt dat hij fatsoenlijk werk moet afleveren. En fatsoenlijk werk is in haar ogen niet iets dat enkel werkt, maar iets dat goed werkt.

Met name managers en bedrijfsleiders hebben moeite met in te zien waarom ze moeten kiezen voor iets dat goed werkt in plaats van precies hetzelfde dat gewoon werkt. Immers, in gebruik is het verschil toch niet te merken? Het werkt allebei en het doet waar het voor gemaakt is. En dan kom ik terug bij mijn tegenzin om de discussie aan te gaan met Ton, die misschien best wel heel goed weet waar hij het over heeft, maar die ik met alle geweld niet zou kunnen overtuigen om op Open Source over te stappen.

... En toen was het te laat om nog goed na te denken en dit stukje tekst is een harrewar geworden van allerlei ideeën. Misschien wel interessant om eens een goed artikel over te schrijven. Links die dan nog interessant zouden zijn:

Dat was de rant voor vandaag. Totaal onleesbaar, maar ik maak er nog wel wat van.

(notes voor mezelf: library dependencies, echt programmeren op lange termijn pas interessant, nieuwe hardware, hw specs voor win95-winxp)

Comments

Comments powered by Disqus