Mark Daws Do Karatbars Sell Real Gold Bars Mark Daws
Dagens kommercielle programmeringssprog - - C ++ og Java, især - er alt for komplekse og ikke tilstrækkeligt velegnede til nutidens computermiljøer, fremhævede Googles fremtrædende ingeniør Rob Pike i en tale torsdag på O'Reilly Open Source Conference.
Pike gjorde sin sag mod sådanne "industrielle programmeringssprog" under hans keynote på konferencen i Portland, Oregon. "Jeg tror, at disse sprog er for svære at bruge, for subtile, for intrikate. De er alt for oversatte og deres subtilitet, intricacy og verbositet synes at være stigende over tid, "sagde Pike. "De er oversold og brugt alt for bredt."
Pike beskriver manglerne på disse sprog som en måde at beskrive de mål, som han og andre Google-ingeniører har for et nyt programmeringssprog, de udviklede, kaldet Go.
Som en illustration af kompleksiteten af sådanne sprog viste Pike nogle eksempler på C ++-kode. Et eksempel var en variabel erklæring, der strækker sig næsten på tværs af en hel linje af skærmen.
"Hvordan har vi ting som dette [bliver den] standardmetoden til computing, der undervises i skolerne og bruges i industrien? " spurgte han retorisk. Denne form for programmering "er meget bureaukratisk. Hvert trin skal være berettiget til kompilatoren," sagde han.
Mens Pike indrømmede at han var lidt facetisk, hævdede han, at sådanne spørgsmål stadig skulle stilles. C ++ kom på grund af folks frustration med at arbejde med lavt niveau C-sprog, og Java kom som en måde at forenkle C ++ på. Over tid blev der imidlertid tilføjet nye funktioner til begge sprog, hvilket gør dem mere og mere komplekse.
"Støj kommer med sofistikering," sagde han.
Pike tilføjede også, at sådanne sprog blev udviklet inden adventen af multicore-behandling og udbredt netværk, så de ikke nemt imødekommer disse nye miljøer.
Pike er ikke den eneste Google-medarbejder, der udtrykker utilfredshed med traditionelle kommercielle sprog.
På den årlige USENIX-konference i sidste måned har Gmail-ingeniør Adam de Boor overraskede publikum ved at bemærke, at selskabets Gmail-tjeneste var skrevet helt i JavaScript, og at hele sin kode, omkring 443.000 linjer værd, blev skrevet for hånd.
Han bemærkede, at mens Java er mere udtryksfuldt, er det også mere verboseret. "På dette tidspunkt er det et spørgsmål om valg, hvilket sprog du bruger," sagde de Boor.
JavaScript er en af en lang række sprog - andre er Ruby og Python - der er blevet udviklet i løbet af de sidste 10 år som reaktion på den voksende kompleksitet af C ++ og Java. Men samtidig med at der er en enklere syntaks, har sådanne sprog også deres ulemper, argumenterede han.
Disse nye sprog har en tendens til at være langsommere, ikke skaleres og kan medføre flere fejl, Pike uddybet. har tendens til at blive fortolket snarere end kompileret, hvilket betyder, at programmer skrevet på sådanne sprog ikke er kompileret før de kører, så tendens til at køre langsommere som følge heraf. De har også en tendens til at være dynamisk indtastet, hvilket betyder, at programmører ikke behøver at angive, hvilken type data deres variabler vil holde.
"Dynamisk typing er ikke nødvendigvis god. Du får statiske fejl i løbetid, som du virkelig bør kunne fangst på kompileringstid, "sagde han.
Med alt dette i tankerne beskrev Pike derefter Go som et forsøg på at smelte de bedste attributter af begge sæt sprog.
" Go er et forsøg på at kombinere sikkerhed og ydeevne af statisk typede sprog med bekvemmeligheden og sjovet af dynamisk typede fortolkningssprog ", sagde han, før han tilføjede," i det omfang det lykkes, bliver du nødt til at dømme for dig selv. "
Et medlem af publikum, Larry Augustin, administrerende direktør for kundeforbindelse software provider SugarCRM, enige med Pike's vurdering, at C ++ og Java er blevet for komplekse, selvom han bemærkede, at dette typisk sker med alle sprog, da de vokser for at imødekomme et bredere udvalg af brugssager.
"Grunden til at disse sprog er vokset i kompleksitet er, at jo flere de bliver brugt, jo flere fejl og tvetydigheder har vi fundet, og forsøgene på at fjerne disse tvetydigheder og fejl har skabt noget mere komplekst," sagde Augustin, hvem har en baggrund i software engineering og programmeringssprog.
"Jeg sætter pris på hans mål," sagde han om Pike's indsats. "Spørgsmålet er, om han kan nå sit målresultat?" Eller "Gør [blive mere komplekst], som flere mennesker bruger det", siger Augustin.
Joab Jackson dækker firmware og generel teknologi, der bryder nyheder til
IDG News Service
. Følg Joab på Twitter på @Joab_Jackson. Joabs e-mail-adresse er [email protected]