language design is freaking hard: I really wish Dart 1 did not try to be *soooo* simple and familiar, we would not spend years digging us out of the hole initial design has put us in
- focus on optional typing instead of static typing with dynamic escape hatch
- implicit downcasts
- covariant generics
- lack of things like pattern matching / ADTs
- conservative C-like syntax decisions
just to name a few
> conservative C-like syntax decisions
Types-first is one of those things that I struggle to handle these days… I understand that it would have been much harder to justify when Dart was created though… 😔
Hats off for tackling all this work, it seems really challenging!
I can see how Dart ended with types where they are - original designers probably did not care (and did not foresee that it makes some syntax changes harder in the future). It's not like having types on one side or another makes you 10x more productive.
Could they have also guessed that types – especially complicated types – would be a less-common and less-desirable in real world code? So readability in those cases would have been less important to them, and possibly even a cause for syntactic salt?