4 ms·
disclaimer: ex-Googler, on-and-off developing in Dart in the past 5 years (mostly on). I had a choice last year where I could have chosen any stack for a new i
by isoos 9y ago
disclaimer: ex-Googler, on-and-off developing in Dart in the past 5 years (mostly on).
I had a choice last year where I could have chosen any stack for a new independent product. I've done an exhaustive research, did everything to detox myself from the Google cool-aid, got myself up-to-date with other languages and platforms, did my benchmarking and comparison using real code for the product I was to develop. In the end I've selected Dart for several reasons:
I can start coding using only a few types, and as the code gets its final shape, strengthen it with type annotations and turn on strong mode. This is an interesting productivity boost, because I can draft a quick script if needed, and when it becomes more complex, the toolchain is there to refactor and make more structure around it. People migrating from JS to TypeScript advocate the same process, only Dart is much better in both refactoring, and long-term safety (see the bad parts of JS).
I like the Dart VM. It is not as robust and fast as the Java VM, but close enough, and it is much faster than V8 (Node.js), Python or Ruby. Of course your results may vary on your benchmark, but for my workload it was a perfect match. One benefit compared to the JVM was that I didn't need to specify the max heap memory in DartVM, the program scaled up using 12G easily and almost effortlessly in a single isolate (which is a fine plus if you have several server processes, and need this boost only for a couple of minutes per day). Haven't tried larger heap sizes, but for a single-isolate memory use this was OK for me.
Readability is important. I've several examples where people were able to get quickly productive using Dart without former experience in it. I've applied for jobs (and got offers) using Dart as the interview language, and even though the companies were not using it, the interviewers were always able to get what I'm up to. A friend's company will soon train their HRs/recruiters in Dart, because they want to shorten the hiring process.
I could go on, but in short: it is a language and platform which, at least for me, combines the benefits of Java, Erlang, Python and JavaScript, while keeping it sane and useful.
I think you should evaluate any language and platform for your needs, and rely less on internet popularity scores.
- veli_joza 9y ago> I think you should evaluate any language and platform for your needs, and rely less on internet popularity scores. A solid advice, but not very practical in this age when there's too many language-framework combinations to take them all for a spin. We just have to rely on other people's opinions and surveys. Your summary of Dart strengths is valuable in that sense.