Yeah I have no idea how someone who has used all these languages can come up with a conclusion like Dart is “uglier”. I really want to know what exactly they think is ugly about it!
They have written their own UI framework. Probably the reason they are biased against other frameworks
Mostly its the core syntax, it's terribly noisy. Also parts of the implementation itself. While I cannot enumerate the taste, I can give you some examples.
For example:
- Class constructors cannot be in definition headers, i.e. class Something(Int a, Int b)
- The whole final and const/static const mess
- required is annoying and really "slapped on"
- shorthand syntax is => instead of =, personal pet peeve
- positional, named and optional parameters segregation makes things noisy
- concurrency, in which an event loop sounds like a great idea but ends up causing pain with multi-threading and background work so you have to spawn diff isolates
- the whole `await fn()` vs `fn()` validity issue, where you can miss the await keyword and it still compiles is such a slap in the face. think now they solved it, but you could also have returns from non-return functions and vice-versa.
- `dynamic` and generics in the same language have caused many bad designs
- extension types also feel hacked on
- type inference is annoying and highly contextual vs out of the box
- Worst sin: DateTime.now() returns different things based on the platform its running on, making it highly unreliable for something so important