Wie wurde JavaScript populär?

27

In der Antike hatte Brendan Eich ein Sprachdesign, und in der heutigen Welt ist JavaScript eine beliebte Sprache, die an vielen verschiedenen Orten implementiert und verwendet wird.

Was hat die Sprache populär gemacht? War es die C-artige Syntax, die früheren Programmierern vertraut war? Hatte Netscape genügend Kontrolle über den Markt, um ihn zur Nutzung zu zwingen? Oder gibt es einen tieferen Grund, warum JavaScript beliebt ist und andere Sprachen nicht?

Insbesondere, wenn Sie eine Sprache so populär wie JavaScript machen müssten, welche Anfangsbedingungen müssten Sie erfüllen, um ihre wachsende Popularität wiederherzustellen?

Mathnerd314
quelle
2
JavaScript war so gut wie tot (+ - 2005), bis es von Google mit Google Maps wiederbelebt wurde.
Todd Moses
1
@ToddMoses Ich habe mich gestritten, aber einige Untersuchungen haben ergeben, dass Sie Recht haben: AJAX hat Javascript wieder zum Mainstream gemacht, inspiriert von Google Mail (2004) und Google Maps (2005). Allerdings (und dies bezieht sich auch auf die obige Frage) ist Javascript nie wirklich verschwunden: Actionscript (in Flash verwendet) erschien ab etwa 2000 und ist im Grunde die gleiche Sprache. In den Kriegsjahren des Browsers wurde Flash / Actionscript für die gleichen Dinge verwendet, die Javascript / AJAX derzeit für die Go-to-Technologie darstellt. Ich habe meine Javascript-Kenntnisse im Jahr 2000 in Actionscript aufgenommen und sie 2008 wieder in Javascript integriert :-)
Darren Cook
2
Ajax ist wichtig, aber überbewertet, IMO. Die weit verbreitete Browser-Semi-Compliance mit der DOM-API und CSS2 hat dazu beigetragen, dass JS ein leistungsstarkes Tool auf der Clientseite ist. Das begann ungefähr im Jahr 2002. IIRC. Sobald wir die richtigen Tools zum Mucken mit HTML hatten, war die schnelle Implementierung komplexer UI-Funktionen ein völlig neues Ballspiel. Es kann jedoch sein, dass erst um das Jahr 2005 alle wirklich auffielen. Ich würde auch sagen, dass eine kritische Masse erst um das Jahr 2005 herum zu verstehen begann, dass JS eigentlich eine ziemlich üble allgemeine Sprache für sich ist.
Erik Reppen

Antworten:

31

Ich habe eine frühere Antwort kommentiert , aber sie wurde groß, also dachte ich, ich würde sie herausfiltern.

Jede neue Sprache kann nur dann erfolgreich sein, wenn sie eine aufstrebende Grenze in der Datenverarbeitung ausnutzt.

Vorherige Beispiele:

  • C für Unix
  • Objective-C für iOS
  • Perl und PHP für das Back-End-Web 1.0
  • Python und Ruby für das Back-End-Web 2.0
  • Java für das internetfähige Back-End-Unternehmen

Zur Beantwortung Ihrer Frage war JavaScript die Sprache für Netscape Navigator, als dies der vorherrschende Browser war. Insbesondere war es die Sprache für die dynamische Front-End-Entwicklung.

Die nächste große Sprache muss eine andere Grenze lösen. Im Bereich der Back-End-Webentwicklung scheint es immer noch ein Problem zu geben. Außerdem ist Mobile Computing trotz Apples aktueller Dominanz nicht vollständig gelöst. Es gibt auch das Aufkommen von Multi-Core- und Cloud-Computing, von dem viele Sprachen zu profitieren versuchen (wie gleichzeitige Sprachen wie Erlang und Go oder funktionale Sprachen wie Haskell und OCaml).

