What do you guys think about Dartlang?

29 points by Pharohbot ↗ HN
Dartlang had a rough start, but during its new update during the summer, it opened my eyes, and apparently MANY others as well according to http://www.i-programmer.info/news/98-languages/7857-the-astonishing-rise-of-dart.html it also broke into the top 20 languages of 2014 in this source: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html So what do you guys think of Dart? Im hoping mainly to use it for server-side scripting and rewrite some of my nodejs apps in Dart.

23 comments

[ 5.5 ms ] story [ 55.7 ms ] thread
I use it and love it. I mainly use it for frontend stuff to replace most of the javascript. Writing code in Dart is easy, fun and PREDICTABLE.

It also force me to write frontend code in a more engineered way because that's how it works, which benefits myself down the road for the millions of times I revisit and update the code.

My only problem for Dart is that its doc is not complete and dart:js is lacking comprehensive example for complex library.

But all in all I enjoy Dart a lot for my frontend development.

I've looked at it a while ago and it seems a bit fussy. I've really embraced Coffeescript however.
Nice, nice, Im a 15 year old web designer that started working on node 2 weeks ago, but then I was introduced to Dart and it really intrigued me. I have basic knowledge of JS and Im taking an AP Java class in school, so its a win/win for me xP
I like it,so great!from os-store
I like it,so great!from os-store
I evaluated Node, intrigued by the idea of event-driven, non-blocking client and server side code written in one language, but I found it to be a wild ecosystem with dozens of frameworks and not enough support and guidance for them.

I found Dart with its promise to bring some structure and sanity to that approach, including building a language from the ground up to do away with JS's quirks, and it has delivered. I built http://woven.co with Dart and Polymer.

The biggest pain is when you'd like to use a JS lib that isn't wrapped for Dart yet. They're hard at work to make it much easier to interoperate. They're a kick ass team, great docs, first class support in WebStorm, and its future seems bright. There are issues with Polymer like SEO that are inherent in any SPA really, but there are experiments with React-like Virtual DOM diffing and others too.

On the server, the dart:io is powerful and Shelf looks like an awesome set of abstractions for http servers and more that I hope to play with soon.

Dart is treated with heavy skepticism I think often unduly, but judge it for yourself and I think you might be pleasantly surprised.

Would you like to see it replace JS? I think many would argue something should before we train an entire generation in the idiosyncrasies of JS.
I would love to see this happen; but I'm just not convinced it will. I just don't see MS/FF ever choosing to build/maintain a Dart VM for their browsers (even though I think it would be a massive step forward for web dev).

(Google should've spec'd a generic VM together with MS+Mozilla and built Dart on top of it; but that ship has sailed!)

I don't think anyone's banking on Dart unseating JS, and it doesn't need to. It compiles to JS to work across modern web browsers while smoothing a fair deal for you in the way of optimizations and cross-browser issues. But that's saying nothing of the real reason folks choose Dart, or JS or any transcompiler or framework for that matter: the ways in which it may benefit you and your projects, relative to your other choices.

In Dart's case relative to JS, I think the language is more sane, debugging easier, the core libraries really powerful, the tooling more uniform, and the ecosystem more organized. I like the idea of one language on client and server, and yet the way it's done in JS-land with Node feels wilder and less approachable than I liked when I researched it some years back. That's just me, and admittedly I don't have all that much experience in the world of JS before I dove into Dart.

There are some tradeoffs of course, the biggest being that you sort of block yourself off from a world of JS libraries and even community to some extent. There's dart:js interop to wrap any JS library, and work being done to make that even easier with js:interop, but I think there'll always be some disconnect. Still, it's about costs versus benefits, and there are many benefits that I think ultimately outweigh the costs.

The point is there are a whole host of reasons to choose Dart, and I think it's foolish for any one of those reasons to be because you think it'll unseat JS. It won't, but there might be merit to it unseating JS in your own workflow.

