Verdens mest misforståede Programming Language er blevet verdens mest populære programmeringssprog

Original: http://javascript.crockford.com/popular.html

Douglas Crockford
2008-03-03

Jean Sammet skrev Computer Sprog: Historie og Fundamentals i 1969 Det var en undersøgelse af 120 programmeringssprog, nogle meget detaljeret. Sammet bog chronicled sprog, der var designet før Struktureret programmering revolution og senere udvikling af objekt-orientering. Bogens dæksel featured et billede af Babelstårnet. Mange af mursten i opbygningen af tårnet bar navnene på programmeringssprog.

Dette er naturligvis refererer til Genesis [11: 1-9], hvori nogle fremragende teknik talent blev anvendt på opgaven med at opbygge en by og et tårn med til at forene verden.

Men Herren kom ned for at se byen og tårnet, som sønner af mænd havde bygget. Og HERREN sagde, “Ja folk er ene og de har alle ét sprog, og dette er, hvad de begynder at gøre; nu ikke noget, som de agter at gøre, vil blive tilbageholdt fra dem. Kom, lad os gå ned og der forvirre deres sprog, så de ikke kan forstå hinandens indlæg. «Så spredte Herren dem til udlandet derfra over ansigtet hele jorden, og de ophørte at bygge byen. Derfor dens navn kaldes Babel, fordi der HERREN forvekslet sproget på hele jorden; og derfra spredte Herren dem til udlandet over ansigtet hele jorden.

Sommetider dette læses som en advarsel mod hybris. Sommetider dette læses som en ligehistorien forklarer, hvorfor folk taler mange sprog: HERREN skabte I18N Problem at forhindre menneskeheden i at nå sit potentiale. Men jeg tror, ​​at dens sandeste fortolkning er som en metafor for programmeringssprog design. Princippet problem i programmering er forvaltningen af ​​kompleksitet. Hvis et sprog ikke hjælpe os med at håndtere meget komplekse systemer i lyset af skiftende krav, så forvirring resultater og fiasko følger.

Hvorfor er der så mange programmeringssprog? Ud over Sammet sæt, har der været masser af nye sprog og dialekter, der er udviklet i løbet af de sidste 40 år. Vi har været programmering på et højt niveau i meget lang tid. Burde vi ikke har konvergeret på den rigtige måde at gøre det nu? Der er åbenlyse effektivitetsgevinster, der ville blive opnået fra design og vedtagelsen af ​​en enkelt, perfekt sprog. Vi kunne fokusere vores ressourcer mere effektivt på uddannelse og udvikling af værktøjer. Hvorfor har vi ikke gjort det?

Vi har forsøgt. Der har været flere forsøg på at bygge massive, universelle sprog. De er alle mislykkedes. Som sprog design vokser, hvilket øger dens anvendelighed, bliver det mere og mere komplekse. Designere, der gør deres sprog for kompleks vil forvirre sproget, sayeth HERREN.

Så vi ser i stedet et stort antal mere specialiserede sprog. En specialiseret sprog vil være meget effektiv for nogle vifte af opgaver. Og det er godt nok. For folk, der er nødt til at udføre disse opgaver, der har det rigtige sprog kan være, ja, en gave.

Et programmeringssprog brosten en model af beregning med en slags ekspressiv syntaks. De fleste sprog har en række nyttige værdier som tal og tekster (som de fleste sprog, mærkeligt nok kalde strenge), og operationer, der muterer og sammenfatte værdier og en form for variation eller gentagelse, og en måde at emballering i mere bekvemme idiomer . De variationer, der er mulige er uendelige, ligesom de mulige variationer i udarbejdelsen af ​​et fint måltid eller et værk af musik. Kunsten i sproget design er at vide, hvad de skal forlade ud. Funktionerne i en god sprog at arbejde harmonisk sammen. En god sprog hjælper os til bedre at forstå et problem og at finde det bedste udtryk for sin løsning.

Et godt sprog er sammensat af et begrænset sæt af funktioner. Men der er lidt enighed om, hvilke funktioner der er bedst. Programmører kan argumentere uendelighed om funktioner og om de gør et sprog bedre end en anden. Det betyder ikke, at de funktioner, der ikke betyder noget. De noget meget. Vi forstår bare ikke endnu, hvordan de noget.

Sprog design har mere at gøre med mode end teknologi. Det kan synes mærkeligt, at mode er en vigtig faktor i nerdliest for kunst, men det er sandt. Et sprog med radikalt anderledes syntaks, for eksempel, har ingen håb om at finde en bred vedtagelse, uanset glans af sit design. Denne tendens til at begrænse den hastighed, hvormed sprog udvikler sig.

Ligesom musik og mad, kan et programmeringssprog være et produkt af sin tid. Den dybe problem i sproget design er ikke teknologisk, er det psykologisk. Et programmeringssprog skal udstyre os med strukturer, der hjælper os til at ræsonnere mere effektivt.