Unternehmer haben den Ausdruck "jemanden in Brand stecken und ihm einen Feuerwehrschlauch verkaufen". Wenn Sie also eine neue Sprache einführen möchten, wessen Feuer löschen Sie dann? Jede neue Grenze im Computerbereich bringt eine ganze Reihe von Kopfschmerzen mit sich. Geben Sie also etwas Aspirin und Sie werden golden sein.

Chrisaycock
quelle
4
Ich stimme fast zu, aber ich kann nicht herausfinden, wie die .NET-Plattform so beliebt wurde.
Tomasz Nurkiewicz
5
@Tomasz Microsoft hat .NET als neue Plattform für Windows (auf der immer noch die meisten Desktop-Installationen ausgeführt werden)
angekündigt
1
Weder Perl noch Python verdanken ihre anfängliche Beliebtheit dem Web. Sie waren als Sprachen für die schnelle Erstellung von Tools für Systemadministratoren bzw. Betriebssystemdienste gedacht und waren in diesen Bereichen äußerst erfolgreich, bevor sie mit der Webentwicklung noch mehr Bekanntheit erlangten.
SingleNegationElimination
1
@TokenMacGuy: Diese Domänen (einschließlich CAD / CAE) waren bis zum Start von Web 1.0 relativ klein. Zu diesem Zeitpunkt fingen die Regale in den Buchhandlungen an, sich mit Büchern über diese Sprachen zu füllen.
hotpaw2
2
@ hotpaw2: Perl war einige Jahre, bevor der Internetzugang zu Hause überhaupt üblich war, für das Skripten unter UNIX äußerst beliebt.
Kevin Cline
38

Es ist ziemlich einfach: Netscape verwendete eine JavaScript-Engine in ihrem Browser. Wenn Sie Scripting im Web tun wollte, war JavaScript es . Internet Explorer hatte (und hat) sowohl JavaScript als auch VBScript. Wenn Sie jedoch in mehr als nur IE arbeiten möchten, müssen Sie natürlich JavaScript verwenden.

JavaScript ist eine großartige Sprache für sich, aber es wäre heutzutage bei weitem nicht so beliebt, wenn es nicht die einzige Sprache wäre, mit der Sie HTML schreiben können.

Dean Harding
quelle
3
Also durch Huckepack auf ein vorhandenes (beliebtes) Stück Software, das eine höhere Sprache benötigt?
Mathnerd314
7
@ Mathnerd314: Ganz so ist es nicht. JavaScript (danke, Mr. CRT: p) war nie vom Browser getrennt: Es wurde von Netscape speziell für die Verwendung in ihrem Browser entwickelt. Es ist also nicht so, als ob eine bewusste Entscheidung getroffen worden wäre, die Popularität von Netscape zu steigern, um das zu erreichen sprache beliebt.
Dean Harding
2
@ Mathnerd314 Es ist nicht so sehr das Huckepack, sondern es war die einzige echte Sprache für eine neue Grenze des Rechnens , genau wie C für Unix. Wer ein dynamisches Frontend haben wollte, musste JavaScript verwenden.
Chrisaycock
4
Um den Erfolg wiederherzustellen , muss ich eine völlig neue Grenze des Computerbereichs finden und die neue Sprache verbindlich machen. Ich
verstehe
2
@ Mathnerd314 Aktuelle Schwellenländer umfassen Multicore- und Cloud-Computing. In der Tat ist dies etwas, von dem eine Sprache wie Erlang Kapital schlagen könnte. (Ein weiteres Beispiel ist der Aufstieg von Objective-C aufgrund des Aufkommens von Smartphones, da Apple in diesem Bereich ein so großer Player ist.)
Chrisaycock,
7

Ich werde ein Update hinzufügen, da ich denke, dass JS im Laufe der Jahre in einigen wichtigen Punkten missverstanden wurde.

Es war nicht Ajax

Ich sage nicht, dass Ajax für die Entwicklung des Verständnisses von JS als Sprache nicht wichtig war, aber der Kampf um die Dominanz der clientseitigen Browser war lange bevor der Begriff Ajax geprägt wurde vorbei.

Es war nicht, weil es das einzige Spiel in der Stadt war

