Browse files

Add post: On Dart

  • Loading branch information...
m2w committed Jan 28, 2014
1 parent e250c0d commit d905dae4ef8d17e38c71ac7f90c402f50b5fc18a
Showing with 37 additions and 0 deletions.
  1. +37 −0 _posts/
@@ -0,0 +1,37 @@
+layout: post
+title: On Dart
+tags: [dart]
+[dart][4] recently reached 1.0 and is also heading to ECMA for standardisation. A great time to check out google's javascript replacement.
+At first glance dart is a bit of an ugly duckling; it seems unexciting and the syntax seems old fashioned. But look a little deeper and you will discover the gem that is dart.
+- **dart comes with real dependency and build management.** `pub` provides a comprehensive set of commands to build, publish and handle dependencies of your project(s).
+- **dart is fast.** While benchmarking is no real measure of speed, the available data indicates that dart (and `dart2js`) measure very favorably compared to javascript.
+- **dart is built for the web.** While mainstream browsers with dart vm support are still a thing of the very distant future, `dart2js` allows for efficient compilation to javascript. In the same vein dart ships with very intuitive javascript interoperability.
+- **dart is convenient.** Arguably the most important feature of dart is (optional) typing. It improves maintainability, readability and makes the tooling more powerful. dart comes with scores of other handy features, such as string interpolation, useful syntactic sugar and a nicely rounded standard lib.
+After the short dart tutorial and a look at [polymer][3], I have decided to rewrite [talaria][1] in dart. So far the process has been great fun, polymer is incredibly powerful and writing polymer components in dart is intuitive and straightforward. dart itself is really fun to write and the IDE makes getting started really simple.
+Of course dart still has its fair share of rough edges:
+- In many ways the documentation[[^1]] is as inaccessible as the erlang documentation[[^2]].
+- On OSX the dart IDE has a number of annoying bugs, most notably autocompletion regularly fails to work as expected [[^3]].
+- The ecosystem is still in its infancy, this is exciting because there is a lot of opportunity to become involved, but also means that a number of library-provided functionality as expected from the javascript ecosystem is not yet available or only in very early release.
+From my short experimentation with polymer, I believe that it will play a big part in the future of web development. It just makes sense. dart on the other hand is a non nonsense tool that takes the pain out of javascript - a modern, effective language for (full-stack) web development.
+[^1]: With the obvious exception of the excellent introduction offered by the [dart book][5].
+[^2]: While initially inaccessible, erlang's documentation is among the most complete and comprehensive once you get your feet wet.
+[^3]: Selecting one of the provided completions fails. The popup and the editor in the background both react to keyboard events. This means that by the time you select a completion, your cursor has moved away from its original position, and hitting `enter` adds a new line at some unexpected location instead of finalizing the completion. Double clicking a completion often does nothing at all.

0 comments on commit d905dae

Please sign in to comment.