| > - CoffeeScript was hugely popular at the time - it was even mandatory at GitHub to make new applications in CS not JS We'd probably really be regretting that choice since CoffeeScript use is dwindling and the programmer ecosystem has generally turned towards static types. > - Typescript was immediately well recieved. JS folk liked optional typing. Dart was an optionally typed language and is actually older than TypeScript. But, the original creators were very focused on getting a native Dart VM in browsers and were willing to sacrifice seamless JS interop to get that. There's good arguments for that since great interop often means adding ugly features to your language in order to play nice with the existing one. Dart was intended to be a bigger leap forward from JS. If the VM wasn't part of the plan, then Dart probably would have hewed much closer to JS and been very similar to TypeScript. That probably would have been good for us then, but it might have been a limitation long-term. TypeScript is a really nice language, but it's got a lot of baggage that it inherits from JS. Dart is, I think, a much nicer language if you don't need to reuse and interop with a big corpus of existing JS code. > - Ruby was popular amongst the web community Is the "was" part of that intentional? I like Ruby a lot, but it's luster seems to have faded some in the past couple of years. I think what all of your points show is that if you pave cowpaths when doing language work, you end up optimizing for what users did several years ago. Languages take a long time to develop, so I think you have to aim for where you think users will be, otherwise you end up irrelevant by the time you launch. |
BecauseJS eventually got better and everyone moved to new versions and Babel. If you'd offered an alternative, maybe they would have moved to that.
> Dart was an optionally typed language and is actually older than TypeScript.
OK.
> Is the "was" part of that intentional?
Yep, a lot of Ruby folk moved to node, now they're in Elixir or Go.
> I think you have to aim for where you think users will be, otherwise you end up irrelevant by the time you launch.
I totally agree, but I think those cowpaths give you a good idea of where the ball is moving, particularly syntactically. And it doesn't seem like Dart paid any attention to that signal at all.