Dart has great client-side support for both mobile (Flutter) and web (compiles to JS, has many differently flavoured web frameworks, AngularDart being the most prominent one). The article talks about it in great detail, check it for yourself.
You can also run server/console programs, which is rather similar to Node. Compared to Node, it has better core infrastructure (isolates, zones), but fewer libraries (basic databases are covered though).
When somebody uploads a Dart package to pub.dartlang.org, the site will run analysis on the package and provides platform classification and quality metrics of the code. It will be running the same thing when its dependencies are updated, which will make sure that you can see an up-to-date analysis all the time.
The language is easy to learn. The core APIs provide a great sense of consistency and good support. For simple programs (which could include a simple SPA with both client and server side) you don't need to import any third-party dependency and get by with the SDK APIs, but there are libraries that help you along the way.
Unfortunately, most Dart developers I know are very busy getting stuff done, so you won't get much social media hype around it.
I'm a huge fan of Dart and very happy to see this. I haven't been able to use it in any non-hobby projects yet, but I love that Dart compiles to JavaScript on the frontend and runs in a VM without any compilation on the server. A good programming language that works on both the server and the browser is like my "holy grail" of programming.
However, there's one thing keeping me from using Dart more professionally, and that's how surprisingly difficult it is to work with JSON out of the box. For a language that compiles to JS I would expect JSON interop to be as easy as "Json.Serialize" and "Json.Deserialize", but instead you need to fiddle with mirrors, add properties and metadata to classes, extend other classes, monkey around with maps and keys, add build steps, etc. This is a big showstopper when you work with web apps, and I'm slightly disappointed to not read any improvements on this front in Dart 2.0, unless I've missed something.
> However, there's one thing keeping me from using Dart more professionally, and that's how surprisingly difficult it is to work with JSON out of the box.
We've talked about this a lot on the team. We definitely know it's a problem but so far we haven't had enough bandwidth to devote anyone to really digging in and addressing it. (It turns out that redesigning a type system and re-implementing the entire front end takes a lot of work...)
Hopefully once things settle down after Dart 2 we can take another look at this.
Another huge Dart fan here. While I love Dart, my complaint is exactly the same as yours, JSON serialization/deserialization. I don't want to think about all the hours I've lost researching various 3rd party packages which didn't meet my needs. In my opinion, it's so important, first-class support should've been done right out of the gate.
Dart as a language is great. My biggest complaint for dart team is that they have abandoned Polymer Dart. For web we have now Angular which is overkill for small to medium non-CRUD apps or dart:html which is like jQuery with types, just a little bit to low level.
There is a Angular Elements project in Angular's 2018 roadmap to make it easy to create web component. This feature likely will be in AngularDart. There is also an early stage project to create light weight Angular to be JQuery replacement and non-CRUD apps.
[+] [-] isoos|8 years ago|reply
You can also run server/console programs, which is rather similar to Node. Compared to Node, it has better core infrastructure (isolates, zones), but fewer libraries (basic databases are covered though).
When somebody uploads a Dart package to pub.dartlang.org, the site will run analysis on the package and provides platform classification and quality metrics of the code. It will be running the same thing when its dependencies are updated, which will make sure that you can see an up-to-date analysis all the time.
The language is easy to learn. The core APIs provide a great sense of consistency and good support. For simple programs (which could include a simple SPA with both client and server side) you don't need to import any third-party dependency and get by with the SDK APIs, but there are libraries that help you along the way.
Unfortunately, most Dart developers I know are very busy getting stuff done, so you won't get much social media hype around it.
[+] [-] nozzlegear|8 years ago|reply
However, there's one thing keeping me from using Dart more professionally, and that's how surprisingly difficult it is to work with JSON out of the box. For a language that compiles to JS I would expect JSON interop to be as easy as "Json.Serialize" and "Json.Deserialize", but instead you need to fiddle with mirrors, add properties and metadata to classes, extend other classes, monkey around with maps and keys, add build steps, etc. This is a big showstopper when you work with web apps, and I'm slightly disappointed to not read any improvements on this front in Dart 2.0, unless I've missed something.
(Shameless plug, I wrote a very brief summary of my thoughts on Dart -- 1.2, not 2.0 -- after trying it for the first time: https://nozzlegear.com/blog/quick-thoughts-on-the-dart-langu... )
[+] [-] munificent|8 years ago|reply
We've talked about this a lot on the team. We definitely know it's a problem but so far we haven't had enough bandwidth to devote anyone to really digging in and addressing it. (It turns out that redesigning a type system and re-implementing the entire front end takes a lot of work...)
Hopefully once things settle down after Dart 2 we can take another look at this.
[+] [-] kevmoo1|8 years ago|reply
This is not the case in Dart for a number of reasons.
Many folks are happy with the solution we have – here's an example: https://github.com/dart-lang/json_serializable/tree/master/e...
We're certainly interested in making this better in the future, but as Bob said (https://news.ycombinator.com/item?id=16441665) we're very focused on finishing Dart 2 first.
[+] [-] markdog12|8 years ago|reply
Edit: There was a repo for ideas to address this: https://github.com/matanlurey/dart_serialize_proposal
No activity for quite a while
[+] [-] jaxondu|8 years ago|reply
[+] [-] kolar|8 years ago|reply
[+] [-] jaxondu|8 years ago|reply
[+] [-] grizzles|8 years ago|reply
[+] [-] jekyu|8 years ago|reply