Wie ist der aktuelle Stand der Dart-Programmiersprache von Google? [geschlossen]


15

Dart gibt es schon seit Ewigkeiten (im Internet), aber nach Google Trends hat es nicht viel Aufsehen erregt, und die Tatsache, dass es nur in Chrome funktioniert, hilft auch nichts. Trotzdem gewinnt Chrome jeden Tag Marktanteile, was zu einer besseren Sicht auf Dart führt.

Was ist jetzt das große Ganze? In welchem ​​Zustand befindet sich die Sprache? Schätzen die Leute das sehr? Marktanteil? Web App Schaufenster? Einige Feature-Implementierungen, die Sie dazu bringen, "Ich muss es verwenden"?


2
Diese Frage kann als zu lokal beurteilt werden und ist nicht sicher, wie man sie weniger lokalisieren kann, ohne nach einer Meinung zur Sprache selbst zu fragen.
Matthieu

1
@Matthieu: Zu lokalisiert? Ernsthaft?
Jim G.

1
@JimG. : Für eine Sprache, die in der Version 0.06 vorliegt und die jeden Monat aktualisiert wird , kann man mit Recht sagen, dass diese Sprache in den nächsten 6 Monaten möglicherweise nicht dieselbe ist und dass jedes Urteil, das heute gefällt wird, dann unbrauchbar ist.
Matthieu

1
Dart funktioniert in modernen Browsern, indem es in JavaScript kompiliert wird.
Seth Ladd

2
Ich verstehe nicht wirklich, warum dies geschlossen wurde. Es erfordert Fakten (Marktanteil / Nutzung), Referenzen (Online-Beispiele usw.), den Status der Sprache (technische Vorschau, wie in den Antworten angegeben), Funktionsimplementierungen (Fakten / Referenzen / spezifisches Fachwissen). Der Beitrag enthält sogar einige Informationen, die denen ähneln, die er erwartet, die klar und prägnant sind
Mihalis Bagos

Antworten:


27

Die kurze Antwort auf "Wie ist der Zustand von Dart?" ist: es ist in der Technologie-Vorschau. Das ist eine besondere Art zu sagen: "Wir haben frühzeitig gestartet, damit wir alles als Open Source anbieten und offen arbeiten können." "Technologie-Vorschau" bedeutet auch, "wir sind noch nicht einmal in Alpha, wir haben noch viel zu tun, aber es gibt genug für Sie, um damit zu spielen und Feedback zu geben."

Die Internet-Zeit funktioniert möglicherweise für Nachrichten oder Konsumgüteriterationen, aber wahrscheinlich nicht für etwas, das so ehrgeizig und umfassend ist wie die Dart-Bemühungen. Denken Sie daran, Dart ist mehr als nur eine Sprache. Es ist auch eine Reihe von Bibliotheken, eine bessere DOM-Oberfläche, eine virtuelle Maschine, ein Editor und die Integration mit Chrome. Das Team arbeitet sehr hart an vielen parallelen Themen, aber ich persönlich gehe davon aus, dass es sechs Monate dauern wird, bis wir die meisten Teile fertig haben.

Es ist nicht wahr, dass Dart nur in Chrome funktioniert. Dart wird in JavaScript kompiliert und zielt auf moderne Browser ab. Sicher, Chrome wird das erste Programm sein, das native Dart-Unterstützung bietet. Es ist jedoch eine wesentliche Einschränkung und Funktion des Projekts, sicherzustellen, dass Dart mit performantem und effektivem JavaScript kompiliert wird.

Das große Ganze ist, dass Dart eine Entwicklungsumgebung für moderne Web-Apps sein wird, die "Batterien einschließt". Darts Hauptziel ist es, sicherzustellen, dass das Web eine produktive und unterhaltsame Plattform für die Entwicklung und Bereitstellung von Apps bleibt. Dies bedeutet, dass viele Elemente zusammenpassen müssen: Sprache, Bibliotheken, Editoren, virtuelle Maschinen und Browserintegration. Alles in allem glauben wir, dass Dart eine überzeugende Option für moderne Web-App-Entwickler sein wird.

