Hacker News new | past | comments | ask | show | jobs | submit login
Dart 1.0 launch is imminent (plus.google.com)
41 points by _r5wf on Nov 12, 2013 | hide | past | favorite | 32 comments



I've been holding out spending any extended amount of time on Dart until 1.0 as the API for it kept changing fairly dramatically since it was first announced (it was first announced on October 10, 2011 at the GOTO conference).

There isn't anything super amazing about this language from a language perspective, but I think you need to look at what Dart really brings to understand why it may be a nice alternative to JS.

* Optional typing. While typing data is completely ignored at runtime, even in the DartVM, it can help a lot for tooling if you are working on a large project. If you don't care about typing, you can just use "var" for everything.

* Batteries Included: IDE, package manager, core libraries. This means you get decent IDE to start coding in. If you don't like Dart's eclipse-based IDE, JetBrains has been maintaining a Dart plugin for their IDE (IntelliJ or Webstorm). The core library includes a lot of useful classes (not to the level of Java, but definitely has a lot of useful default packages). The package manager is nice to ship with the product as well to maintain use of 3rd party libraries.

* Nice development story. Sure, no shipping browser has the DartVM in it, but when you are doing initial development, you can use Dartium (chormium build with the DartVM in it) to do fast, iterative development. When you need to cross-browser test, you deploy to JS and see how things go.

* Speed. If/when the DartVM starts to ship in Chrome, it should help performance of apps that ship as Dart code. Specifically the runtime performance can be better as their DartVM doesn't have to support a lot of legacy syntax/behavior that JS VMs have to worry about. Along with that, the DartVM supports Snapshots. These are basically a heap dump of an application right before main() is run. This allows Dart apps to start up a lot faster on subsequent reloads.


Why not TypeScript?


For me: because my background is mainly Java. While I understand prototype inheritance, I'm not as familiar with the programming style of Javascript. I like being able to create strict class structures and use those. Prototype structure allows for ad-hoc creation of a class. This makes code analysis and tooling a lot more difficult to do properly.

