What do you guys think about Dartlang?
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 ] threadIt 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 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.
(Google should've spec'd a generic VM together with MS+Mozilla and built Dart on top of it; but that ship has sailed!)
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.
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.
Do they know something about the health of Dart that we don't?
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 :)
And no need for a "Dart: the good parts" book. It's all good :-)
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.
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/
[1] http://quire.io [2] http://simonpai.github.io/2014/09/03/quire-building-with-dar...