Google liker ikke C++ og Java

Google liker ikke C++ og Java

Rob Pike mener programmeringsspråkene er altfor komplekse.

- Dagens kommersielle programmeringsspråk – særlig C++ og Java – er altfor komplekse og ikke tilstrekkelig egnet til dagens it-miljø, sa seniorutvikler Rob Pike fra Google på O’Reily Open Source Conference i går.

Ifølge Computerworlds nyhetstjeneste argumenterte han mot slike «industrielle programmeringsspråk» under sin hovedtale på konferansen.

- Jeg mener disse språkene er for vriene å bruke, for subtile, for intrikate. De er altfor ordrike og deres subtilitet, innviklethet og ordrikhet ser ut til å øke over tid. De er oversolgt og brukes altfor bredt, sier Pike.

- Byråkratisk

Pike la ut om disse programmeringsspråkenes utfordringer for å få frem målene som han og andre Google-ingeniører jobber med for tiden når det gjelder deres nye programmeringsspråk Go.

For å illustrere kompleksiteten i dagens programmeringsspråk viste han frem et par eksempler med C++-kode. Det ene eksempelet var en deklarasjon av en variabel som opptok en hel linje på tvers av nesten hele skjermen.

- Hvordan har det seg at ting som dette har blitt standardmåten it læres bort på skoler og brukt i industrien? spør han retorisk.

- Denne måten å programmere på er veldig byråkratisk. Alle steg må rettferdiggjøres for kompilatoren.

Nyere teknologier

Han innrømmer at han leverer budskapet med en viss form for humor, men mener likevel slike spørsmål godt bør stilles. C++ ble til fordi folk var frustrert av å jobbe med C-språket, og Java ble til for å forenkle C++. Over tid har like fullt nye funksjoner blitt lagt til begge språkene, som har gjort dem mer komplekse.

- Støy kommer med mer kompliserthet, sier Pike.

Han legger til at slike språk også ble laget før den flerkjernede prosessoren og bred nettverking, og han mener de ikke gjør det enkelt å tilpasse for slike miljøer.

- Tregere

Men Pike er ikke den eneste Google-ansatte som uttrykker misnøye med de tradisjonelle språkene som brukes av bedrifter.

På USENIX’ årlige konferanse i forrige måned, overrasket Gmail-ingeniør Adam De Boor publikum da han kunne informere om at Gmail kun er skrevet i Javascript, og at koden på 443.000 linjer er skrevet for hånd.

Han bemerker at selv om Java er mer uttrykkelig, er det samtidig mer vidløftig.

- Javascript er et av en hel haug med språk, inkludert Ruby og Python, som har blitt utviklet over de siste ti årene som svar på den voksende kompleksiteten i C++ og Java. Men mens det er enklere syntaks, har slike språk sine baksider, sier han, og utdyper:

- De nye språkene har en tendens til å være tregere, mindre skalerbare og kan sanke flere feil.

Språkene har en tendens til å bli tolket, heller enn kompilert, som betyr at programmer skrevet i slike språk ikke kompileres før de kjøres, og derfor har de en tendens til å kjøre saktere. De er også dynamisk skrevet, slik at programmereren ikke trenger å spesifisere hvilke typer data variablene skal holde på.

- Dynamisk skriving er ikke nødvendigvis en bra ting. Du får statiske feil ved kjøring som du burde kunnet plukke opp ved kompilering, sier Pike.

Vil Go vokse seg komplekst?

Tilbake til Go, beskriver Pike det som et forsøk på å sikre de beste attributtene i begge form for programmeringsspråk.

- Go er et forsøk på å komibinere sikkerheten og ytelsen i et statisk språk med behageligheten og moroa ved et dynamisk skrevet tolkningsspråk. Hvorvidt det blir en suksess får du dømme selv.

En fra publikum, sjef i selskapet Sugarcrm Larry Augustin, sa seg enig i at C++ og Java har blitt for komplekst, selv om han noterer seg at dette typisk skjer med alle språk etter hvert som de vokser for å møte en bredere brukerskare.

- Årsaken til at disse språkene har blitt komplekse er fordi jo mer de brukes, jo mer feil og uklarheter finner man, og forsøkene på å fjerne disse uklarhetene og feilene har skapt noe mer komplekst, sier han, og legger til at han setter pris på Pikes mål med Go, men:

- Spørsmålet er om han kan oppnå sine mål? Eller vil Go også bli mer komplisert etter hvert som folk bruker det?

Hva tror du? Har språk som Java og C++ blir for komplekse og byråkratiske, eller holder de koken helt greit? Rop ut i kommentarfeltet under!

Les om:

Utvikling