Es gab Java Applets, Flash und VBScript. Ich habe gehört, dass es in den 90er Jahren sogar andere Skriptoptionen gab (aber erforderliche Plug-Ins IIRC). Java ist sehr beliebt, aber Applets waren ein düsterer Fehler. Sie waren hässlich und oft Schweizer Sicherheitskäse, aber was noch wichtiger ist, ich glaube nicht, dass Java aus Gründen, auf die ich später eingehen werde, gut passt. Flash war sehr beliebt und hatte jahrelang einen starken Einstieg, aber selbst als Flash endlich über SEO-Optionen verfügte, wurden diese normalerweise nicht verwendet, sodass es sehr schwierig war, ausschließlich Flash-Websites zu entdecken. Selbst jetzt aktualisieren die meisten von uns regelmäßig Flash, damit wir Filme sehen können, aber das ist die wahre Achillesferse. Proprietäre Technologie in Browsern ist ärgerlich. Und natürlich VB, das würde immer nur mit IE funktionieren, also nein.

Der richtige Ort zur richtigen Zeit ist wichtig, aber nicht die vollständige Antwort

Ja, ohne die zu fahrende Web-Welle hätten wir möglicherweise nie so schnell JavaScript oder eine Sprache in der gängigen Verwendung gesehen. Oder vielleicht hätten wir ...

Es war das perfekte Werkzeug für die Problemdomäne

Ich würde sagen, um 2000 herum hatten wir folgende Probleme:

  • IE und Netscape hatten sich gerade darauf geeinigt, sich mit den gleichen DOM-API- und CSS-Standards anzufreunden, und wir mussten uns seitdem mit einer Menge älterer JS-Cross-Browser-Probleme auseinandersetzen, die gerade erst verwaltbar werden ohne die Hilfe von JS DOM-Normalisierungstools wie jQuery nach IE8
  • Es gab eine ganz neue Generation von Webentwicklern / -designern, die nicht unbedingt alle Schwergewichte als Programmierer waren, die ihr Spiel nach dem Platzen der .com-Blase verbessern wollten, als sie aufhörten, Ihnen ein anständiges Gehalt zu zahlen, weil sie mit nichts anderem an der Tür aufgetaucht waren als grundlegende HTML-Kenntnisse und einige Photoshop-Kenntnisse.
  • Es gab dieses neue CSS-Kind in der Stadt, das faszinierende Möglichkeiten für das bot, was letztendlich DHTML, (passender) DOM-Scripting, (jetzt unangemessen) HTML5 (zomghtml5!) Genannt wurde.

Wir brauchten also eine Sprache, die sowohl tiefgreifend war als auch die Möglichkeit bot, eine fortschrittlichere App mit tragbaren / wiederverwendbaren Komponenten auf der Clientseite zu strukturieren und zu entwickeln, die aber auch für Leute zugänglich war, die nicht viel wussten und nur Dinge brauchten wird angezeigt / wieder angezeigt, wenn Sie auf eine Schaltfläche geklickt haben.

Darüber hinaus war MS das unbeholfene / inkompetente und / oder dominante, wettbewerbsfeindliche Scharmützel, das sie manchmal sind, und konnte ihre nicht konforme DOM-API-Implementierung für ein gutes solides Jahrzehnt nicht wirklich berühren, obwohl sie es geschafft hatten Fügen Sie gelegentlich Dinge wie das ursprüngliche XHR-Objekt und querySelectors in IE8 hinzu.

Das Wichtigste ist, dass wir es um das Jahr 2005 geschafft haben, die Komplexität bei der Behandlung browserübergreifender Probleme so vollständig zu begraben, dass es im JavaScript-Bereich kein ernstes Problem mehr gab. Das Versagen, CSS2 so lange zu unterstützen, wie dies der Fall war, verursachte erheblich mehr Schmerzen. Ich empfehle, quirksmode.org zu besuchen, um eine Vorstellung von der Menge und Tiefe der Probleme zu bekommen . Ich denke nicht, dass dies eine Leistung ist, die in so vielen Java-Bibliotheken reibungslos und möglich gewesen wäre, schon gar nicht in VB und definitiv nicht mit einer Plug-In-Strategie, deren Ziel es ist, das gesamte Problem zu umgehen, indem man sich zu einem völlig neuen Produkt entwickelt Art von Belästigung.