I am a 20+ year senior architect with a passion for anything that brings productivity to the area of application development and Dart ranks extremely high on the scale of both client and server side web application development. I have 14 years of .NET development experience and came to love C# and all the large eco-system that was developed to support implementation of any web application came to need. Thing was that when I adopted Silverlight I was spoiled with the richness of RIA based applications but as time rolled on it became very clear that JavaScript won the web war and so I researched many years to conclude that Dart has most of what I had and is a great place to camp out for a while, contribute to the every growing developer community and such. As for what it lacks, I'd agree with most other comments so far however I also feel that all concerns will be addressed especially the JS INTEROP concerns. One of my main concerns is that of resultant script size. I think (but I am not 100% sure) that the advent of lazy-loading support for Dart should mitigate some of these concerns along with continued updates from the Dart team. Otherwise, if you have not tried Dart, and you are a skilled Java or .NET developer, then you may want to test drive it as you will pick it up in an evening, and if your anything like me, you will never want to leave it!
I think Dart client side development cycle is unmatched. Develop fast with Dart VM and Dartium Browser and deploy as JavaScript anywhere. Kind of a better GWT.

Language is good. Also they provide a lot of tools. Package manager, nice SDK, Profiler, Debugger, Code Analyzer, Formatter, Tree-Shaker and several editors. VM speed is close to JVM.. Dart is a very good server language as well. they provide nice command line support. You need to give a try and see to decide.

But there are places language and tools has not yet matured and community adaptation is still weak.

I'm developing with Dart full-time since about 1 1/2 years and I'm just glad that I don't have to use JS anymore. JS has still more libs ready to use but the quantity and quality of the packages available for Dart are raising fast. I enjoy that I can use the same language client- and server-side and share a lot of code. Upcoming features will make Dart even more appealing (Appengine support, DartVM in Chrome, async/await, ...) The Dart team is always busy improving the ecosystem :-)
Is DartVM in Chrome confirmed? I keep hearing it will happen, but haven't seen anything official.
I think they are waiting on the integration of the oilpan project in chrome.
I recently heard someone (Gilad?) say that it's still not "a done deal", but they're confident it will be agreed. Can't come soon enough for me; will make convincing others that Dart is here to stay much easier.
One thing that bothers me about Dart is that the Angular.js team decided to go with their own language AtScript, even though they were quite experienced with Dart in AngularDart.

Do they know something about the health of Dart that we don't?

They're planning to use AtScript to transpile to ES6 and Dart by extending the ES6 transpiler called Traceur (source: https://docs.google.com/a/google.com/document/d/11YUzC-1d0V1...). The basic issue for Angular is they'd like to support users of ES5, ES6, and Dart with the same code base. That's currently a bit hard to do with a Dart code base (although a lot of us want to see that get better!)

disclaimer: I've worked on the Dart team and on the Traceur compiler in the past too. So I'm definitely not unbiased on these topics :)

John! And with the Dart team no longer? Where are you now?
AtScript makes decent sense in that it's ES6 plus other things they want to land in ES7. JavaScript is here to stay, they have to support it. Dart is also here to stay. It will be the answer to structured (typed) web apps and its server-side story is great and getting better by the day.
The fun factor in Dart is super high. It's just a joyful experience with great tools.

And no need for a "Dart: the good parts" book. It's all good :-)

We're not using Dart commercially currently; though we are prototyping in it as a candidate for vNext of some very large applications. To me, it seems incredibly promising. Every time I have to go back and write JS in our production apps; I seriously miss the static analysis Dart does; it's so clunky to find trivial errors at runtime in a browser that the editor should've been able to show you!

However; there are some frustrating holes in it though that have made our prototyping tricky; such as:

Serialisation; not even JSON support. Alan Knight is working on a Serialisation library; but even that is frustrating to use (it doesn't support DateTimes at all well for ex), so I'm generating having to generate serialisation code from C#.

No private pub server. If you want to host Dart packages internal to your company locally; you're out of luck. Although the source for pub.dartlang.org is open; it's written to only work on AppEngine; which kinda sucks.

We're also slightly nervous that the Dart VM still isn't in Chrome. I don't know what's taking so long, but this would seriously help convince others that Google is really invested in Dart.

> No private pub server. If you want to host Dart packages internal to your company locally; you're out of luck.

You can store packages on a private git server, see the pubspec.yaml docs here:

https://www.dartlang.org/tools/pub/dependencies.html#git-pac...

It is also possible to run your own private pub server. But currently the only available implementation relies on AppEngine. According to the author it's possible to just implement the fetch protocol using static files served over HTTP. I.e. create some directories and put the json and tar.gz files in the correct places.

https://www.dartlang.org/tools/pub/dependencies.html#hosted-...

https://github.com/dart-lang/pub-dartlang/