Das große große BIG-Bild ist, dass wir App-Entwickler ins Web bringen und Web-Entwickler komplexere Web-Apps schreiben sollen. Wenn sie Dart benutzen, ist das großartig. Aber am Ende des Tages spielt die Sprache keine Rolle. Das einzige, was zählt, ist die Tatsache, dass komplexe, clientseitige, High-Fidelity-, niedrige Latenz und schöne, moderne Web-Apps erstellt werden.

Die Sprache befindet sich im Entwicklungsstadium. Wir sehen ungefähr einmal im Monat neue Versionen dieser Spezifikation. Hauptmerkmale fehlen, wie z. B. Reflexion, aber wir iterieren weiter. Wir haben zum Beispiel die Unterstützung von map () zu Collection hinzugefügt. Gilad Bracha, ein Typ, der seine Sprachen kennt (NewSpeak erstellt und an der Java Lang Spec gearbeitet hat) und Josh Bloch, ein Typ, der seine Bibliotheken kennt (Effective Java geschrieben und an den Java Collection-Bibliotheken gearbeitet hat), arbeiten an der Sprache und Bibliotheken, zusammen mit dem größeren Team.

Ist es schwer, Leute zu verallgemeinern, die Dart hoch schätzen, und es ist für Sie wahrscheinlich nicht so wichtig? Sie sollten Ihre eigenen Schlussfolgerungen ziehen, nachdem Sie mit Dart gespielt haben. Ich habe die Erfahrung gemacht, dass App-Entwickler von anderen Plattformen wie Java, C # oder Flex Dart attraktiv und vertraut finden. Meine Erfahrung mit JavaScript-Entwicklern ist geteilt. Wenn dieser JavaScript-Entwickler Apps auch auf anderen Plattformen erstellt hat, sind sie in Bezug auf Dart (oder zumindest die Lösung, die er anbieten möchte) vorsichtig optimistisch. Wenn dieser JavaScript-Entwickler mit JavaScript aufgewachsen ist und nur JavaScript programmiert hat, gibt es mehr Bedenken. Dies kann ein grundlegendes Problem in Bezug auf die Sprache sein, oder es kann sein, dass Sie zögern, eine Komfortzone zu verlassen, oder dass Sie mit JavaScript einfach nicht auf Randfälle stoßen. Dies ist nur eine Verallgemeinerung, aber ich '

Was den Marktanteil betrifft, ist es extrem früh im Spiel. Es ist wahrscheinlich nicht die richtige Frage, da Dart nicht einmal versendet. Eine interessantere Frage wäre: "Wie hoch ist der Marktanteil von Apps im Web?" und dann finde heraus, wie wir das angehen können.

Für eine Web-App-Präsentation baute das Dart-Team Swarm, einen cleveren Newsreader. Leider haben wir es momentan nur im Quellcode: http://www.dartlang.org/samples/index.html

Für einige "Killer" -Funktionen würde ich sagen, dass es ein paar ziemlich interessante gibt:

  • Optionale Typen sind schlau, sie fügen Anmerkungen und Dokumentationen für Mensch und Maschine hinzu.
  • Isolate sind eine großartige Möglichkeit, auf sichere Weise Parallelität zu erreichen.
  • Bibliotheken (Modularität) werden dringend für den Webstack benötigt, und Dart verfügt über Bibliotheken und Klassen.
  • Schnappschüsse ermöglichen einen extrem schnellen Start
  • Gebündelte Bibliotheken (wie Sammlungen, Stoppuhr usw.) vereinheitlichen die Codebasen und verkleinern den versandfähigen Code
  • Schöne neue DOM-Oberfläche, die das Arbeiten mit DOM viel angenehmer macht. Es fühlt sich an wie einheimischer Dart-Code.

