utvikling
C++ er svaret. Men hva var egentlig spørsmålet?
Bjarne Stroustrup med et omfattende tilbakeblikk på språkets nyere historie og utvikling.
35 år etter at den danske informatikeren Bjarne Stroustrup offisielt lanserte C++, er det fortsatt blant verdens mest brukte og populære programmeringsspråk. Dette til tross for at det har blitt skapt en rekke andre programmeringsspråk i ettertid.
Årsaken er muligens at de ikke er lagd med samme formål som C++. For dersom C++ er svaret, hva var spørsmålet?
Dette svarer Stroustrup på i en artikkel han har fått publisert i juniutgaven av journalen Proceedings of the ACM on Programming Languages.
Der forteller han at han designet C++ for å svare på spørsmålet «Hvordan kan du direkte manipulere maskinvare og også støtte effektiv høynivå-abstraksjon?»
Basert på C og norske Simula
– I løpet av årene har C++ vokst fra en relativt enkel løsning basert på kombinasjonen av fasiliteter fra C- og Simula-språkene, beregnet for systemprogrammering på 1980-tallets datamaskiner, til et langt mer komplekst og effektivt verktøy med et ekstraordinært spenn av bruksområder, skriver Stroustrup.
Språket fokuserer på to områder, direkte overføring mellom tankekonstruksjon i språket og maskinvarefasiliteter, samt abstraksjon med null «overhead».
Stroustrup har tidligere definert «null overhead» som en kombinasjon av at «det du ikke bruker, skal du heller ikke betale for», og «det du bruker, kan du ikke håndkode noe bedre».
Tilbakeblikk
Den nye artikkelen til Stroustrup tar primært for seg den nyere historien til C++, det vil si årene 2006 til 2020, og ikke minst hvordan språket har blomstret i denne perioden. Blant annet har det kommet i fire nye revisjoner, hvorav 2020-revisjonen (C++20) er den nyeste.
Uten at han har oppgitt noen kilde, skriver Stroustrup at C++-utviklerfellesskapet har vokst fra rundt 3 millioner til omtrent 4,5 millioner medlemmer i denne perioden.
Mål for språket
Selv mer enn 40 etter han skapte C++ (opprinnelig med navnet «C with Classes»), har Stroustrup fortsatt flere store mål for språket, som det ennå ikke har nådd. Det skal være et språk som er:
- Betydelig enklere å bruke og å lære seg enn C eller dagens C++.
- Fullstendig typesikkert – ingen implisitte typekrenkelser og ingen «dinglende» pekere.
- Fullstendig ressurssikkert – ingen lekkasjer og intet behov for en «garbage collector».
- Relativt enkelt å bygge verktøy for – ingen makroer.
- Like raskt som dagens C++ – prinsippet om «null overhead».
- Forutsigbar ytelse – egnet for integrerte systemer.
- Ikke mindre uttrykksfullt enn dagens – håndtere maskinvare godt.
– Det ultimate målet for designet av et programmeringsspråk er å forbedre måten programmerere tenker og arbeider på når de leverer nyttige applikasjoner. Det finnes språk ansett som «kun eksperimentell», men så snart et språk brukes til arbeid som ikke er relatert til språket selv, får språkdesignerne et ansvar overfor brukerne sine. Nøyaktighet, egnethet, stabilitet og adekvat ytelse blir viktige faktorer. Når det gjelder C++, skjedde dette i 1979 etter bare seks måneder, skriver Stroustrup.