Warum werden heutzutage nur JavaScript und VBScript in Browsern unterstützt? Ich weiß, dass JavaScript gut ist, aber würde die Option, eine andere Programmiersprache zu verwenden, nicht dazu beitragen, unterschiedliche Entwicklungsstile zu fördern?
Warum werden heutzutage nur JavaScript und VBScript in Browsern unterstützt? Ich weiß, dass JavaScript gut ist, aber würde die Option, eine andere Programmiersprache zu verwenden, nicht dazu beitragen, unterschiedliche Entwicklungsstile zu fördern?
Antworten:
Es ist nicht erforderlich, Unterstützung für mehrere Sprachen hinzuzufügen. Eine Lösung wäre, einen generischen Bytecode zu standardisieren, der von Sprachimplementierern verwendet werden könnte. Aber es gibt derzeit keine Pläne dafür (es wurde vorgeschlagen).
Sprachen können auch über Javascript implementiert werden. Javascript ist gut genug, um andere Sprachen darüber zu implementieren. Und dafür gibt es bereits viele Beispiele.
<script type="text/cpp" src="test.cpp"></script>
.
JavaScript ist der De-facto- Standard und seit 1996. Ein Standard zu sein, nur weil es keine Konkurrenz gibt, ist nicht gerade fair, aber ich habe nicht viel darüber geklagt, warum keine andere Sprache enthalten ist.
Das Hinzufügen einer weiteren "Standardsprache" fördert alle Arten von lustigen kleinen Problemen.
Denken Sie an die Inkonsistenzen zwischen den Browsern, die nur Javascript unterstützen. Nun überlegen Sie, wie es wäre, wenn es mehr Sprachen gäbe.
Browser müssen standardisiert sein, damit das, was Sie entwickeln, auf allen Browsern überall funktioniert.
Wenn Sie mehrere Sprachen haben, müssen Sie sicherstellen, dass sie alle sehr ähnlich funktionieren. Wenn Sie ein Webentwickler sind und eine Auswahl an Sprachen haben, die an einigen Standorten unterstützt werden oder nicht, dann ist dies ein zusätzlicher Kopfschmerz.
Javascript ist eine sehr flexible Sprache, es ist unerlässlich, es ist funktional, es kann OOP sein (nach einer Mode mit Prototypen) und es wird interpretiert. Jetzt mit anständigen Motoren wie in Chrome ist es einigermaßen in der Lage, einige gute Sachen zu machen. Zusätzliche Sprachen würden nur die Dinge hier zurückstellen, nur VBScript, IE, und alles, was darin geschrieben ist, ist an einen bestimmten Browser und eine bestimmte Plattform gebunden, Albtraum.
Anstatt diese in Browser zu integrieren, bauen die Hersteller gerne schwerfällige Browser-Plug-Ins (Java, Flash, Silverlight usw.). Dies garantiert plattformübergreifende Konsistenz.
Einer der Gründe ist, dass es für verschiedene Browser-Anbieter praktisch unmöglich ist, sich überhaupt auf eine Standard-Javascript-Implementierung zu einigen, und dass Javascript zumindest aus Sicht der Web-Sprache schon immer existiert. Die meisten Leute denken zu Recht, dass es praktisch unmöglich ist, eine andere clientseitige Sprache in das Ökosystem einzubinden und alle Anbieter dazu zu bringen, sie zu unterstützen, und die meisten Leute, die dies möglicherweise zustande bringen könnten, sind bereits in JavaScript-Standardisierungsprobleme verwickelt, die ich für viel besser halte Nutzung ihrer Zeit.
Es gibt mehrere Antworten, die behaupten, dass die Unterstützung mehrerer Sprachen es für Hersteller von Webbrowsern sehr unangenehm machen würde, sicherzustellen, dass sie mit allen Sprachen kompatibel sind. Das scheint mir falsch.
Java zum Beispiel ist ein sehr gut definierter Standard. Im Wesentlichen müssen Sie nur das Browser-DOM als Java-API verfügbar machen und die Java Virtual Machine (JVM) in Ihrem Webbrowser ausführen. Sie können festlegen, dass der Skriptcode entweder in Form von kompilierten und signierten JAR-Dateien oder als JavaScript-Quellcode bereitgestellt werden muss. Wenn der Browser auf JavaScript stößt, kann er entweder über einen dedizierten Interpreter (wie heute) oder über Rhino über die JVM ausgeführt werden. Wenn es auf JAR-Dateien stößt, erstellt es ein neues Klassenladeprogramm und eine neue Sicherheits-Sandbox, lädt den Java-Bytecode in den Speicher und führt ihn aus. Dies wäre vollständig abwärtskompatibel mit vorhandenen Webseiten und würde es dem Browser ermöglichen, mit einem einzigen Strich die Dutzende von Sprachen zu unterstützen, die auf der JVM ausgeführt werden.
Andere Vorteile:
Ich glaube, JavaScript wird als Standardsprache für das Web noch mehr an Bedeutung gewinnen. Wir sehen einen Anstieg des serverseitigen JavaScript. Hier einige Beispiele für Implementierungen dieser leistungsstarken Sprache auf dem Server:
POW Web Server SJS - Serverseitiges JavaScript für den POW Web Server, der als Firefox-Erweiterung oder als XULRunner-Anwendung ausgeführt wird. SJS spielt eine ähnliche Rolle wie PHP in Apache, da es eine Verbindung zu Datenbanken herstellen und clientseitigen Inhalt generieren kann.
NodeJS - Serverseitiges JavaScript, das ein ereignisbasiertes Modell verwendet. Es wurde mit Googles V8 JavaScript Engine erstellt . NodeJS wird als Tool zum Erstellen skalierbarer Netzwerkprogramme beworben. Ein "Hello World" Webserver kann in nur 6 kurzen Zeilen geschrieben werden!
Jaxer - Ein JavaScript-Server, der alle Skriptblöckerunat="server"
als serverseitiges JavaScript interpretiert . Ganze Webanwendungen können in JavaScript geschrieben werden.
Rhino - JavaScript für Java - Mozilla hat diese serverseitige JavaScript-Implementierung erstellt, die auf Java ausgeführt wird. Es ist im Wesentlichen ein ähnliches Konzept wie Querces PHP für Java , Jython, JRuby und viele andere Abstraktionen anderer Sprachen, die auf der JVM ausgeführt werden. Rhino wird normalerweise zum Einbetten von JavaScript in Java verwendet, um Endbenutzern Skript-Tools zur Verfügung zu stellen. Es kann jedoch auch verwendet werden, um clientseitigen Code auf den Server zu verschieben, ohne die Geschäftslogik in einer anderen Sprache neu schreiben zu müssen!
JQuery Claypool - Serverseitiges JavaScript-Framework, das die Leistung von JQuery auf dem Server nutzt. Sehr cool! Es wurde mit der serverseitigen JavaScript-Implementierung eines Browsers von EnvJ entwickelt.
Viele dieser Implementierungen und Frameworks zeigen, dass JavaScript zu einer so starken Kraft in der Webentwicklung wird, dass die Verantwortlichen der Community bereits damit begonnen haben, JavaScript auf den Server zu verschieben. JavaScript ist eine äußerst leistungsfähige funktionale Programmiersprache, und im Laufe der Zeit werden wir feststellen, dass sie sich weiterentwickelt.
Zusammenfassend scheint es ein Widerspruch zu sein, die anderen Sprachen auf den Browser zu portieren, wenn wir stattdessen diese einzelne Browsersprache auf den Server portieren und diese Lücke auf einheitlichere Weise schließen können.
Es gibt verschiedene Beispiele für Tools, die andere Sprachen für Javascript kompilieren, darunter Haskel, Lisp und Python (wahrscheinlich auch andere). Wenn Sie also in einer dieser Sprachen arbeiten möchten, können Sie dies tun.
Und ich denke, einer meiner Professoren von der Universität hat eine Schema-Implementierung in Javascript geschrieben. Also, wenn Sie Schema mögen, können Sie das auch tun.
Die Leute haben den Mangel an eingebauter Vielfalt auf zwei Arten umgangen: durch die Verwendung von Plugins wie Flash oder Java-Applets und durch das Erstellen von Layern, die JavaScript als "Maschinencode" verwenden, wie jquery oder google web toolkit. Wenn es einen neuen Entwicklungsstil gäbe, der populär genug wäre, würden die Leute einen Weg finden, dies zu erreichen.
Beachten Sie jedoch, dass bestimmte Kreise Ihren Namen im Internet für immer verfluchen, wenn Sie eine .net-Laufzeit in Javascript erstellen und diese jemals populär wird.