Google CEO Sundar Pichai complete opening statement (C-SPAN)
Dagens kommersiella språkprogrammeringsspråk - - C ++ och Java, i synnerhet - är alldeles för komplexa och inte tillräckligt lämpade för dagens datormiljöer, framträdde Googles framstående ingenjör Rob Pike i ett tal på torsdagen vid O'Reilly Open Source Conference.
Pike gjorde sitt fall mot sådant "industriprogrammeringsspråk" under hans keynote vid konferensen i Portland, Oregon. "Jag tror att dessa språk är för svåra att använda, för subtila, för invecklade. De är alldeles för stora och deras subtilitet, inveckling och verbositet verkar att öka över tiden "sa Pike. "De är översoldda och används alldeles för stort."
Pike beskriver bristerna på sådana språk som ett sätt att beskriva de mål som han och andra Google-ingenjörer har för ett nytt programmeringsspråk som de utvecklat, kallat Go.
Som en illustration av komplexiteten hos sådana språk visade Pike några exempel på C ++-kod. Ett exempel var en variabel deklaration som sträckte sig nästan över en hel rad av skärmen.
"Hur har vi saker som detta [kommer att bli] det vanliga sättet att beräkna som lärs i skolan och används i industrin? " frågade han retoriskt. Denna typ av programmering "är mycket byråkratisk. Varje steg måste vara motiverat för kompilatorn," sa han.
Medan Pike erkände att han var lite facetisk, hävdade han att sådana frågor fortfarande borde ställas. C ++ kom till följd av människors frustration med att arbeta med lågnivå C-språket, och Java kom som ett sätt att förenkla C ++. Men över tiden tillsattes nya funktioner på båda språk, vilket gjorde dem mer och mer komplexa. "
" "Buller kommer med sofistikering", sa han.
Pike lade också till att sådana språk utvecklades före införandet av multicore-bearbetning
Pike är inte ensam Google-anställd som uttrycker missnöje med traditionella kommersiella språk.
Vid den amerikanska konferensen USENIX förra månaden har Gmail-ingenjören Adam de Boor förvånad publiken genom att notera att företagets Gmail-tjänst skrevs helt och hållet i JavaScript, och att hela dess kod, varav 443 000 linjer var värd, skrivits för hand.
Han noterade att medan Java är mer uttrycksfullt, är det också mer verbes. "Vid denna tidpunkt är det en fråga om val vilket språk du använder", säger de Boor.
JavaScript är en av en hel del språk - andra inkluderar Ruby and Python - som har utvecklats under de senaste 10 år som svar på den växande komplexiteten hos C ++ och Java. Men samtidigt som man har en enklare syntax har sådana språk sina nackdelar, men han argumenterade.
Dessa nya språk tenderar att vara långsammare, inte skala också, och kan fånga fler fel, Pike utarbetat. tenderar att tolkas snarare än sammanställda, vilket innebär att programmen skrivna på sådana språk inte sammanställs innan de körs, så tenderar att springa långsammare som ett resultat. De tenderar också att skrivas dynamiskt, vilket betyder att programmerare inte behöver ange vilken typ av data deras variabler ska hålla.
"Dynamisk typing är inte nödvändigtvis bra. Du får statiska fel vid körning som du verkligen borde kunna fånga på kompileringstid, "sa han.
Med detta i åtanke beskrev Pike då Go som ett försök att säkra de bästa egenskaperna hos båda uppsättningarna av språk.
" Go är ett försök att kombinera säkerhet och prestanda av statiskt skrivna språk med bekvämligheten och roligt med dynamiskt typade tolkningsspråk ", sade han innan han tillade" i den utsträckning det lyckas måste du döma för dig själv ".
En medlem av publiken, Larry Augustin, VD för Customer Relationship Management-programvaruleverantören SugarCRM, kom överens med Pikes bedömning att C ++ och Java har blivit alltför komplicerade, även om han noterade att detta vanligtvis händer med alla språk när de växer för att möta ett brett spektrum av användningsfall.
"Anledningen till att dessa språk har blivit komplexa är att ju mer de används, desto fler fel och tvetydigheter har vi hittat, och försök att ta bort dessa tvetydigheter och fel har skapat något mer komplicerat", säger Augustin, vem har en bakgrund i programvaruteknik och programmeringsspråkdesign.
"Jag uppskattar hans mål", sa han av Pikes ansträngningar. "Frågan är att han kan nå sitt målresultat? Eller går [bli mer komplext] som fler använder det", säger Augustin.
Joab Jackson täcker företagsprogramvara och allmänt teknikbrytande nyheter för
IDG News Service
. Följ Joab på Twitter på @Joab_Jackson. Joabs e-postadress är [email protected]