Car-tech

Google Executive Gefrustreerd door Java, C ++ Complexity

N-Queens - Coding Interview Question (Backtracking Algorithm)

N-Queens - Coding Interview Question (Backtracking Algorithm)
Anonim

Tegenwoordige commerciële programmeertalen van vandaag - - C ++ en Java, in het bijzonder - zijn veel te ingewikkeld en niet geschikt voor de moderne computeromgevingen, stelde de gerenommeerde ingenieur Rob Pike in een toespraak op donderdag tijdens de O'Reilly Open Source Conference.

Pike pleitte tegen dergelijke zaken "industriële programmeertalen" tijdens zijn keynote op de conferentie in Portland, Oregon.

"Ik vind deze talen te moeilijk om te gebruiken, te subtiel, te ingewikkeld. Ze zijn veel te uitgebreid en hun subtiliteit, complexiteit en breedsprakigheid lijken om in de loop van de tijd te groeien, "zei Pike. "Ze zijn oververkocht en veel te breed gebruikt." Pike detailleerde de tekortkomingen van dergelijke talen als een manier om de doelen te beschrijven die hij en andere Google-technici hebben voor een nieuwe programmeertaal die ze hebben ontwikkeld, genaamd Go.

Ter illustratie van de complexiteit van dergelijke talen, liet Pike enkele voorbeelden van C ++-code zien. Een voorbeeld was een variabele verklaring die zich bijna over een hele regel van het scherm uitstrekte.

"Hoe kunnen we dit soort dingen [de standaard manier van computergebruik laten zijn die in scholen wordt onderwezen en in de industrie wordt gebruikt? " vroeg hij retorisch. Dit soort van programmering "is erg bureaucratisch.Elke stap moet worden gerechtvaardigd door de samensteller", zei hij. "Hoewel Pike toegaf dat hij enigszins grappig was, beweerde hij dat dergelijke vragen nog steeds moesten worden gesteld. C ++ ontstond vanwege de frustratie van mensen over het werken met de low-level C-taal, en Java kwam tot stand als een manier om C ++ te vereenvoudigen. In de loop van de tijd werden echter nieuwe functies aan beide talen toegevoegd, waardoor ze steeds complexer werden.

"Lawaai komt met raffinement," zei Pike.

Pike voegde er ook aan toe dat dergelijke talen werden ontwikkeld vóór de komst van multicore-verwerking. en wijdverspreide netwerken, zodat ze niet gemakkelijk in deze nieuwe omgevingen kunnen worden ondergebracht.

Pike is niet de enige Google-medewerker die ontevreden is met traditionele commerciële talen.

Op de jaarconferentie van USENIX vorige maand, Gmail-ingenieur Adam de Boor verraste het publiek door te merken dat de Gmail-service van het bedrijf volledig in JavaScript was geschreven en dat alle code, met een waarde van ongeveer 443.000 lijnen, met de hand was geschreven. Hij merkte op dat hoewel Java expressiever is, het ook meer breedsprakig is. "Op dit punt is het een kwestie van kiezen welke taal je gebruikt," zei de Boor.

JavaScript is een van een hele reeks talen - anderen omvatten Ruby en Python - die in de afgelopen 10 jaar zijn ontwikkeld. jaar als antwoord op de toenemende complexiteit van C ++ en Java. Maar met een eenvoudigere syntaxis hebben dergelijke talen ook nadelen, zo redeneerde hij.

Deze nieuwe talen zijn meestal langzamer, schalen niet zo goed en kunnen meer fouten bevatten, aldus Pike.

De talen hebben de neiging om te worden geïnterpreteerd in plaats van gecompileerd, wat betekent dat de programma's die in dergelijke talen zijn geschreven niet zijn gecompileerd voordat ze worden uitgevoerd, dus hebben de neiging om langzamer te werken als gevolg. Ze hebben ook de neiging om dynamisch te worden getypt, wat betekent dat programmeurs niet hoeven aan te geven welk type gegevens hun variabelen zullen bevatten.

"Dynamisch typen is niet noodzakelijk goed. Je krijgt tijdens runtime statische fouten die je echt zou moeten kunnen tijdens het compileren, "zei hij.

Met dit alles in gedachten beschreef Pike Go vervolgens als een poging om de beste eigenschappen van beide sets talen te fuseren.

" Go is een poging om de veiligheid en prestaties te combineren van statisch getypeerde talen met het gemak en het plezier van dynamisch getypeerde interpretatieve talen, "zei hij, voordat hij eraan toe voegde," in de mate dat het lukt, moet je zelf beoordelen. "

Eén lid van het publiek, Larry Augustin, de CEO van SugarCRM, softwaremanager voor klantrelatiebeheer, was het met Pike's beoordeling eens dat C ++ en Java te ingewikkeld zijn geworden, hoewel hij opmerkte dat dit meestal met alle talen gebeurt naarmate ze groter worden om aan een breder scala van use-cases te voldoen."De reden dat deze talen in complexiteit zijn gegroeid, is omdat hoe meer ze worden gebruikt, hoe meer fouten en onduidelijkheden we hebben gevonden, en de pogingen om die dubbelzinnigheden en fouten te verwijderen hebben iets complexer gemaakt," zei Augustin, die een achtergrond in software engineering en programmeren van taalontwerp.

"Ik waardeer zijn doel", zei hij over de inspanningen van Pike. "De vraag is of hij zijn streefresultaat kan halen of Go [wordt complexer] naarmate meer mensen het gebruiken", zegt Augustin.

Joab Jackson behandelt bedrijfssoftware en algemeen nieuws over technologie voor

De IDG-nieuwsservice

. Volg Joab op Twitter op @Joab_Jackson. Het e-mailadres van Joab is [email protected]