Wir werden alle bescheidene Kuchen essen müssen, wenn wir feststellen, dass JS verwendet wird, um zu schreiben:
... weil es besser ist.
Im Ernst, bitte ... hör mir zu. Nicht den Boten erschießen.
Fragen Sie Microsoft, warum Windows 8 mit JS als erstklassigem Bürger erstellt wird. Oder Mozillas neues mobiles Betriebssystem oder IBMs Rivertrail, PhoneGap, ExtJS oder WebGL.
Wäre eines dieser Unternehmen oder Projekte erfolgreich gewesen, wenn die Experten in der Umsetzung nichts Besseres gefunden hätten?
Die Antwort ist ... Sie haben es getan. Wir machten. Das Thema hier sollte also klar sein: Es gibt einen besseren Weg.
Aber das Bessere ist subjektiv: Also müssen wir einen Drilldown durchführen und vergleichen. Was ist besser?
Es begann mit AJAX ... und es hat nicht aufgehört.
Nicht blockierendes E / A. Das ist eine wirklich große Sache und es lohnt sich zu wissen. In JS ist dies das Rückrufmuster. Es stellt sich heraus, dass Callbacks einen nicht blockierenden Server aktivieren können: Node.js ~ ca. 8 Codezeilen. setTimeout () ist ein Rückruf. Asynchrone Verarbeitung mit einem Thread.
Flexibilität. Was? -Java und C haben Klassen und Schnittstellen, werden aber als objektorientiert bezeichnet. JavaScript hat nur Objekte. Aber es heißt ... etwas anderes.
- Nur Objekte zu haben ist eine nette Sache für die Flexibilität, da Mitglieder und Methoden zur Laufzeit vollständig dynamisch sind. -Prototypische Vererbung ist nicht beängstigend. Einige Experten beschreiben es als Objekt-Pack-Pack. -JS ist fehlerfreundlich. -Code kann zusammengemischt werden, um Composite-Komponenten zu erhalten, ohne viel Aufwand oder Kenntnisse über ... 'Schnittstellen', 'Abstraktion', 'Vererbung', 'Kapselung', 'Polymorphismus'. Gute Dinge, aber wie Nike in JS; du machst es einfach.
Daten-Übersetzung. Mit JSON können Objekte von vorne nach hinten und von hinten nach vorne übertragen werden. Keine XML-Datenübersetzungen. JSON ist eindeutig einfach.
Geringe Lernkurve. Es ist möglich, äußerst komplexen Code auszuschneiden und einzufügen und ihn dann schrittweise zu debuggen. Ich höre einen Kollegen ... "Noobs". Aber es ist nicht nur für Noobs.
-Es stellt sich heraus, dass dies eine wirklich schöne Funktion für Rapid Prototyping ist. Und überall tauchen Websites auf, die dieses Design-in-Browser-Konzept nutzen, und das noch umfassender. Laufzeit-Prototyping. Kasse JSFiddle und CodePen, auch MicroJS. GitHub.
Like Transformers, with JS, there is more than meets the eye.
It is a big deal.
UPDATE: seit diesem Posting wird JavaScript von anderen Sprachen ausgiebig genutzt.
In Java - check out Nashorn.
In C++ - check out Emscripten, or ASM.
And there are many more.
The big surprise since the original writing of this answer was JS cross-compilation.
It turns out that many languages can be compiled to JS.
And the community is encouraging that... CoffeeScript, Dart, etc.
This is not my specific area of expertise, but it is going on in big ways.
Simply put, we just don't know how the dynamism of JS is going to hash out yet.