Warum JavaScript statt einer standardmäßigen virtuellen Browser-Maschine?
Wäre es nicht sinnvoll, Sie zu unterstützen eine Reihe von Sprachen (Java, Python, Ruby, etc.) durch eine standardisierte virtuelle Maschine gehostet im browser anstatt dass die Verwendung eines speziellen Sprache-wirklich, eine spezialisierte Paradigma-für die client-scripting?
Zur Klärung der Vorschlag, eine web-Seite enthält-byte-code, anstelle von einem higher-level-Sprache wie JavaScript.
Verstehe ich die pragmatische Realität, dass JavaScript ist nur das, was wir haben, mit zu arbeiten jetzt durch evolutionäre Gründe, aber ich dachte, mehr über die langfristigen. Mit Bezug auf die Abwärtskompatibilität, es gibt keinen Grund, dass inline-JavaScript konnte nicht gleichzeitig unterstützt für einen Zeitraum von Zeit, und natürlich JavaScript könnte eine der Sprachen, die vom browser unterstützt virtuelle Maschine.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, ja. Sicherlich hätten wir eine Zeitmaschine, zurück, und dass eine Menge von Javascript-Funktionen wurden entwickelt, anders wäre ein wichtiger Zeitvertreib (,, und gewährleisten die Menschen, die entworfen, IE CSS Motor ging nie in IHN). Aber es ist nicht geschehen, und wir stecken mit es jetzt.
Ich vermute, in der Zeit, es wird die "Maschinensprache" für das web, mit anderen besser entwickelt, - Sprachen und-APIs kompilieren Sie es (und gerecht für die verschiedenen runtime-engine Schwächen).
Ich glaube nicht, jedoch, diese "besser konzipiert languages" Java, Python oder Ruby. Javascript ist, trotz der Fähigkeit, an anderer Stelle genutzt werden, eine Web-application-scripting-Sprache. Da use-case -, können wir tun besser als jeder dieser Sprachen.
InformationsquelleAutor der Antwort
Ich denke, JavaScript ist eine gute Sprache, aber ich würde gerne die Wahl haben, bei der Entwicklung von clientseitigen web-Applikationen. Für legacy-Gründen wir stecken mit JavaScript, aber es gibt Projekte und Ideen suchen, ändern, Szenario:
Denke ich, haben wir JavaScript für eine lange Zeit, aber das wird sich ändern früher oder später. Es gibt so viele Entwickler, die bereit sind andere Sprachen im browser.
InformationsquelleAutor der Antwort
Beantwortung der Frage - Nein, es würde keinen Sinn machen.
Derzeit die nächsten Dinge, die wir haben, um eine multi-language VM sind die JVM und die CLR. Diese sind nicht gerade leichte Tiere, und es würde keinen Sinn machen zu versuchen und einbetten, etwas von dieser Größe und Komplexität in einem browser.
Untersuchen wir die Idee, dass Sie schreiben, könnte eine neue, Mehrsprachige VM, die besser wäre als die bestehende Lösung.
So, Nein, es macht keinen Sinn.
Denken Sie daran, um die Unterstützung dieser Sprachen, die Sie gehen zu müssen, um Streifen nach unten Ihre APIs etwas heftig, hacken sich alle Teile, die sich nicht sinnvoll in den Kontext ein browser-Skript. Es gibt eine große Anzahl von design-Entscheidungen hier, und eine riesige Chance für Fehler.
In Bezug auf Funktionalität, sind wir wahrscheinlich nur wirklich arbeiten mit dem DOM wie auch immer, also das ist wirklich ein Problem von syntax und Sprache, idom, an welchem Punkt macht es Sinn zu Fragen: "Ist dies wirklich Wert?"
In dem Bewusstsein, die nurwas wir reden, ist eine client-side-scripting, da der server-side-scripting ist bereits verfügbar, in welcher Sprache auch immer Sie möchten. Es ist eine relativ kleine, Programmierung arena und so den Vorteil bringen, mehrere Sprachen, ist fraglich.
Welche Sprachen würde es Sinn zu bringen? (Achtung, subjektive material folgt)
Bringen in einer Sprache wie C, ist nicht sinnvoll, denn es ist gemacht für die Arbeit mit Metall, und in einem browser gibt es nicht viel Metall wirklich verfügbar.
Bringen in einer Sprache wie Java ist nicht sinnvoll, weil die beste Sache über es ist, die APIs sowieso.
Bringen in einer Sprache wie Ruby oder Lisp macht keinen Sinn, da JavaScript ist eine mächtige dynamische Sprache, die sehr nah an das Schema.
Schließlich, was der browser-Hersteller wirklich unterstützen will DOM-integration für mehrere Sprachen? Jede Anwendung wird eine spezifische bugs. Wir haben bereits ging durch Feuer, den Umgang mit Differenzen zwischen den MS Javascript und Mozilla Javascript-und jetzt wollen wir multiplizieren Sie, dass Schmerzen in der fünf-oder sechs-Fach?
Macht es keinen Sinn.
InformationsquelleAutor der Antwort
Unter Windows, können Sie sich registrieren und andere Sprachen mit dem Scripting-Host und haben Sie zur Verfügung, um den IE. Für folgende VBScript-Beispiel ist out of the box unterstützt (obwohl es hat nie gewonnen viel Popularität, wie es für die meisten Zwecke sogar noch schlimmer als JavaScript).
Python win32 extensions darf man hinzufügen, Python, DH, wie dies ganz einfach, aber es war nicht wirklich eine gute Idee, wie Python ist ziemlich schwierig zu sandbox: viele Funktionen der Sprache freizulegen genug Implementierung Haken ermöglichen eine angeblich eingeschränkte Anwendung zum ausbrechen.
Ist es ein problem, in der Regel, dass die mehr Komplexität, die Sie hinzufügen, zu einem Netto-orientierte Anwendung, wie dem browser, die größere Wahrscheinlichkeit von Sicherheitsproblemen. Eine Reihe von neuen Sprachen würde sicherlich passen, die Beschreibung, und dies sind die neuen Sprachen, die sind auch noch in der Entwicklung schnell.
JavaScript ist eine hässliche Sprache, aber durch eine sorgfältige Nutzung eine ausgewählte Teilmenge der features und die Unterstützung von geeigneten Objekt-Bibliotheken, kann es in der Regel ziemlich erträglich. Es scheint, inkrementelle, praktische Ergänzungen zu den JavaScript-sind der einzige Weg, web-scripting ist wahrscheinlich, sich zu bewegen auf.
InformationsquelleAutor der Antwort
Ich würde auf jeden Fall willkommen, ein standard-Sprachen-unabhängige VM im Browser (die ich bevorzugen würde-code in einer statisch typisierten Sprache).
(Technisch) ist Es durchaus machbar schrittweise: die erste große browser unterstützt es und der server hat die Möglichkeit, entweder senden bytecode, wenn die aktuelle Anfrage von kompatiblen browser oder übersetzen Sie den code, um JavaScript und senden plain-text-JavaScript.
Gibt es bereits einige experimentelle Sprachen, die kompiliert zu JavaScript, aber eine definierte VM würde (vielleicht) ermöglichen eine bessere Leistung.
Ich zugeben, dass der "standard" - Teil wäre ziemlich schwierig, wenn. Auch würde es Konflikte zwischen den Funktionen der Sprache (zB. statische vs. dynamische Typisierung) über die Bibliothek (sofern die neue Sache verwenden würde derselben Bibliothek). Also ich glaube nicht, dass es passieren wird (bald).
InformationsquelleAutor der Antwort
Wenn Sie fühlen, wie Sie immer Ihre Hände schmutzig, dann haben Sie entweder einer Gehirnwäsche unterzogen, oder spürt noch immer die Folgen des "DHTML-Jahre". JavaScript ist sehr mächtig und eignet sich gut für seinen Zweck, nämlich Skript Interaktivität client-Seite. Dies ist der Grund, warum JavaScript 2.0 bekam so einen schlechten Ruf hat. Ich meine, warum Pakete, Schnittstellen, Klassen und dergleichen, wenn diese eindeutig Aspekte der server-Seite Sprachen. JavaScript ist einfach in Ordnung, wie eine Prototyp-basierte Sprache, ohne ausgewachsene objektorientierte.
Wenn es einen Mangel der nahtlose Verknüpfungen zu Ihren Anwendungen, da der server-Seite und client-Seite kommunizieren nicht gut, dann möchten Sie vielleicht zu überdenken, wie Sie die Architektur Ihrer Anwendungen. Ich habe mit extrem robuste Web-Seiten und Web-Anwendungen, und ich habe nie einmal sagte, "Hmm, ich wünschte wirklich, dass JavaScript machen könnte (xyz)." Wenn es das tun könnte, dann würde es nicht werden JavaScript-dann wäre es ActionScript-oder LUFT-oder Silverlight. Ich brauchen das nicht, und weder wird die meisten Entwickler. Das sind nette Technologien, aber Sie versuchen, ein problem zu lösen mit einer Technologie, nicht um eine... nun, eine Lösung.
InformationsquelleAutor der Antwort
Während Javascript ist das einzige gut unterstützt Skript-Sprache können Sie Steuern die Seite direkt von Flash hat einige sehr nette features für größere Programme. Es hat in letzter Zeit ein JIT und können auch generieren von bytecode on the fly " (check-out Laufzeit der Auswertung eines Ausdrucks für ein Beispiel, in dem Sie flash verwenden, zu kompilieren, user-input mathematische Ausdrücke, alle Weg, um native binary). Die Haxe Sprache gibt Sie die statische Typisierung mit Inferenz-und mit der bytecode-Generierung Fähigkeiten, die du umsetzen konnte fast alle runtime-system Ihrer Wahl.
InformationsquelleAutor der Antwort
Ich glaube nicht, dass ein standard-web-VM ist das undenkbar. Es gibt eine Reihe von Möglichkeiten, die Sie einführen könnte, eine neue web-VM, standard-grazil und mit voller Unterstützung Alter, so lange wie Sie sicherstellen, dass Sie eine VM-bytecode-format, das Sie verwenden können, werden schnell dekompiliert in javascript, und dass die resultierende Ausgabe wird einigermaßen effizient (ich würde sogar so weit gehen zu vermuten, dass ein smart-decompiler würde wahrscheinlich ein besseres javascript als javascript ein Mensch könnte selbst produzieren).
Mit dieser Eigenschaft, jede web-VM-format kann leicht dekompiliert entweder auf dem server (schnell), auf dem client (langsam, aber in den Fällen, wo Sie haben eine begrenzte Kontrolle über die server), oder könnte die pre-generiert und geladen, dynamisch, indem Sie entweder den client oder den server (Schnellste) für Browser, die keine native Unterstützung für den neuen standard.
Diese Webbrowsern nativ unterstützt den neuen standard profitieren würden von einer erhöhten Geschwindigkeit der Laufzeitumgebung für web-vm-basierten apps. Hinzu kommt, dass, wenn Browser-Basis Ihre bestehenden javascript-engines auf der web-vm, standard - (D. H. Parsen von javascript-Code in die web-vm-standard und dann läuft es), dann werden Sie nicht haben, um das verwalten von zwei Laufzeiten, aber das liegt an den browser-Hersteller.
InformationsquelleAutor der Antwort
Schnell ein update auf diese alte Frage.
Jeder, bekräftigte, dass eine "web-Seite enthält-byte-code, anstelle von einem higher-level-Sprache wie JavaScript" "wird nicht passieren".
Juni 2015 die W3C angekündigt WebAssembly,
Dies ist noch experimentell, aber es gibt schon einige prototypal Implementierung in Firefox nightly und Chrome Canary und es ist schon einige demonstration der Arbeit.
Derzeit WebAssembly ist hauptsächlich entworfen, hergestellt aus C/C++, jedoch
Ließ ich Sie einen genaueren Blick auf die offizielle Seite des Projekts, es ist wirklich spannend!
InformationsquelleAutor der Antwort
diese Frage taucht wieder regelmäßig. meine Haltung dazu ist:
A) nicht passieren und B) ist bereits hier.
Verzeihung, was? lassen Sie mich erklären:
ad A
einer VM ist nicht nur eine Art von universal magischen Gerät. die meisten VMs sind optimiert für eine bestimmte Sprache und bestimmte Funktionen der Sprache. nehmen Sie die JRE/Java (oder LLVM): optimiert für statische Typisierung, und es gibt definitiv Probleme und Nachteile bei der Implementierung dynamische Typisierung oder andere Dinge, die java nicht unterstützen, in den ersten Platz.
so, die "Allgemeine Mehrzweck-VM", unterstützt viele Funktionen der Sprache (tail call optimization, static & dynamic typing, foo-bar-boo, ...) wäre gigantisch, schwer zu realisieren, und wahrscheinlich auch schwieriger zu optimieren, um gute Leistung aus ihm heraus. aber ich bin keine Sprache-designer oder vm-guru, vielleicht bin ich falsch: es ist eigentlich ziemlich einfach, nur niemand hatte die Idee noch? hrm, hrm.
ad B
schon hier: es kann nicht ein bytecode-compiler/vm, aber braucht man eigentlich nicht. afaik javascript ist turing-vollständig, also sollte es möglich sein, entweder:
ad C
was? es gab nicht einen Punkt C in den ersten Platz!? da gibt es nicht ... noch nicht. google NACL. wenn jeder kann es tun, es ist google. sobald google bekommt es arbeiten, Ihre Probleme sind gelöst. nur, ähm, kann es niemals funktionieren wird, weiß ich nicht. das Letzte mal habe ich darüber gelesen, es gab einige ungelöste Probleme der Sicherheit der wirklich knifflige Art.
abgesehen davon:
javascript ist dort seit ~1995 = 15 Jahre. noch, browser-Implementierungen unterscheiden sich heute (obwohl zumindest ist es nicht unerträglich mehr). also, wenn Sie etwas neues beginnen, noch, haben Sie vielleicht eine version arbeiten, cross-browser-um 2035. mindestens eine funktionierende Teilmenge. das unterscheidet sich nur dezent. und muss Kompatibilitäts-libs und-Schichten. kein Punkt, nicht zu versuchen die Dinge zu verbessern, obwohl.
auch, was die lesbar-source-code? ich kenne viele Unternehmen würden es vorziehen, nicht zu dienen, Ihren code als "Art-von" open-source". ich persönlich bin ziemlich froh, dass ich in der Lage bin zu Lesen Sie die Quelle, wenn ich vermute, dass etwas faul oder wollen, von ihm zu lernen. Hurra für source-code!
InformationsquelleAutor der Antwort
In der Tat. Silverlight ist tatsächlich genau das - eine client-Seite .Net basierte VM.
InformationsquelleAutor der Antwort
Gibt es einige Fehler in Ihrer Argumentation.
Einer standard-VM in einem standard-browser wird nie standard werden. Wir haben 4 Browser, und der IE hat sich widerstreitenden Interessen im Hinblick auf 'standard'. Die anderen drei entwickeln sich schnell, aber Akzeptanz der neuen Technologien ist langsam. Was ist mit Browsern auf Handys, kleine Geräte, ...
Die integration von JS in den verschiedenen Browsern und deren Vergangenheit führt Sie zum unter-Einschätzung der Leistung von JS. Sie Versprechen einen standard, aber missbilligen JS-da standard nicht geklappt hat, in den ersten Jahren.
Wie gesagt, von anderen, JS ist nicht das gleiche wie LUFT/.NET/... und dergleichen. JS in seiner aktuellen Inkarnation perfekt passt Ihre Ziele.
Langfristig, Perl und Ruby konnte gut ersetzen javascript. Doch die Annahme dieser Sprachen ist langsam, und es ist bekannt, dass Sie nie über JS.
InformationsquelleAutor der Antwort
Wie definieren Sie am besten? Am besten für den browser, oder am besten für die Entwickler? (Plus ECMAScript ist anders als Javascript, aber das ist eine Formsache.)
Finde ich, dass JavaScript kann mächtig und elegant zugleich. Leider sind die meisten Entwickler, die ich getroffen habe, behandeln Sie es wie ein notwendiges übel, anstatt eine echte Programmiersprache.
Einige der features, die ich genießen sind:
Macht es Spaß damit umzugehen und es ist etabliert. Genießen Sie es, während es rund, denn während es möglicherweise nicht die "beste" für die client-scripting ist es sicherlich angenehm.
Ich bin damit einverstanden, es ist frustrierend, wenn die Herstellung von dynamischen Seiten, da der browser-Inkompatibilitäten, aber das kann gemildert werden durch die UI-Bibliotheken. Das sollte nicht gegen JavaScript selbst nicht mehr als Schwung gehalten werden soll, gegen Java.
InformationsquelleAutor der Antwort
JavaScript browser ' s standard-virtuellen Maschine. Zum Beispiel, OCaml und Haskell jetzt haben beide Compiler ausgegeben werden können, JavaScript. Die Beschränkung ist nicht JavaScript die Sprache, die Einschränkung ist die browser-Objekte zugänglich über JavaScript, und den access control-Modell verwendet, um sicherzustellen, können Sie sicher JavaScript ausführen, ohne dabei Ihre Maschine. Die aktuelle access-Steuerelemente sind so arm ist, dass JavaScript ist erlaubt nur sehr eingeschränkten Zugriff auf browser-Objekte, für die aus Gründen der Sicherheit. Das Harmony-Projekt ist auf der Suche um das zu beheben.
InformationsquelleAutor der Antwort
Es ist eine Coole Idee. Warum nehmen Sie nicht einen Schritt weiter?
Dann können wir features hinzufügen, um Browsern, ohne zu drücken, einen neuen Browser aus auf jedem client - die neue relevante bits würde die dynamisch geladen werden, aus dem web. Wir könnten auch veröffentlichen neue Versionen von HTML ohne die ganzen lächerlichen Komplexität der Erhaltung der Abwärtskompatibilität mit alles, was jemals gearbeitet in einem browser - Kompatibilität ist die Verantwortung, den Autor der Seite. Wir bekommen auch zum Experimentieren mit anderen markup-Sprachen als HTML. Und, natürlich, wir können schreiben, Lust JIT-Compiler in die Motoren, so dass Sie können ein Skript Ihre Webseiten in jede gewünschte Sprache.
InformationsquelleAutor der Antwort
Ich würde es begrüßen, jede Sprache neben javascript wie möglich Skriptsprache.
Was cool wäre ist die Verwendung von anderen Sprachen, die dann Javascript. Java würde wahrscheinlich nicht eine gute Passform zwischen dem tag aber Sprachen wie Haskell, Clojure, Scala, Ruby, Groovy von Vorteil wäre.
Kam ich ein Kreuz Rubyscript somewhile her ...
http://almaer.com/blog/running-ruby-in-the-browser-via-script-typetextruby und http://code.google.com/p/ruby-in-browser/
Noch experimentell und in progress, aber sieht vielversprechend aus.
Für .Netz habe ich gerade gefunden: http://www.silverlight.net/learn/dynamic-languages/ Gerade festgestellt, dass die Seite aus, sieht aber auch interessant. Funktioniert auch von meinem Apple Mac.
Weiß nicht, wie gut die oben genannten arbeiten, die eine alternative für Javascript, aber es sieht ziemlich cool aus, auf den ersten Blick. Möglicherweise würde dies ermöglichen die Verwendung der Java-oder .Net framework nativ vom browser - innerhalb der browser-sandbox.
Als für die Sicherheit, wenn die Sprache läuft innerhalb der JVM (oder .Net engine für diese Angelegenheit), wird die VM kümmern sich um Sicherheit, so haben wir nicht zu befürchten, dass - zumindest nicht mehr, dann sollten wir für alles, was im browser läuft.
InformationsquelleAutor der Antwort
Wahrscheinlich, aber zu tun, so würden wir brauchen, um die gängigen Browser zu unterstützen. IE-Unterstützung wäre die am schwersten zu bekommen. JavaScript wird verwendet, weil es die einzige Sache, auf die Sie zählen können.
InformationsquelleAutor der Antwort
Die überwiegende Mehrheit der Entwickler habe ich gesprochen über ECMAScript et. al. am Ende einzugestehen, dass das problem nicht die scripting-Sprache, es ist die lächerliche HTML-DOM, die es macht. Die Vermischung der DOM und die scripting-Sprache ist eine häufige Quelle von Schmerz und frustration in Bezug auf ECMAScript. Auch, vergessen Sie nicht, die IIS verwenden können, JScript für server-side-scripting, und Dinge wie Rhino ermöglichen den Bau von frei stehenden apps in ECMAScript. Versuchen Sie arbeiten in einer dieser Umgebungen mit ECMAScript für eine Weile, und sehen, ob Sie Ihre Meinung ändert.
Diese Art der Verzweiflung gegangen, um für einige Zeit. Ich würde vorschlagen, Bearbeiten Sie diese, oder umbuchen mit spezifischen Themen. Sie können angenehm überrascht sein, von einigen der Erleichterung, die Sie erhalten.
Einer alten Website, aber immer noch ein großartiger Ort, um zu starten: Douglas Crockford ' s Website.
InformationsquelleAutor der Antwort
Gut, wir haben bereits VBScript, tun wir das nicht? Warten, nur IE unterstützt!
Auch für Ihre schöne Idee der VM. Was ist, wenn ich ein Skript für meine Seite mit Lua, und Ihr browser nicht über die parser für die Konvertierung in einen bytecode? Natürlich, wir könnten uns vorstellen ein script-tag das akzeptieren einer Datei von bytecode, das würde sogar sehr effizient.
Aber die Erfahrung zeigt, ist es schwer, zu bringen etwas neues ins Web: es würde Jahre dauern, zu erlassen, um eine Radikale änderung wie diese. Wie viele Browser unterstützen SVG oder CSS3?
Neben, ich nicht sehen, was Sie finden "dirty" in JS. Es kann hässlich sein, wenn codiert, die von Amateuren Vermehrung schlechte Praxis an anderer Stelle kopiert, aber Meister gezeigt, es kann eine elegante Sprache. Ein bisschen wie Perl: oft sieht aus wie eine verschleierte Sprache, kann aber vorgenommen werden, einwandfrei lesbar.
InformationsquelleAutor der Antwort
Check this out http://www.visitmix.com/Labs/Gestalt/ - ermöglicht Ihnen die Verwendung von python oder ruby, solange der Benutzer hat silverlight installiert.
InformationsquelleAutor der Antwort
Dies ist eine sehr gute Frage.
Es ist nicht das problem nur in JS, wie es ist, in der Mangel von guten freien IDEs für die Entwicklung größerer Programme in JS. Ich kenne nur eine, die ist kostenlos: Eclipse. Das andere gut ist Microsoft Visual Studio, aber nicht frei.
Warum sollte es kostenlos sein? Wenn web-browser-Anbieter möchten, ersetzen Sie desktop-apps mit online-apps (und Sie wollen), dann haben Sie uns, die Programmierer, gute dev-tools. Sie können nicht mit 50.000 Zeilen JavaScript mit einem einfachen text-editor, JSLint und built-in-Google Chrome-debugger. Es sei denn, du bist ein macohist.
Als Borland machte eine Entwicklungsumgebung für Turbo-Pascal 4.0 im Jahr 1987, war es eine revolution in der Programmierung. 24 Jahre sind vergangen, seit. Beschämend, im Jahr 2011 viele Programmierer immer noch nicht verwenden, code-Vervollständigung, syntax-überprüfung und die ordnungsgemäße Debugger. Wahrscheinlich, weil es so wenige gute IDEs.
Es ist im Interesse der web-browser-Anbieter, um korrekte (KOSTENLOSE) tools für Programmierer, wenn Sie wollen, dass wir, um Anwendungen zu erstellen, mit denen Sie kämpfen können Windows, Linux, MacOS, iOS, Symbian, etc.
InformationsquelleAutor der Antwort
Realistisch, Javascript ist die einzige Sprache, die jeder Browser verwenden für eine lange Zeit, so wäre es zwar sehr schön, andere Sprachen, ich kann nicht sehen, es geschieht.
Diese "standardisierte VM" Sie sprechen, wäre sehr groß und würde verabschiedet werden müssen, die von allen gängigen Browsern, und die meisten Websites würde einfach weiterhin mit Javascript, da ist es besser geeignet, um websites als viele andere Browser.
Müssten Sie sandbox jede Programmiersprache in diese VM und reduzieren die Menge von Zugriff jede Sprache hat zu dem system, die eine Menge von änderungen in der Sprachen-und Abbau oder Neuimplementierung von vielen Funktionen. In der Erwägung, dass Javascript bereits dieser im Sinn, und hat schon für eine lange Zeit.
InformationsquelleAutor der Antwort
Vielleicht sind Sie auf der Suche für den Google Native Client.
InformationsquelleAutor der Antwort
In einem Sinne, dass eine mehr expressive Sprache wie Javascript in den browser, anstatt etwas mehr allgemein, wie Java-bytecode hat dazu geführt, eine weitere Webseite öffnen.
InformationsquelleAutor der Antwort
Ich denke, das ist nicht so einfach Problem. Wir können sagen, wir stecken mit JS, aber ist es wirklich so schlimm mit jQuery, Prototype, scriptaculous, MooTools, und alle fantastischen Bibliotheken?
Erinnern, JS ist leichtenoch mehr mit V8, TraceMonkey, SquirrelFish - neue Javascript-engines in den modernen Browsern.
Ist es auch bewiesen - ja, wir wissen, es hat Probleme, aber wir haben viel von diesen aussortiert, wie früh Sicherheit Probleme. Imaging ermöglicht Ihrem browser für die Ausführung von Ruby-code, oder sonst was. Sicherheits-sandbox hätte getan werden für Kratzer. Und wissen Sie was? Python-Leute bereits fehlgeschlagen zwei mal bei ihm.
Ich denke, dass Javascript wird überarbeitet und verbessert im Laufe der Zeit, genau wie HTML und CSS ist. Der Prozess kann lang sein, aber nicht alles ist möglich in dieser Welt.
InformationsquelleAutor der Antwort
Ich glaube nicht, dass Sie "verstehen, das pragmatische Problem, dass JavaScript ist nur das, was wir haben, mit zu arbeiten". Eigentlich ist es sehr mächtige Sprache. Sie hatte Ihren Java-applet im browser seit Jahren und wo ist es jetzt?
Jedenfalls, Sie brauchen nicht zu "get dirty" - arbeiten auf den client. Zum Beispiel, versuchen GWT.
InformationsquelleAutor der Antwort
... du meinst...
Java und Java-applet
Flash und Adobe AIR
etc..
In der Regel jedes RIA-framework kann füllen Ihre Bedürfnisse, sondern für jeden gibt es einen Preis zu zahlen, für die es ( ej. Laufzeit avalible auf browser-oder/und proprietäre oder/und weniger Optionen als reines desktop )
http://en.wikipedia.org/wiki/List_of_rich_internet_application_frameworks
Für die Entwicklung von Web-für alle nicht-web-languaje, Sie habe GWT: entwickeln von Java-kompilieren zu Javascript
InformationsquelleAutor der Antwort
Weil Sie alle VMs mit bytecode-Dolmetscher bereits, und der bytecode ist alles anders. {Chakra(IE), Firefox (SpiderMonkey), Safari (SquirrelFish), Oper(Carakan).
Sorry , ich denke, dass Chrome (V8) kompiliert unten zu IA32-Maschinen-code.
InformationsquelleAutor der Antwort
IMO, JavaScript, die Sprache, nicht das problem. JavaScript ist eigentlich eine Recht ausdrucksstarke und kraftvolle Sprache. Ich denke, es bekommt einen schlechten Ruf, weil es nicht bekam klassischen OO-features, aber für mich ist das mehr gehe ich mit der prototypal groove, desto mehr mag ich es.
Dem problem wie ich es sehe, ist die schuppige und inkonsistenten Implementierungen in den vielen Browsern, sind wir gezwungen, die Unterstützung auf dem web. JavaScript-Bibliotheken wie jQuery, gehen einen langen Weg zur Minderung, schmutziges Gefühl.
InformationsquelleAutor der Antwort
JavaScript ist die einzige native, standard-option zur Verfügung. Wenn Sie möchten, viel power, greifen, jQuery, aber wenn Sie tun müssen, ein paar mehr, schreiben Sie eventuell ein addon für Firefox? oder ähnliches für den IE usw.
InformationsquelleAutor der Antwort