211service.com
Bjarne Stroustrup
In de jaren 80 en 90, toen hij onderzoeker was bij AT&T Bell Labs, ontwierp de in Denemarken geboren computerwetenschapper Bjarne Stroustrup C++, misschien wel de meest invloedrijke programmeertaal van de afgelopen 25 jaar. Desondanks is C++ controversieel. De taal wordt alom gehaat door de miljoenen programmeurs die het gebruiken, voornamelijk omdat het notoir moeilijk te leren en te gebruiken is, en omdat het ontwerp van Stroustrup hen in staat stelt om ernstige programmeerfouten te maken in het belang van het maximaliseren van hun vrijheid van meningsuiting. Tegenwoordig is Stroustrup hoogleraar computerwetenschappen aan de Texas A&M University.

Bjarne Stroustrup, de uitvinder van de programmeertaal C++
Technologie beoordeling : Waarom is de meeste software zo slecht?
Dit verhaal maakte deel uit van ons nummer van januari 2007
- Zie de rest van het probleem
- Abonneren
Bjarne Stroustrup: Sommige software is eigenlijk best goed, volgens elke norm. Denk aan de Mars Rovers, Google en het Human Genome Project. Nutsvoorzieningen, dat is kwaliteitssoftware! Onze technologische beschaving is afhankelijk van software, dus als software net zo slecht was geweest als zijn slechtste reputatie, zouden de meesten van ons nu dood zijn.
Aan de andere kant kan het gemiddelde stukje softwarecode me aan het huilen maken. De programmeurs hebben duidelijk niet diep nagedacht over correctheid, algoritmen, datastructuren of onderhoudbaarheid. De meeste mensen weten niet hoe erg het is, omdat ze geen code kunnen lezen: ze zien Windows gewoon vastlopen of hun mobiele telefoon laat een oproep vallen.
KINDEREN : Hoe kunnen we de puinhoop waarin we ons bevinden oplossen?
BS: We kunnen de wereld niet tien jaar stilleggen terwijl we alles herprogrammeren, van onze koffiemachines tot onze financiële systemen. Aan de andere kant is doormodderen duur, gevaarlijk en deprimerend. Er zijn aanzienlijke verbeteringen nodig, en die kunnen alleen geleidelijk komen. Maar ze moeten op een breed front komen; geen enkele wijziging zal voldoende zijn.
Kijkend naar mijn eigen beperkte gebied van het ontwerpen van programmeertalen, ben ik van mening dat een goede taal een grote troef kan zijn, maar alleen als deze op de juiste manier en goed wordt gebruikt. Een taal lost geen problemen op; het helpt alleen de uitdrukking van oplossingen.
KINDEREN : Wat zorgt voor een goede programmeertaal?
BS: Alles wat mensen helpt hun ideeën te uiten, maakt een taal beter. Een taal moet goed zijn in alledaagse taken in de handen van goede vakmensen. Het maakt minder uit of de taal op zich mooi is. Er zijn meer bruikbare systemen ontwikkeld in talen die als afschuwelijk worden beschouwd dan in talen die worden geprezen omdat ze mooi zijn - veel meer.
KINDEREN : Is elegantie niet belangrijk?
BS: Elegantie is essentieel, maar hoe meet je elegantie? Het laagste aantal tekens om de oplossing voor een probleem uit te drukken? Ik denk dat we elegantie moeten zoeken in de gebouwde applicaties, in plaats van in de talen zelf. Het zou te ver voeren om de gecompliceerde set gereedschappen van een timmerman te noemen (vele behoorlijk gevaarlijk) elegant . Aan de andere kant zijn mijn eetkamertafel en stoelen elegant, echt mooi. Dat gezegd hebbende, zou het natuurlijk het beste zijn als de taal zelf een prachtig kunstwerk was.
KINDEREN : Is C++ te moeilijk voor de meeste programmeurs?
BS: Het zou niet zo moeten zijn. Om C++ goed te gebruiken, moet je de ontwerp- en programmeertechniek begrijpen. In zekere zin hebben mijn critici gelijk: niet iedereen zou C++ moeten schrijven, maar ik heb nooit beweerd dat ze dat zouden moeten doen. C++ is ontworpen om je in staat te stellen ideeën te uiten, maar als je geen ideeën hebt of geen idee hebt hoe je ze moet uiten, biedt C++ niet veel hulp.
KINDEREN : Hoe verklaart u het feit dat C++ door veel programmeurs alom wordt bekritiseerd en verworpen, maar tegelijkertijd zeer breed wordt gebruikt?
BS: Het vlotte antwoord zou zijn: er zijn maar twee soorten talen: de talen waar iedereen over klaagt en de talen die niemand gebruikt. De belangrijkste reden voor het succes van C++ is simpelweg dat het voldoet aan de beperkte ontwerpdoelen: het kan een enorm scala aan ideeën direct en efficiënt uitdrukken.
KINDEREN : In je boek Het ontwerp en de evolutie van C++ , beweert u dat Kierkegaard een invloed had op uw opvatting van de taal. Is dat een grap?
BS: Een beetje pretentieus misschien, maar geen grap. Veel denken over softwareontwikkeling is gericht op de groep. Bedrijfspraktijken kunnen direct vijandig zijn tegenover individuen met uitzonderlijke vaardigheden en initiatief. Ik vind een dergelijk beheer van uitzonderlijke mensen zowel wreed als verkwistend. Kierkegaard was een groot voorstander van het individu tegen de massa. Ik kan geen specifiek kenmerk van C++ aanwijzen en zeggen: kijk, daar is de invloed van de 19e-eeuwse filosoof, maar hij is een van de oorzaken van mijn onwil om functies op expertniveau te elimineren. Ik ben echter niet zo dol op zijn religieuze filosofie.
KINDEREN : Waar heb je het meeste spijt van?
BS: Geen spijt! Nou, natuurlijk droom ik van wat ik anders en beter had kunnen doen, maar wie ben ik om te twijfelen aan, laten we zeggen, 1984-vintage Bjarne? Hij was misschien minder ervaren dan ik, maar hij was niet minder slim, waarschijnlijk slimmer, en hij had een beter begrip van de wereld van 1984 dan ik. C++ is gebruikt om veel systemen te bouwen die ons leven verbeteren, en het heeft een aanzienlijke positieve invloed gehad op latere talen en systemen. Dat is iets om trots op te zijn.
