Dart

Dart is a new initiative as application programming language by Google. Dart is easy to learn, easy to scale and deployable everywhere. Dart language is a class-based and object-oriented language with C-style syntax.

Benefits to code using Dart

  • “Real” module system
  • Adequate DOM interface
  • Exceptional Standard Libraries
  • Dart pros vs. JavaScript
  • "Real" module system.
  • Rich, optional type system.
  • Exceptional standard library. Includes testing framework! Also nice stuff like a general Iterable interface, Collections, Futures and streams.
  • Constructs for real concurrency and parallelism in the form of Dart Isolates.
  • Fewer linguistic warts, especially relative to JavaScript. Block scope and sensible closure semantics.
  • Features taken for granted in other modern languages. Everything from string interpolation to a handy cascade operator
  • Top-level support for running Dart on the server in the DartVM with great features like a VM imaging system which allows live-state dumps and fast resume.

Decent DOM interface given by dart:html

Package manager (pub) as part of the project, unlike bower, npm and the many hacks which the JS community has come up with.

Dart cons vs. JavaScript

  • Dart has a much smaller ecosystem of libraries, packages and documentation than JS.
  • JavaScript actually does have ways of doing things like server-side JS (node, rhino and friends) and package management (bower, npm, etc.) even if they aren't part of the reference implementations of the language.
  • JS' object literal syntax is pretty amazing and you miss it when it's not there. Dart does have literal array and map syntax but the hash-object equivalence in JS gives you quite a bit of power.
  • Dart has only a single object paradigm, that of classes. With the addition of classes in ES6, writing in JS will give you two interfaces for object orientation in the form of the traditional prototypal system and the new classical system. (Personal note: I happen to prefer prototypes.)

Easy to Learn

The reality is that you probably already know Dart you just don’t realize it. If you already have experience with an object oriented language such as C# or Java as well as some JavaScript than Dart is an exceptionally easy language to learn. Apart from quickly strolling through the “Tour” section on their website, I needed no preparation to just jump right into it and started developing right away. By the first day with Dart i was proficient and by the second day i was fluent, an experience I’ve never had with any programming languages before.