(I do have to deal with the fun that is Perl on a daily basis, but I'm still more a fan of Java style OOP).

Also, my entire professional career has been working on projects that are worked on by 30+ people with a very large code base. When you have large teams using a language that doesn't enforce strict structure, you tend to miss things that could have easily been found at compile-time with proper tooling. This can be accomplished in languages like Javascript, but it requires strict internal controls. Having the language give you that kind of support out of the box is nice to have.


This is a very clear and perfectly acceptable Raison d'être. It is unsurprising that Dart is by and for the same sort of people that gave us and use(d) GWT. I say godbless and godspeed, but it is very much against the grain of the web and personally I find Typescript, EC6, and projects like Angular and possibly Meteor more exciting by far.

To each his own, this does fill a need. The conspiracy aficionados Dart attracts however sure are unfortunate.


TypeScript is a typed superset of JavaScript. It has classes, interfaces, static typing, and object oriented polymorphism. TypeScript is designed to be used on larger projects.


TypeScript also lets anyone ignore all of that and play cowboys and indians with prototypes.


Has Dart gained much traction? It doesn't seem like it's been picked up nearly as much as Go or AngularJS but I may just be looking in the wrong places.


In the strictest terms, I think you're right, but that's primarily just because it hasn't yet reached 1.0. Both Go and Angular have been 1.0+ for quite some time, so it's not really a fair comparison.

While I'm impressed with Go, I personally find Dart far more accessible. Because of my Java background it makes a lot more intuitive sense, and its target user-group is web developers. Go has an immense amount of power for the same group, but unfortunately it's marketed as a system-level language (which I understand it does very well, but isn't of interest to me) and is similarly inaccessible. If Go focused more on presenting itself (particularly in the tutorials/learning aids area) as a language for web development, I think it'd stand an excellent chance of stealing market (and mind) share from Node, and possibly even Dart on the server-side.

It's possible they will pursue this course in the future as it has become quite obvious that their intended user-group (C++/low-level guys) aren't generally that interested in a replacement language.

Like many others who've kept Dart on their radar, I've been waiting to get serious about Dart until it stabilized at 1.0. Now that its 1.0 release is imminent, I'm likely to move into Dart in a big way. JS is fine and works very well for a lot of folks, but Dart is much more appealing (a lot more sane) to me.

I suspect when it's been post-1.0 as long as Go and Angular it'll be as popular. In other words, give it a year or two.


I think a better comparison would be TypeScript which is similar minus the alternate VM part. MS is very good about getting their developer community to use stuff that they officially support so I wouldn't be surprised of TS becomes the norm for the Visual Studio developer crowd.


Interesting. Just to note I wasn't trying to compare Dart to Go and AngularJS past the point that they're maintained/created by Googlers.


You wouldn't have noticed, because you can compile to javascript. It would be in the same basket as Coffeescript but the integrated IDE had all kinds of problems until recently, so that was holding it back.


It is not even 1.0 yet.


Even so if no one is interested to adopt it before, or even play with it (not saying this is true since this is what I was asking), I don't think the version number really matters.


I was hoping Dart 1.0 with this quote: "Hey, we are ready to launch and so is Google Chrome with Dart VM!". But no, not going to happen.


Will be quite interesting when that's ready. The leaked memo is 3 years old now, by the time Dart for Chrome is ready are the original reasons for developing the language even going to be applicable any more?


Flash, Native Client, and now DartVM, too, all being built into Chrome. Is anyone else worried that Chrome may become too bloated, and more of an "OS on top of an OS"?

I'm not as worried about the file size as I am about the future performance of the browser itself, and becoming too complex and with too many bugs because of that.

Chrome for Android has already gotten a lot of flack for being too bloated and slow (as an app) compared to the previous Android browser, which was made for mobile from day one, while Chrome for Android just seemed almost fully ported over, which I think hurt its performance on mobile, and they're still working on fixing that and optimizing it.


This. Will dart ever ship in a browser? It was one of the design goals of the language, sure, but the lack of actual end users is the thing holding Dart back in many areas. Until they make this jump, Dart is just another compile-to-js language among many.


There's a build of Chromium with a pretty-well-integrated dartvm (Dartium) in every dart-sdk download.

I don't know if/when this will show up in mainstream Chrome builds, but technically it's been possible for a while now.


This seems really close to the Chrome Developer Summit (http://developer.chrome.com/devsummit) so I guess it will be launched there!


I was pretty excited for Dart before I found out it could be compiled into javascript. Is this a superficial feature, or is Dart built with this capability in mind? I was really hoping for a replacement entirely.


why does it have any effect on if people should be excited about Dart? You can compile C++ to C but that doesn't mean they're the same language.


Because if all you're looking for is a different way to write javascript then we already have coffeescript for that. A low level programming language that can be compiled into a lower level programming language, like c++ and c. Is not on par with compiling into a scripting language.


C and Java and god knows what else has been compiled to Javascript, so I'm not sure I see what you're point is.


I am skeptical of Dart's utility since it is limited to what Javascript is capable of. At the same time I lament about how tired I am of javascript. What I'm saying isn't difficult to understand at all you're just being dickish.


JavaScript is turing complete. That's not a very meaningful limit.

You seem to be implying Dart's semantics are influenced by JavaScript's because it compiles to it, but that's not the case. It's true for CoffeeScript because CoffeeScript doesn't try to add semantics to JavaScript, it's just a syntactic translation.

Yes, there is an aspect of "works best in Chrome" performance-wise, since Dart VM will be faster than dart2js, but if you were sold on Dart before hearing about dart2js, I don't know why that would make you change your mind. You were hoping for a JavaScript replacement, and Dart is exactly that. Compiling to JavaScript is just something to ease the transition.


The idea is that it would be a native-run replacement that any browser is able to implement, but can run Javascript as a backup for those browsers that do not support it.


It would be useless if it couldn't, since then sites that use Dart instead of JS wouldn't run on most browsers.


I remember when dart was first presented to me at google. I am amazed with the progress in 3 years.


why the f do i need a google+ account to download Dart?



You don't.


I know I don't. I was making a joke referencing a youtube co-founders's only comment in 8 years. It got quite a bit of play on this site recently.

https://news.ycombinator.com/item?id=6695904

I apologize if it was too meta.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: