▲ | munificent 7 months ago | |||||||
> The frustrating thing is that it's so close to the functional features that Rust embraced (mainly that everything is an expression), Dart has had a challenging history. Most of the original designers of the language have moved on to other things. They had a very conservative vision for the language, basically a 50/50 blend of Java/JavaScript. Pretty close to TypeScript but with a much simpler type system and less nice JS interop. That's not really what the world seems to want today, so the current language team is trying to evolve the language into something more modern. But doing that while being sensitive to minimizing user breakage and migration cost is a really hard problem. We've been able to make a lot of progress: sound type system, non-nullable types, pattern matching, etc. But some stuff is a lot harder. I think most of us on the language team would prefer type annotations on the right like "var x: int", but that's a huge migration cost for relatively little value. Likewise, having everything be an expression would be really nice but is also a really difficult change to make. | ||||||||
▲ | IshKebab 7 months ago | parent [-] | |||||||
I was going to say "isn't Munificent still around?" :D I wonder if you could make a "syntax v2" kind of thing, so it's a totally new syntax that you opt into (e.g. by a pragma at the top of files, or globally) that gets converted into the same IR. Probably only worth doing once though to fix all of those things. And as you say, that's a ton of work for marginal benefit. | ||||||||
|