Bjarne Stroustrup

På 1980- och 90-talen, när han var forskare vid AT&T Bell Labs, designade den danskfödde datavetaren Bjarne Stroustrup C++, utan tvekan det mest inflytelserika programmeringsspråket de senaste 25 åren. Trots allt det är C++ kontroversiellt. Språket ogillas allmänt av de miljontals programmerare som använder det, till stor del för att det är notoriskt svårt att lära sig och använda, och för att Stroustrups design tillåter dem att göra allvarliga programmeringsmisstag i syfte att maximera sin yttrandefrihet. Idag är Stroustrup professor i datavetenskap vid Texas A&M University.





Bjarne Stroustrup, uppfinnaren av programmeringsspråket C++

Teknikgranskning : Varför är de flesta program så dåliga?

Allt du kan göra kan jag göra Meta

Den här historien var en del av vårt januarinummer 2007



  • Se resten av frågan
  • Prenumerera

Bjarne Stroustrup: Vissa program är faktiskt ganska bra, oavsett standard. Tänk på Mars Rovers, Google och Human Genome Project. Nu, det är kvalitet programvara! Vår tekniska civilisation är beroende av mjukvara, så om mjukvara hade varit lika dålig som dess värsta rykte, skulle de flesta av oss vara döda vid det här laget.

Å andra sidan kan den genomsnittliga mjukvarukoden få mig att gråta. Programmerarna tänkte uppenbarligen inte djupt på korrekthet, algoritmer, datastrukturer eller underhållbarhet. De flesta människor vet inte hur illa det är eftersom de inte läser kod: de ser bara att Windows fryser eller att deras mobiltelefon ringer ett samtal.

BARN : Hur kan vi fixa den röra vi befinner oss i?



BS: Vi kan inte bara stoppa världen i ett decennium medan vi programmerar om allt från våra kaffemaskiner till våra finansiella system. Å andra sidan är det dyrt, farligt och deprimerande att röra på sig. Betydande förbättringar behövs, och de kan bara komma gradvis. Men de måste komma på bred front; ingen enskild förändring kommer att vara tillräcklig.

Om jag tittar på mitt eget smala område av programmeringsspråksdesign, är min uppfattning att ett bra språk kan vara en stor tillgång, men bara när det används på ett lämpligt och bra sätt. Ett språk löser inte problem; det hjälper bara till att uttrycka lösningar.

BARN : Vad skapar ett bra programmeringsspråk?



BS: Allt som hjälper människor att uttrycka sina idéer gör ett språk bättre. Ett språk ska vara bra på vardagliga sysslor i händerna på duktiga hantverkare. Det spelar mindre roll om språket är vackert i sig. Det finns mer användbara system utvecklade på språk som anses hemska än på språk som prisas för att vara vackra – många fler.

BARN : Är inte elegans viktigt?

BS: Elegans är viktigt, men hur mäter man elegans? Det lägsta antalet tecken för att uttrycka lösningen på ett problem? Jag tycker att vi ska leta efter elegans i de applikationer som byggs, snarare än i själva språken. Det skulle vara svårt att kalla en snickares komplicerade verktygsuppsättning (många ganska farliga) elegant . Å andra sidan är mitt matsalsbord och stolar eleganta – verkligen vackra. Som sagt, det vore förstås bäst om språket i sig var ett vackert konstverk.



BARN : Är C++ för svårt för de flesta programmerare?

BS: Det borde det inte vara. För att använda C++ väl måste du förstå design och programmeringsteknik. På sätt och vis har mina kritiker rätt: alla borde inte skriva C++, men då har jag aldrig påstått att de borde göra det. C++ är designat för att låta dig uttrycka idéer, men om du inte har idéer eller inte har någon aning om hur man uttrycker dem, erbjuder C++ inte mycket hjälp.

BARN : Hur förklarar du det faktum att C++ är mycket kritiserad och förbittrad av många programmerare men samtidigt används väldigt flitigt?

BS: Det lättsamma svaret skulle vara: Det finns bara två typer av språk: de som alla klagar på och de som ingen använder. Den främsta anledningen till C++s framgång är helt enkelt att den uppfyller sina begränsade designmål: den kan uttrycka ett stort antal idéer direkt och effektivt.

BARN : I din bok Designen och utvecklingen av C++ , du hävdar att Kierkegaard var ett inflytande på din uppfattning om språket. Är det ett skämt?

BS: Lite pretentiöst kanske, men inte ett skämt. Mycket funderande kring mjukvaruutveckling är fokuserat på gruppen. Företagspraxis kan vara direkt fientligt inställd till individer med exceptionella färdigheter och initiativ. Jag anser att en sådan hantering av exceptionella människor är både grym och slösaktig. Kierkegaard var en stark förespråkare för individen mot mängden. Jag kan inte peka på en specifik egenskap hos C++ och säga: Se, det finns 1800-talsfilosofens inflytande, men han är en av rötterna till min ovilja att eliminera funktioner på expertnivå. Jag är dock inte särskilt förtjust i hans religiösa filosofi.

BARN : Vad ångrar du mest?

BS: Ingen ånger! Jo, visst drömmer jag om vad jag kunde ha gjort annorlunda och bättre – men vem är jag att gissa, säg, 1984-årgången Bjarne? Han kan ha varit mindre erfaren än jag, men han var inte mindre smart, förmodligen smartare, och han hade en bättre förståelse för 1984 års värld än jag. C++ har använts för att bygga många system som förbättrar våra liv, och det har haft en betydande positiv inverkan på senare språk och system. Det är något att vara stolt över.

Dölj