Andere Sprachfunktionen, die für die Benutzeroberfläche sehr sinnvoll sind:

  • Erstklassige Funktionen: Nach meiner Erfahrung eignet sich nichts besser für asynchrone Verarbeitung und ereignisgesteuerte Paradigmen als eine Sprache, die ihre Funktionen erstklassig macht. Beide Anliegen werden regelmäßig in der UI-Arbeit angesprochen.

  • Dynamische Typen: Casting und Typprüfung sind in JavaScript sehr selten erforderlich, wodurch der Code übersichtlich und schlank bleibt. UI-Probleme können sehr schnell komplex und chaotisch werden. Um den Datenfluss zu verstehen und zu ändern / pflegen, ist es wichtig, dass der Code eng und absolut klar ist.

  • Es ist nicht protektionistisch: Seit vielen Jahren predigt jemand, dass Sie sich vor Ihren eigenen Fehlern und den dummen Dingen, die der andere mit Ihrem Code anstellen könnte, schützen müssen, indem Sie Code-Konstrukte sehr starr und unflexibel machen und sich nicht in die ursprüngliche Absicht einmischen geschrieben mit und viele Leute haben zugehört. Ich werde nicht sagen, dass sie immer falsch sind (ich denke es könnte sein), aber ich werde sagen, dass dies die falsche Herangehensweise an die Web-Benutzeroberfläche ist, und ich glaube, dass dies ein Phänomen ist, das wir ausgearbeitet, gepflegt und geändert haben. Neben-GUIs wurden in der Vergangenheit in der Regel in restriktiveren Sprachen viel schneller und einfacher ausgeführt als solche. Die schnelle und einfache Möglichkeit, Änderungen im laufenden Betrieb vorzunehmen, macht dynamische / fließende Architekturschemata, für die kein erheblicher Aufwand an Indirektion und Abstraktion erforderlich ist, wesentlich einfacher. Auf diese Weise können Sie leichter erkennen, was zur Hölle in Ihrem Code vor sich geht und Ausnahmen viel sauberer vorwegnehmen oder behandeln. Es ist einfacher, einfach durch die bloße Tugend aufrechtzuerhalten, die es ermöglicht, bei allem, was Sie tun, direkter und mit viel weniger Code zu sein, als dies nach der anderen Philosophie der Fall wäre.

Wie wurde JS populär? Es hat sich immer wieder als hervorragendes Werkzeug für den Job erwiesen. Es ist nicht die Sprache, an der wir "hängen bleiben". Es ist die Sprache, die möglicherweise einen großen Teil der Evolution in populären Sprachen im Allgemeinen inspiriert hat. Und dafür können Sie Brendan Eich und allen Zeitgenossen danken, die dazu beigetragen haben, die Idee in den Kopf zu bekommen, dass sie Scheme als Design-Inspiration für das vorliegende Problem mehr mochten, als er Java mochte.

Erik Reppen
quelle
2

Eine Taktik, die anfangs verwendet wurde, war der Name - "JavaScript" sollte auf der Popularität von Java aufbauen, das seit einiger Zeit auf dem Vormarsch war.

Grant Palin
quelle
1

War es nicht die einzige browserübergreifende clientseitige Skriptsprache? Seine Popularität scheint im Gleichschritt mit der des Internets zugenommen zu haben, was Sinn macht.

Ben Hughes
quelle
1

Zur richtigen Zeit am richtigen Ort. Und es hat nicht ganz gesaugt.

Es ist der gleiche Grund, warum Facebook gewinnt.

Jewgenij Brikman
quelle
0

Meiner Meinung nach ist Javascript beliebt, weil es gut unterstützt wird.

