Hacker News new | ask | show | jobs
by latch 5071 days ago
I feel pretty confident in saying that we aren't going to find a Dart VM in all (or any?) other browser for the foreseeable future.

With that in mind, Dart just feels like CoffeeScript + jQuery's Sizzle + Underscore. I don't see how using jQuery to create a button is any more "routing around the problem" of DOM creation than using Dart's framework, when they are both translated to document.createElement.

I rather have smaller individually pieces for the greater flexibility it provides. Where Dart clearly has the advantage is in tooling...but that's not nearly enough for me.

Which isn't to say Dart is evil, but I don't see how they'll make web development easier when, in practice (no VM), they aren't bringing anything new.

1 comments

I don't think the predicted lack of support for a Dart VM outside of Chrome is a significant factor – a strength of the linked video was that it focused on Dart-delivered-as-JS.

> I don't see how using jQuery to create a button is any more "routing around the problem" of DOM creation than using Dart's framework, when they are both translated to document.createElement.

With Dart, you don't need to send 96k of jQuery over the wire. Better, you have the returned elements as a baked-in data type. I imagine there's a pleasant consistency to being able to append an element to a <ul> with the same API you'd use to manipulate any other list.

With Dart you need to send the Dart framework over the wire. That's my point, you've replaced the flexibility of sending the framework(s) you want/need and haven't gained anything.

Sure, the Dart framework is smaller, but it also does less. If you don't need everything that comes with jQuery, you can swap it out for something smaller, like zepto or TinyDOM - which make Dart look massive.

jQuery, zepto, xyz, abc, ... all give you a consistent way to manipulate DOM objects.

Eventually (maybe already) you wont' have to send the whole Dart framework down the wire, just the parts you use. And because it's compiled some cases will not use any "framework" at all that would need to be downloaded, they will just be compiled into the equivalent JavaScript.

Take the button creation example.

With jQuery you have to use an odd syntax, IMO, and it requires the whole jQuery library to be downloaded:

  var button = $('<button>');
With Dart creating a button follows the same syntax as creating other objects is compiled away:

  var button = new ButtonElement();
which compiles to JS:

  var button = document.createElement('button');
This way you get a nice DOM and in some cases no overhead at all. Other cases might have runtime code that needs to be included like jQuery or Zepto, but without compilation they will always have to include their whole library.