Ich bin ganz ehrlich: Ich hasse es, clientseitigen Code in JavaScript zu schreiben. Ich bin kein Fan dieser Sprache, um es gelinde auszudrücken.
Es scheint dumm zu mir , dass Browser eine Programmierung unterstützen Sprache , anstatt eine Zwischen virtuelle Maschine (wie CIL oder JVM). Letzteres würde es Programmierern ermöglichen, in einer Sprache ihrer Wahl (bis zu einem gewissen Grad) zu schreiben, anstatt in einer festen voreingestellten Sprache. Diese Sprache könnte sich schneller weiterentwickeln, da nur Änderungen an der CIL / JVM / was auch immer jedes größere Browser-Upgrade erfordern würde. Sprachfunktionen könnten hinzugefügt werden, ohne die alte Browser-Erfahrung zu beeinträchtigen.
Die enormen Aufwandsersparnisse von Zwischensprachen sind bekannt . Gibt es Initiativen, um das "Scripting" von Browsern in etwas anderem als JavaScript zu fördern, insbesondere in einer bereits entworfenen, entwickelten und optimierten virtuellen Maschine? Haben sie irgendeine Dynamik?
quelle
Antworten:
Um Ihre Frage zu beantworten, werden Anstrengungen unternommen, um Javascript zugunsten einer kohärenteren Sprache für das Web-Scripting abzuschaffen. Google hat seiner Dart- Sprache viel Schub verliehen . Dart hat eine eigene VM, die bereits in Chrome eingebettet ist, aber ich bin mir nicht sicher, ob die anderen Browser diese bereits übernommen haben. Es gibt auch eine vielversprechende Sprache namens CoffeeScript .
Es gibt auch ein sehr ehrgeiziges Projekt namens HaXe, das darauf abzielt, eine ganze Reihe von Entwicklungsplattformen mit einer einzigen Sprache zu vereinen.
Glauben Sie mir, dass Sie nicht alleine sind, wenn Sie Javascript nicht mögen, aber ich befürchte, dass es nicht in naher Zukunft weitergehen wird - in der Tat scheint es eine Menge Schwung zu gewinnen, was mit Windows 8 HTML5 / JS-Apps usw., aber Alternativen wie denen von mir erwähnt fangen an aufzusteigen :)
quelle
onSomething
Event-Handler anzuhängen - das Parsen und Interpretieren von 10 bis 20 Zeichen einer einfachen Skriptsprache ist wesentlich effizienter.Javascript selbst kann als Zwischensprache angesehen werden und definiert eine virtuelle Maschine, in die andere Sprachen kompiliert werden können. In Projekten wie GWT setzt sich dieser Gedanke bereits durch. Es ist vielleicht nicht das, was Sie von Grund auf neu entwerfen würden, aber es wird bereits Realität, dass Sie "Ihre Lieblingssprache" in Javascript kompilieren könnten.
quelle
Im Wesentlichen nein. Sie sind ziemlich fest mit Javascript.
Allerdings hat es in der Vergangenheit Anstrengungen gegeben, andere Sprachen (Java-Applets, VBScript usw.) an Bord zu bringen. Jede dieser Sprachen hat nie wirklich die Anziehungskraft erlangt, die Javascript hat, weil Javascript integriert ist .
Die einzige Möglichkeit, das zu erstellen, worauf Sie sich beziehen, besteht darin, eine Skriptsprache zu erstellen, die auf einer virtuellen Maschine ausgeführt, clientseitig kompiliert und dann ausgeführt wird. Dann müsste jeder Browser die virtuelle Maschine in eine eigene Codebasis implementieren, damit der gesamte Code auf allen Browsern ausgeführt wird. Dann müssten Sie sicherstellen, dass Sie eine Art von Standards haben, damit alle Browser die Befehle auf die gleiche Weise ausführen. Natürlich, wenn Browser unabhängig erstellt werden, würde es wahrscheinlich Macken geben, die die Entwickler beachten müssten.
Aber jetzt haben wir gerade Javascript beschrieben.
Am Ende haben Sie also die Wahl zwischen:
Wenn Sie eine integrierte Sprache möchten, müssen Sie im Wesentlichen Javascript verwenden.
quelle
Tatsächlich hassen Sie kein Javascript, wie in den Ecma-Standards beschrieben, aber Sie hassen die schreckliche Implementierung in verschiedenen Browsern , mit ihren Macken, Fehlern und WTFS. Server-seitiges Javascript macht eigentlich Spaß. Das DOM-Modell ist auch die Ursache für 80% der Schmerzen von clientseitigem Javascript.
Wenn Sie dennoch eine andere Sprache verwenden möchten, können Sie GWT verwenden , mit dem Sie im Grunde Java schreiben und dann in (hässliches) Javascript kompilieren können, oder CoffeeScript , ein syntaktischer Zucker über JS, der in JS kompiliert wird.
quelle
{
ein Objekt in verschiedenen Zeilen zurückgebracht und geöffnet habe . Welcher "Rahmen moderner Funktionalität" fehlt Ihrer Meinung nach?Diese Frage taucht von Zeit zu Zeit auf.
Warum haben wir nicht andere Sprachen in Skript-Tags anstatt nur Javascript?
Damals führte IE VB als Alternative zu Javascript ein. Ich denke, man kann schon sehen, wie das zur Hölle der Standards führen würde, wenn es sich durchsetzen würde ...
Warum also nicht eine gemeinsame Standard-Zwischensprache?
Es gibt einen alten Podcast von Brendan Eich, der erklärt, warum er in naher Zukunft keine Zwischenbytecode-Sprache sieht:
http://www.aminutewithbrendan.com/pages/20101122
http://news.ycombinator.com/item?id=1893686
Das Grundproblem besteht darin, dass die Zwischensprache (wie CIL und die JVM-Bytecodes) versucht, generisch zu sein, sich jedoch meist als zu niedrig und zu stark an die ursprünglichen Hochsprachen gebunden herausstellt, die für sie kompiliert wurden. Beispielsweise können Sie in der JVM keine rekursiven Tail-Funktionen implementieren. Welche anderen Sprachfunktionen oder Implementierungsoptionen können wir nicht implementieren, wenn wir zu früh mit einer Bytecode-Abstraktion auf niedriger Ebene koppeln?
Mittlerweile ist Javascript eine flexible Hochsprache mit erweiterter Semantik und mehreren, unterschiedlichen, effizienten Implementierungen. Was wir in Zukunft vielleicht sehen werden, ist Javascript selbst als Zwischensprache. Leider ist dies etwas unausgereift und einige Sprachen sind seit heute für JS kompilierbar.
quelle
Ja. Sie können Dart, Coffeescript und Java bereits zu Javascript kompilieren. Sie haben Emscripten, ein Compiler-Backend für LLVM zum Generieren von Javascript-Bytecode (und LLVM beherrscht, glaube ich, einige Sprachen).
Aber anders als das Kompilieren zu JS, nicht in kurzer Zeit. IE6 ist 10 Jahre alt und immer noch munter. Ich hoffe, dass aktuelle Browser (die keine anderen Sprachen unterstützen) nicht so lange überleben, aber sie werden ein paar Jahre lang verfügbar sein, was zu dem schwindelerregenden Zyklus "Wir müssen immer noch Browser unterstützen, die nur Javascript unterstützen, wir müssen also "Javascript" verwenden, viel schwieriger als CSS3 - Ihre Website funktioniert möglicherweise ohne CSS3, aber versuchen Sie, es ohne clientseitiges Scripting zum Laufen zu bringen.
quelle
Sie könnten nur Glück haben. Dies ist der erste Absatz eines Beitrags im webkit-dev-Forum:
Sie können den Rest der Nachricht hier anzeigen .
quelle
JavaScript ist die Seele des Browsers. Aus diesem Grund wird bei den meisten neuen Versuchen JavaScript generiert (CoffeeScript ist ein klares Beispiel).
In GWT codieren Sie Ihre clientseitige Logik in der Programmiersprache Java, und das Toolkit generiert JavaScript.
ClojureScript ist ein interessantes Projekt, wenn Sie sich in Lisp-Codierung befinden.
So sieht es aus, egal was, JavaScript ist hier zu bleiben. (COBOL des Webs vielleicht?).
quelle
Es gibt bereits eine Reihe von Compilern, die auf Javascript abzielen, und Sie können jede Sprache auswählen , die auf Javascript kompiliert wird.
In Ihrem Link zum Wert von Zwischensprachen werden diese im Zusammenhang mit der Implementierung einer Compiler-Suite erläutert, nicht bei der Bereitstellung von Code, der über ein Netzwerk versendet und auf einem Client-Computer ausgeführt wird. Javascript ist vielleicht nicht das beste Format dafür, aber was auch immer ist, es sieht nicht so aus wie CIL- oder Java-Bytecodes.
Wenn Sie Javascript hassen, empfehlen wir Ihnen, in den Bereich Embedded, Scientific oder Spieleentwicklung zu wechseln, in dem C, Fortran und C ++ die Hauptrolle spielen. Branchen-Apps bewegen sich sehr stark im Web, und das bedeutet mehr Javascript, nicht weniger.
quelle