Programmeringssprog er ligesom katte. Det er lettere at få en ny kat, end at få en gammel kat fast. De fleste succesfulde sprog er i sidste ende erstattes af opkomlinge. Gentegnet sprog sjældent matche herlighed af originalen. Fortran var engang kongen af ​​sprog. Det er blevet revideret flere gange i årenes løb, men de moderniserede dialekter oplevet en brøkdel af prestige Fortran IV. Tilsvarende Pascal var en populær struktureret programmeringssprog, men ingen af ​​de objektorienterede dialekter nogensinde nærmede Pascals herlighed. I stedet sprog tendens til at blive afløst.

Specialized sprog er sjovt at lave, hvilket til dels forklarer, hvorfor der er så mange. Hvis et sprog ikke bliver for stor, kan det blive styret af en enkelt designer. De fleste sprog kan identificeres med en enkelt designer. Pascal: Wirth. C: Ritchie. C ++: Stroustrup. Java: Gosling. C #: Hejlsberg. Rebol: Sassenrath. Python: van Rossum. PHP: Lerdorf. Perl: Wall. Ruby: Matsumoto. Lua: Ierusalimschy. E: Miller. Javascript: Eich.

De fleste sprog dør i ubemærkethed. Kun få er i stand til at opbygge en følgende end et enkelt projekt eller virksomhed. Og kun en meget lille antal sprog bliver vigtige.

Der er to måder at et sprog bliver vigtig. Den første er som kilde eller Proving Ground for vigtige ideer. Dette omfatter sprog som Smalltalk og ordningen. Disse sprog er ikke særlig udbredt, men er generelt anerkendt som strålende, men ud af mode. De har en stærk indflydelse på sproglige designere.

Den anden måde at et sprog bliver vigtig, er ved at blive populære.

Der er mange ting, som en programmør skal overveje, når du vælger et program, sprog, medmindre den pågældende programmør skriver til webbrowsere, hvor det eneste valg i øjeblikket er JavaScript.

JavaScript-er en overraskende sprog, i den meget værste forstand. Dens forbløffende natur førte til en meget dårligt ry. JavaScript er også koblet med The DOM, en forfærdelig API. Der er en masse forvirring om, hvor JavaScript-ender og DOM begynder. Der er masser af snak om at forbedre JavaScript, men det i sig selv ville gøre lidt for at forbedre livet for webudviklere. Sproget er belastet med for mange funktioner, herunder mange, der interagerer dårligt eller var dårligt designet. Det er et sprog, der har, da kejser Josef ville sige, for mange toner.

Så hvordan har et sprog med så åbenlyse mangler bliver eneste programmeringssprog af World Wide Web? Brendan Eich overbevist sin spidse hår boss i Netscape, at Navigator-browseren skal have sin egen scriptsprog, og at kun et nyt sprog ville gøre, et nyt sprog designet og implementeret i store travlt, og at ingen af ​​de eksisterende sprog bør overvejes for at rolle. Internet Explorer teamet hos Microsoft ønskede at erobre Netscapes markedsandel, så de omhyggeligt reverse engineering Netscapes sprog, store behårede vorter og alle. De andre browser beslutningstagere fulgte Microsofts bly. Der er ingen standard, der siger, at en webbrowser skal gennemføre JavaScript; JavaScript er det eneste sprog implementeret i alle de populære webbrowsere. Der var ingen nøje gennemgang af sproget eller sit problem domæne. Der var ingen gennemgang af sin egnethed eller soliditet af sit design. Det blev slået sammen i Netscape, og derefter kopieret andetsteds. I betragtning af den proces, der skabte JavaScript og gjort det til en de facto standard, fortjener vi noget langt værre.

Men på trods af JavaScript er forbløffende mangler, dybt nede i sin kerne, det har noget meget rigtigt. Når du fjerner væk cruft, der er en udtryksfuld og kraftfuld programmeringssprog der. At sproget bliver brugt godt i mange Ajax biblioteker til at administrere og øge den DOM, der producerer en ansøgning platform til interaktive applikationer, der leveres som websider. Ajax er blevet populært, fordi JavaScript ikke virker. Det fungerer overraskende godt.

JavaScript-var verdens mest misforståede programmeringssprog. Dens åbenlyse mangler, dens umoderne programmering model, forsætlig forkert anbringelse dens indførelse og dens latterlige navn fik den til at blive afvist som uværdig af de fleste kyndige programmører. Men Ajax gav JavaScript-en ny chance.

Fordi at JavaScript er sproget i webbrowseren, og fordi webbrowseren er blevet den dominerende ansøgning delivery system, og fordi Javascript er ikke alt for dårlig, er, at JavaScript blevet verdens mest populære programmeringssprog. Dens popularitet er stigende. Det er nu ved at blive indlejret i andre applikationer og sammenhænge. JavaScript-er blevet vigtig.

Det er bedre at være heldig end umske.