Erstens ist es die einzige Sprache für Netscape und IE in seiner Zeit. Nachdem sich eine "Javascript-Community" etabliert und stabilisiert hat, kann niemand mehr über "ein anderes Gut" nachdenken, das aus Kratzern aufgebaut werden muss. Sie tragen einfach dazu bei, es immer besser zu machen.

Wenn Sie eine neue populäre Sprache erstellen möchten, müssen Sie zunächst festlegen, wer diese Sprache verwendet . Die ersten Kunden sind immer schwer zu finden, und Sie müssen Ihre Sprache auf die eine oder andere Weise Javascript überlegen machen. Vielleicht ist "bessere / schnellere Javascript-Engine für iPhone-Handys" auch in einem eingeschränkten Bereich / einer eingeschränkten Community von Programmierern eine gute Wahl.

Darüber hinaus sollte Ihre Sprache von der Community einfach zu verwenden und anzupassen sein, da die Community entscheidet, welche Sprache überleben kann.

Hoàng Long
quelle
Das Wichtigste ist, wie man es "genug" populär macht. Dann wird es von selbst funktionieren.
Hoàng Long
0

Sie werden mir nicht glauben, aber Flash und (in ein bisschen Java-Applets früher) haben einen großen Beitrag zum Wachstum der Popularität von Javascript und zur Entwicklung der Sprache selbst geleistet.

Als Flash auftauchte, war dies der erste Beweis dafür, dass es sich lohnt, über Webanwendungen nachzudenken.

In gewissem Sinne hat der Wettbewerb mit Plugins durch die ständigen Versuche zu zeigen, was wir ohne Plugins tun können, Javascript zu einer Sprache mit einem breiteren Anwendungsspektrum gemacht und sie daher populär gemacht.

shabunc
quelle
-1

Ich glaube, die Leute dachten, Javascript hätte etwas mit Java zu tun.

(Wie heute beginnt alles mit einem "i")

Die Marketing- / Werbestrategie spielt eine wichtige Rolle.

Simon
quelle
-1

Ich denke wirklich, dass es mit seiner C-ähnlichen Syntax zu tun hat . Laut Wikipedia ist Javascript in '95 erschienen. Zu dieser Zeit war C auf einem Allzeithoch und Java war die aufstrebende Sprache. Ich denke, die Syntax war (für diese Zeit) wirklich ansprechend und die Namensassoziation mit der nächsten großen Sprache, Java , gab ihr einen Vorteil.

Damals war es für C- Programmierer ein Kinderspiel, sich auf eine dynamische Sprache einzustellen.

Programming Language    Dec 2010    Dec 2005    Dec 1995        Dec 1985
Java                    1           1           -               -
C                       2           2           1               1

Tiobe Index

Wenn ich den Erfolg von Javascript wiederherstellen würde, würde ich Probleme untersuchen, die moderne Programmierer plagen, und ihnen eine Lösung mit einer vertrauten Syntax geben.

IMO-Parallelprogrammierung ist das nächste große Problem, mit dem Programmierer konfrontiert sind. Ich denke, dass funktionale Sprachen wirklich großartige Arbeit leisten, um dieses Hindernis zu überwinden. Wenn ich das nächste Javascript erstellen würde, würde ich eine funktionale Sprache mit einer gemeinsamen Plattform erstellen . Darüber hinaus denke ich, dass es flexibel genug sein muss, um eine Skriptsprache zu sein, aber leistungsfähig genug, um eine statisch typisierte Sprache mit einem großartigen Rahmen zu sein.

Obwohl nicht jeder zustimmen kann, denke ich, dass F # unter diesen Bedingungen in Zukunft eine Menge Verdienste haben wird.

