Was ist der Vorteil des Dart-Sprache JavaScript (Node.js)
Ich sehe nicht den Punkt der Dart in Bezug auf das problem, das Sie lösen möchten.
Habe ich gelesen, dass es wurde geschaffen durch die Unzulänglichkeiten von JavaScript, aber diese Unzulänglichkeiten wurden nicht gegeben.
Kann jemand erklären den nutzen des Lernens Dart anstatt mich zu lernen Node.js?
- für das Protokoll, gibt es bereits eine Sprache, die Lösung des javascript so genannte Probleme: Coffeescript jashkenas.github.com/coffee-script
- da Coffeescript hat eine sehr direkte Zuordnung zu JavaScript kann es nicht tun, einige der Dinge, die dart versucht zu tun. Zum Beispiel ist es nicht wirklich kann statische Typisierung ohne die Einführung von viel mehr, die Komplexität der Sprache.
- Dart-VM (wie ein Knoten) hat direkte Unterstützung für die serverseitige Programmierung (IO etc.) obwohl es derzeit nicht sehr gut dokumentiert (wie die API-stil ist die Stabilisierung). Aber Sie würde gehen Sie vor und schreiben Sie Ihren neuen Dart-Sinatra-Klon.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den technische übersicht scheint, fassen Sie den Unterschied ganz gut:
Klassen: während JavaScript ist Objekt-orientiert und es nicht Klassen (zumindest in seinen neuesten Inkarnationen), es ist wirklich eine Prototyp-basierte Sprache ist und nicht eine Klassen-basierte Sprache. Das ist zwar nicht grundsätzlich schlimmer ist, unterscheidet es sich von den meisten OO-Sprachen, das macht es schwieriger zu lernen für die meisten Menschen.
(optional) statische Typisierung: Sie können das nicht statische Typisierung (wie in: "die Prüfung durch den compiler") in einfachem JavaScript. Die Vorteile (und Nachteile) sind bekannt und wurden Häufig diskutiert.
Sprache Unterstützung für Bibliotheken: "laden der Datei, bevor diese" ist eine sehr primitive Art und Weise der Umsetzung von Bibliotheken und die meisten modernen Sprachen haben explizite Unterstützung für Bibliotheken in gewisser Weise.
Dieser Seite auch erwähnt, Werkzeuge, aber es ist nicht eine inhärente Unterschied zwischen den Sprachen. Zugegeben, eine statisch kompilierte und typisierte Sprache ist einfacher zu schreiben, gute Werkzeuge, aber ist dies nicht ein grundlegender Unterschied, dass nicht gelöst werden kann durch die Programmierung.
Das Hauptproblem sehe ich es als Lösung der Schaffung von großen, multi-developer-Anwendungen.
In Javascript, ich kann schreiben, die durchaus gültig-code:
Und dies wird ausgeführt, in Ordnung, aber es ist offensichtlich ein Fehler.
Nun trennen Sie die definition einer Funktion und Aufruf der Funktion durch mehrere Entwickler und mehrere Monate über eine codebase-mehrere tausend Zeilen code.
Die ursprüngliche Funktion x(y) könnte ursprünglich die Funktion x(y,z,a) aber seitdem umgestaltet werden, im Laufe der Zeit. Dies ist, wo javascript schlägt fehl für mich, und das ist das, was dart beheben.
Bearbeiten (Mai 2013) In Ergänzung zu meiner Antwort oben, ich glaube, Sie immer noch wahr, ich denke, dass die performance-Geschichte ist auch immer ziemlich überzeugend. Lars Bak und Kasper Lund ' s Vortrag von der Google I/O bietet einige Beweise.