Ich hoffe ich habe deine Fragen beantwortet. Ich denke, die einzige Frage, die zählt, ist: "Hilft mir meine Sprache, komplexe, moderne Web-Apps mit hoher Wiedergabetreue und geringer Latenz zu erstellen?" Der Endzustand all dessen besteht einfach darin, mehr App-Entwicklern dabei zu helfen, erfolgreichere Apps für das moderne Web bereitzustellen.


bin zu diesem Thread gekommen, als du dein Video angesehen hast Introduction to Dart. Bereit für ein paar praktische Übungen mit Dart. :)
SachinGutte

8

Das Programmiersprachenalter kann nicht in "Internetjahren" gemessen werden. Tatsächlich kann man in Internetjahren keine tatsächliche Technologie messen. Alles, was man in Internetjahren wirklich messen kann, sind Hypes, aber Hypes spiegeln nicht die Realität wider.

Dart ist seit 3 ​​Monaten öffentlich. Vergleichen Sie das mit den "frischen" und "heißen" Technologien auf dem Gebiet, wie CoffeeScript oder Node.js, die seit 2 Jahren bzw. fast 3 Jahren öffentlich sind. Es ist auch erwähnenswert, dass beide im Vergleich zu Dart relativ kleine Schritte sind. Grundsätzlich bedeutete CoffeeScript, einen JavaScript-Generator in einen Ruby-basierten Parser einzubinden, und Node.js, nicht blockierende E / A an Google V8 zu binden.

Dart ist ein Versuch, die Front-End-Webprogrammierung auf allen Ebenen neu zu gestalten, z. B. in Bezug auf Syntax, Sprachfunktionen, Laufzeitumgebung und APIs. Der Vergleich von Dart mit CoffeeScript ist beispielsweise der Vergleich eines Prototyps eines mit Solarenergie betriebenen, selbstgesteuerten Privatflugzeugs mit einem Shelby GT von 1968. Sicher, ersteres hat weitaus mehr Potenzial, aber in es zu investieren, geschweige denn es zu besteigen, erfordert viel Kühnheit. Letzteres hat viele bekannte Mängel, aber sie sind bekannt, was das Ganze vorhersehbar und zuverlässig macht.

Das ist natürlich nur Spekulation, aber ich denke, Dart ist eine Sackgasse, die irgendwann gerettet wird, um JavaScript oder andere Lösungen voranzutreiben. Wenn Sie eine dynamische Sprache wünschen, halten CoffeeScript und Parenscript bereits, was Dart verspricht. Wenn Sie eher eine statisch typisierte Sprache bevorzugen, werden haXe und Opa den Trick machen. Alle vier haben einen Vorsprung auf Dart. Und alle sind so konzipiert, dass sie standardmäßig mit JavaScript kompiliert werden und nicht nur als Fallback.


3
Ich denke , während Dart ist neu als eine Sprache, ich habe nichts besonders gesehen innovativ darin. Soweit ich das beurteilen kann, besteht es hauptsächlich aus Funktionen älterer Sprachen. Es ist also wirklich nicht so sehr wie ein "Prototyp eines solarenergiebetriebenen, selbstgesteuerten Privatflugzeugs".
Tikhon Jelvis

@ back2dos +1 "In" Internetjahren "kann man das Alter der Programmiersprache nicht messen. In Internetjahren kann man tatsächlich keine Technologie messen." Dies eröffnete mir neue Einsichten zum Nachdenken. Warum kann und wie kann Technologie in Vor- und Nach-Internet-Epochen gemessen werden?
Ubermensch

@TikhonJelvis: Beim Vergleich ging es eher um die Reife. Solarenergie, Autopiloting und Luftfahrt existieren alle. Das Fahrzeug, das ich beschrieben habe, ist also ähnlich wie Dart "nur" eine Neukombination bestehender Ideen. Die Herausforderung des Engineerings besteht nicht darin, neu zu kombinieren, sondern es zum Fliegen zu bringen;)
back2dos