snmcdonald
quelle
2
@Herr. CRT: Anders Hejlsberg, der Erfinder von Turbo Pascal, hatte großen Einfluss auf C # und das .NET-Framework. Ich hätte Pascal also nicht rabattiert, wenn Netscape Pascal adoptiert hätte. Es gibt immer noch jede Menge Delphi-Entwickler, die darauf schwören.
snmcdonald
3
Entschuldigung, habe meinen Kommentar gelöscht, bevor du geantwortet hast - er war sowieso als Sarkasmus gedacht und daher nicht besonders hilfreich. Ich sollte sagen, dass eine C-ähnliche Syntax zwar sicherlich hilfreich ist, um bestehende Programmierer dazu zu bringen, "ihre Zehen ins Wasser zu tauchen", aber kaum eine Garantie für den Erfolg darstellt. Betrachten wir Objective-C: Mehr als ein Jahrzehnt relative Dunkelheit, dann kauft Apple NeXT und macht es zu ihrer Grundlage für alle möglichen lustigen kleinen
Geräte
1
@Herr. CRT. Sehr interessanter Kommentar. Syntax ist definitiv nicht das A und O, obwohl ich denke, dass es für bestehende Programmierer wichtig ist. Objective-C fühlt sich für mich nicht sehr C-artig an. Vielleicht ist es deshalb zunächst nicht gestartet. Es könnte jedoch die Assoziation mit der nächsten aufstrebenden Technologie sein, die sie relevant macht, wie Java in den 90er Jahren. Was die Syntax angeht, denke ich, dass die nächste Generation von Programmierern sich mit funktionalen und dynamischen Sprachen besser auskennt.
snmcdonald
@Herr. CRT: Oder Python mit Google usw. Ich würde sagen, dass "Popularität" (wie in der Regel weit verbreitet) wenig mit der Sprache selbst zu tun hat (schließlich gibt es viele fantastische Sprachen, die nicht sehr beliebt sind [z. B. Haskell] , Erlang] und andere, die butt-hässlich und sehr beliebt sind [zB PHP])
Dean Harding
@Dean Harding: Interessanter Kommentar, weil ich PHP wirklich genieße. Ich schätze, dass die Bibliotheksfunktionsnamen der C-Library ähnlich sind und dennoch eine Perl-ähnliche Syntax annehmen, ohne sie mit einer Siegelpluralität zu verdecken. Gleichzeitig verstehe ich die Kritik, da ich die Implementierung von OO sowohl in Perl als auch in PHP als einen Gedanken der letzten Minute betrachte. PHP hat eine ähnliche Syntax wie C und Perl (möglicherweise mehrere Sprachen), die vielen Programmierern vertraut ist und dennoch für eine sehr beliebte Domäne entwickelt wurde. Ich denke wirklich, dass es eine Kombination aus Syntax und populärer Technologie ist.
snmcdonald
-1

JavaScript wurde aufgrund von AJAX und guten Inspektionstools wie Firebug populär. Natürlich half die Tatsache, dass es auf allen gängigen Browsern funktionierte und nur die Möglichkeit bot, DHTML auszuführen.

Grundsätzlich muss man in der Lage sein, wirklich nützliche Dinge zu tun, die keine andere Sprache kann, um die hässlichste Sprache erfolgreich zu machen. Außerdem müssen Sie Tools bereitstellen, die es Programmierern ermöglichen, das Gefühl zu haben, dass sie steuern, welche Sprache verwendet wird, was bei Javascript vor dem Firebug nicht der Fall war.

Kamil Szot
quelle
2
JavaScript hat mit AJAX (und wohl auch mit Firebug, obwohl ich das für zweitrangig halte) ein neues Leben erlangt, aber es hatte den Krieg gewonnen, bevor er begann (und vor fast fünfzehn Jahren), weil es keine Konkurrenz in seinem Bereich gab.
Wyatt
-4

Javascript ist beliebt als Hack, um die Mängel von HTML-Markups zu überwinden, mit denen Webseiten so angezeigt werden, wie sie von Designern gewünscht werden. Ohne Javascript würden alle Webseiten so aussehen - HTTP 1.1 . Kaum eine Verbesserung gegenüber dem Gopher- Protokoll.

ja72
quelle
2
Protokoll! = Design! = Scripting. Mit HTTP 1.0 können Sie sehr schöne Seiten ohne Javascript erstellen.
Deceze