Das Problem mit Javascript ist nicht die Sprache selbst - es ist eine perfekt prototypisierte und dynamische Sprache. Wenn Sie aus einem OO-Hintergrund kommen, gibt es eine gewisse Lernkurve, aber es ist nicht die Schuld der Sprache.
Die meisten Leute nehmen an, dass Javascript wie Java ist, weil es eine ähnliche Syntax und einen ähnlichen Namen hat, aber eigentlich ist es viel mehr wie Lisp. Es ist eigentlich ziemlich gut für die DOM-Manipulation geeignet.
Das eigentliche Problem ist, dass es vom Browser kompiliert wird und das bedeutet, dass es je nach Client sehr unterschiedlich funktioniert.
Das tatsächliche DOM unterscheidet sich nicht nur je nach Browser, sondern es gibt auch einen massiven Unterschied in Leistung und Layout.
Bearbeiten Sie nach Klarstellung in Frage
Angenommen, mehrere interpretierte Sprachen wurden unterstützt - Sie haben immer noch dieselben Probleme. Die verschiedenen Browser wären immer noch fehlerhaft und hätten unterschiedliche DOMs.
Außerdem müsste für jede Sprache ein Interpreter in den Browser integriert oder als Plug-In installiert sein (nach dem Sie suchen könnten, bevor Sie die Seite bereitstellen). Es hat ewig gedauert, bis Javascript konsistent war.
Sie können kompilierte Sprachen nicht auf die gleiche Weise verwenden - dann führen Sie eine ausführbare Datei ein, die nicht einfach auf ihre Funktionsweise überprüft werden kann. Viele Benutzer würden sich dafür entscheiden, es nicht laufen zu lassen.
OK, was ist mit einer Art Sandbox für den kompilierten Code? Klingt für mich nach Java Applets. Oder ActionScript in Flash. Oder C # in Silverlight.
Was ist mit einer Art IL-Standard? Das hat mehr Potenzial. Entwickeln Sie in einer beliebigen Sprache und kompilieren Sie sie dann zu IL, die der Browser dann JITs.
Außer, dass Javascript schon so etwas wie IL ist - schauen Sie sich nur GWT an . Sie können damit Programme in Java schreiben, diese jedoch als HTML und JS verteilen.
Bearbeiten Sie nach weiterer Klarstellung in Frage
Javascript ist nicht oder nicht die einzige Sprache, die von Browsern unterstützt wird: In dunklen Zeiten des Internet Explorers konnten Sie zwischen Javascript und VBScript wählen, um es im IE auszuführen. Technisch gesehen hat IE nicht einmal Javascript ausgeführt - es wurde JScript ausgeführt (hauptsächlich, um Sun nicht für das Wort Java bezahlen zu müssen , besitzt Oracle immer noch den Namen Javascript ).
Das Problem war, dass VBScript Eigentum von Microsoft war, aber auch, dass es einfach nicht sehr gut war. Während Javascript Funktionen hinzufügte und erstklassige Debugging-Tools in anderen Browsern (wie FireBug) erhielt, blieb VBScript nur für den Internet Explorer und praktisch nicht debuggbar (Entwickler-Tools in IE4 / 5/6 waren nicht vorhanden). In der Zwischenzeit wurde VBScript auch zu einem ziemlich leistungsfähigen Skriptwerkzeug im Betriebssystem ausgebaut, aber keine dieser Funktionen war im Browser verfügbar (und als sie es waren, wurden sie zu massiven Sicherheitslücken).
Es gibt immer noch einige unternehmensinterne Anwendungen, die VBScript verwenden (und einige stützen sich auf diese Sicherheitslücken), und sie führen immer noch IE7 aus (sie haben IE6 nur gestoppt, weil MS es endgültig beendet hat).
Javascript auf den aktuellen Stand zu bringen war ein Albtraum und hat 20 Jahre gedauert. Es gibt immer noch keine konsistente Unterstützung, da in einigen Browsern immer noch Sprachfunktionen (angegeben 1999) fehlen und viele Shims erforderlich sind.
Das Hinzufügen einer alternativen Sprache für das Dolmetschen in Browsern ist mit zwei Hauptproblemen verbunden:
Alle Browser-Anbieter dazu bringen, den neuen Sprachstandard zu implementieren - etwas, das sie seit 20 Jahren für Javascript noch nicht geschafft haben.
Eine zweite Sprache verwässert möglicherweise die Unterstützung, die Sie bereits haben, und ermöglicht (zum Beispiel) dem IE eine zweitklassige Javascript-Unterstützung, aber (wieder) großartiges VBScript. Ich möchte wirklich keinen Code in verschiedenen Sprachen für verschiedene Browser schreiben.
Es sollte beachtet werden, dass Javascript nicht "fertig" ist - es entwickelt sich immer weiter, um in neuen Browsern besser zu werden. Die neueste Version ist den Implementierungen der Browser um Jahre voraus und sie arbeiten an der nächsten.