Der Vergleich von Dart mit anderen Sprachen ist von dieser Diskussion ausgeschlossen, und soweit ich es mir vorstellen kann, handelt es sich bei jeder Diskussion sowieso um verschiedene Dinge. Dart ist mehr als ein Präprozessor und auf keinen Fall serverseitig ausgerichtet. Ich stimme der Spekulation über die Zukunft von Dart allerdings zu, und das war eines der Dinge, auf die ich mich gefreut habe, um beantwortet zu werden
Mihalis Bagos,

@MihalisBagos: Nun, da Dart zu JS kompilieren können, können Sie es auf Node.js laufen bereits, so dass es kann auf der Serverseite verwendet werden. Es ist auch schwierig, die Zeit sinnvoll zu messen. Um zu verstehen, wie weit Dart in welcher Zeit gehen kann, ist ein Vergleich mit einer bestimmten Sprache in einem weiteren Stadium mit einer nachvollziehbaren Anzahl von Funktionen so gut wie der beste Referenzrahmen, den Sie bekommen können.
back2dos

5

Dart ist noch in der technischen Vorschau. Momentan hat die Sprachspezifikation die Version 0.0.6, eine 0.0.7 wird diese Woche irgendwo erwartet. Es ist alles andere als "vollständig". Das Repository enthält mehrere Beispiele: http://www.dartlang.org/samples/index.html

Hier ist eine Ansicht darüber, was in Bezug auf die Syntax besser ist als in JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Haftungsausschluss: Dies ist mein Beitrag . Ich muss hier sagen, ich mag JavaScript, aber an einigen Stellen hat es Macken, die ich nicht sehr mag.

Es gibt auch eine wachsende Community: http://www.dartosphere.org

Einige Leute haben es geschafft, Box2D nach Dart zu portieren, ein anderer Typ, der mit CouchDB verbunden ist. Es gibt sowieso nichts, was Sie in der Produktion verwenden sollten.

Vor einiger Zeit hat Josh Blochua sich dem Team angeschlossen, um an einem Refactoring der API zu arbeiten. Sie können einige Änderungen auch in der Core-API erwarten.

Browser-Unterstützung: Sie können Dart in JavaScript umwandeln, vorzugsweise mit Frog (nicht DartC, es wird in riesige Javascript-Dateien übersetzt). Dartium ist einer der Browser, die natives Dart unterstützen, ein umstrittener Webkit-Zweig ist auch irgendwo.

Meine persönliche Erwartung ist es, Mitte nächsten Jahres etwas konkreter zu werden. Meiner Erfahrung nach tun Google Devs eine Menge, um die Sprache richtig und gut zu machen, und leihen nicht nur Java, sondern auch Erlang und JavaScript aus.

Hier ist ein Beispiel für ein Spiel, das mit JavaScript portiert wurde: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Man kann damit rechnen, dass Dart bei Android ankommt, vielleicht sogar als "Hauptsprache". Die Leute sagen, es wird zu AppEngine kommen.

Ich persönlich finde Dart sehr elegant und schon ziemlich nett. Außerdem denke ich, dass es einen Marktanteil geben wird, wenn es fertig ist.

Viele Ihrer Fragen werden in dieser FAQ beantwortet: http://www.dartlang.org/support/faq.html#compare-to-coffeescript


Vielen Dank für die praxisorientierte Antwort, sehr interessante Links!
Mihalis Bagos

0

Dart ist schon seit Ewigkeiten unterwegs (in Internetjahren)

Es wird nicht einmal ausgiebig genutzt und ist noch nicht ausgereift. Produktionsbereite Technologien gibt es seit über 10-15 Jahren ... für Dart kann man nicht einmal sagen, dass es ein Pre-Alpha ist. Neue Technologien sehen auf dem Papier immer gut aus, wenn niemand sie verwendet.

es hat nicht viel hype bekommen

Ich denke das Gegenteil. Es ist eine Schande, dass eine so schlechte, rückständige Sprache so positive Kritiken bekommen hat. Es geht zurück vom wunderschönen Ecma / Java Script OOP mit parasitärer Vererbung, Schließungen und Rückrufen zu einigen hölzernen, jahrzehntelangen OOPs, die aus Java mit allen schrecklichen Programmierpraktiken stammen, die Java mit sich bringt.

