Hacker News new | ask | show | jobs
by rafaelmn 404 days ago
Thing is Dart is a shitty language with tradeoffs made specifically to make Flutter work well.

The terrible meta programming support shows in basic things such as JSON serialization. It's like Java--, I can't think of a reason to use it on backend over Java or Go.

It's not comparable to Javascript - despite it's warts, Javascript is very dynamic and when coupled with typescript that let's you do a lot of powerful things and describe it with the structural type system.

I have not used dart for a few years now but I've used it both when it was DartAngular and Dartium, and in flutter 2/3.

Don't get me wrong - the DX of writing flutter and fast reload is the best I've used in mobile space, but the language itself is terrible and I would not use it in any other scenario.

3 comments

Java-- is an interesting comparison. I used Dart when I was at Google like a decade ago and my impression as I was learning the language was that it was like a scripting language variant of Java. I'd have called it "JavaScript" ;)

I haven't really looked at it since then but it felt like a lighter and easier Java at the time, which I was fine with. (I did a lot of Java in those days.)

It's not my favorite language but Dart feels like a more modern less-verbose Java from another timeline. Features like sound null safety rule and writing Flutter apps feels nice, in no way Dart gets in the way.

That said, I prefer writing backends in Go. Less is more FTW.

EDIT: Also having the ability to compile it to JS, WASM, native for Android, iOS, Windows, Mac & Linux is a plus.

Fair assessment, I am not quite as polarized, but there is a reason i use Go, Deno, and Typescript myself.