Hacker News new | ask | show | jobs
by winkelwagen 1528 days ago
Nice work! I'm actually pretty excited to give this a shot. I like Flutter and Clojure. But writing Dart isn't the most fun thing I can imagine doing. Fun is something I find important in personal projects, but not so much my day to day work. I don't care about the language that pays the bills, the type of projects is way more important there.
2 comments

>But writing Dart isn't the most fun thing I can imagine doing

I really really do not understand this. Dart 2 is one of the most beautiful languages out there. Dart is a composition of the best parts of python (or maybe ruby?), javascript, c# and java.

Have you actually used Dart on a non-trivial project ? It's boilerplate hell and spaghetti code generator nightmare that works around the nonexistent reflection system and closed object model.

If you look at libraries like built_value and built_collection and think that's beautiful when comparing it with Clojure than I'm sorry but you just don't know what you're talking about. Even the authors of these libraries (AFAIK from the Dart team) acknowledge the design decisions they had to make are a result of language limitations.

IMO it's literally the worst of Java and JavaScript - off the top of my head I've had several cases where I would get runtime exceptions about a type mismatch in a ternary expression that wasn't caught by type-checker, JS style. Type system was very weak in general. And the ammount of boilerplate and code generators I had to work with brought me back to Java 6 days.

TypeScript is miles ahead of Dart in terms of expressiveness and productivity, even when built on a pile of shit that is JS.

Flutter is an interesting project (the asynchronous IPC rendering architecture has some major drawbacks when interoperating with native components), but Dart is hands down the reason I wouldn't touch it in the future unless the team spends some serious effort on language ergonomics.

A decent implementation of Clojure + Flutter would change that equation for me considerably and Clojure would be a really good fit for Flutter.

Not only have used in non trivial situations but 1000% would use again and now consider it my default go to language of choice.

As mentioned elsewhere in this thread it clearly DOES do well at exceptional scale given that the majority of Google’s revenue is all run through Dart. It’s also a really critical part of the new operating system they are currently spending stupid amounts of money building.

It’s funny that you mention TypeScript because for me every time I touch it I wish it was Dart for a million different reasons.

Not sure when the last time you used Dart but some of the things you mentioned gave me the impression it was either a while ago or you were doing some very specific stuff with it. I absolutely do not associate Dart with large amounts of boilerplate and especially not compared to a language like Java.

The package you mentioned built_value was just a clone of auto value in Java and similar to how the language made auto value no longer needed the same is happening in Dart this year as they are bringing in the concept of static metaprogramming to remove the limitations that lead to its initial existence.

I actually think of it as having the best language ergonomics of any C style language I’ve ever seen.

Guess we value different things…

what dart should add a way to automatically understand json and turn it into an object. that would be nice for those of us who don't like creating models
"Beautifulness" of programming languages is so subjective it's hard to have a productive conversation around it.

But I'll bite. Most of the languages you've listed are C-like and all of them have mostly similar syntax and function although the ecosystems are very different. Have you ever experienced larger applications written in completely different class of languages? Languages like various lisps, Prolog, ML and so on.

>Most of the languages you've listed are C-like and all of them have mostly similar syntax and function although the ecosystems are very differen

Fair-enough ... Within the category of C-like language, Dart is quite nice.

>Have you ever experienced larger applications written in completely different class of languages?

I have not. I have played around with lisp (scheme), prolog, Haskell, ML ... But for various reasons never used them professionally.

Ruby? Sorry, I don't see the connection.
Interesting... I was under the assumption that most Dart code that pays the bills is actually within a Flutter context these days.
I'd think so to, but hope angular dart takes off as I kind of love it!
AngularDart is sadly basically dead these days at least publicly. It still runs all of Google Ads so it’s very well maintained internally I imagine but it’s officially unsupported publicly at this point which I agree is a shame.

Flutter for web is at a weird stage right now. I think once AOM, WASM-GC and WebGPU are in place and well supported across browsers it will be a very different story but thats probably a year or two away at this point.

The public version of AngularDart (i.e. not the one that Google maintains for its internal teams) is in maintenance mode, which is a shame because it was awesome.