Einige Feature-Implementierungen, die Sie dazu bringen, "Ich muss es verwenden"?

Keiner. Wenn Sie Java kennen und nicht wissen, wie man Ecma / JavaScript richtig lernt, ist Dart wahrscheinlich das einzige, was für Sie funktioniert.

Sie wissen, wie Google funktioniert. Sie benutzen Java sehr oft, deshalb haben sie wahrscheinlich eine so schreckliche Sprache produziert ... sie sind nur daran gewöhnt.

Außerdem fragmentiert es das Web weiter und ich kann nur hoffen, dass Mozilla und Opera dies nie implementieren (weil MS mit Sicherheit keine Unterstützung für eine Google Java-ähnliche Sprache hinzufügen wird). Abgesehen davon, dass das gesamte Konzept DATED ist, sollten wir Sprachen wie C ++ oder Java zumindest beim Codieren von Benutzeroberflächen loswerden, da diese sehr ineffektiv sind. Es ist wie das Ersetzen von C ++ durch Assembler, weil Programmierer Ende 50 sich weigern, neue Dinge zu lernen.


2
Vielleicht möchten Sie Ihre Sprachverzerrungen ein wenig abschwächen. Ihr erster Absatz macht eine gute Zusammenfassung und Sie erhalten eine schöne Beobachtung, aber diese verlieren sich in all den "schrecklichen".
Patrick Hughes

+1 beim abschwächen ist c ++ für bestimmte anwendungen noch sehr lebendig (wie auch der Assembler). Es ist vielleicht nicht das beste Werkzeug für jeden Job, aber unter vielen Umständen ist es fantastisch. Assembler wird zum Beispiel in Game Engines verwendet, glaube ich.
Paul Hiemstra

Ich habe nicht gesagt, dass Java oder C ++ schlecht sind ... beide sind schlecht für Benutzeroberflächen, mit denen JS (hauptsächlich) programmiert. Beide sind in anderen Bereichen gut. Dart ist nur eine naive Herangehensweise von Leuten, die nur in Java programmieren, also denken sie wahrscheinlich, dass Java für alles gut ist. Außerdem habe ich mit MFC und Java an Benutzeroberflächen gearbeitet, also denke ich, dass ich berechtigt bin, dies zu sagen :) Es ist so, als ob Assembler weiter fortgeschritten ist als C, weil ASM alles ist, was Sie wissen :)
Slawek

Ich habe mit Java und JavaScript gearbeitet und ich kann sagen, dass Ihr Beitrag schrecklich und naiv ist. Programmiersprachen sind keine Religion und Dart hat einen ziemlich guten Ansatz. Ich denke nicht, dass wir Sprachen wie Java loswerden können oder sollten. Dies ist nur Hacker-Rede ohne Begründung.
Christian

Argumentation? In JS können Sie dasselbe tun wie in Java ... nur ein paar Mal schneller + der Code ist viel einfacher zu verwalten und zu ändern, wenn wir über Benutzeroberflächen sprechen. Zeit = Geld. Es war schon schlimm genug, als wir VBScript und ECma in den Browsern hatten ... warum zurück in die 90er Jahre? JS ist eine spezifische Sprache für einen ganz bestimmten Fall. Warum sollte man sie durch etwas Allgemeines ersetzen?
Slawek,

0

Dart ist ein fehlerhaftes Konzept, das in die Fußstapfen von Javascript tritt. Google sollte zusammenarbeiten, um eine Standardlaufzeit für Webbrowser zu erstellen (ähnlich wie bei HTML 6). Ähnlich wie Java-Byte-Code oder Microsoft IL.

Wir sollten uns nicht auf bestimmte Sprachen beschränken, sondern auf Laufzeiten. Der "Browser ist ein Betriebssystem". Richtig? WTF google? Folge deiner eigenen Vision !!!


2
Java-Bytecode ist eine bestimmte Sprache. Wie ist CIL.
Jörg W Mittag
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.