3 ms·
When you say "going back" - going back to what? I mean, is a language where all array keys are strings really the best platform for higher-kinded types?
by millstone 9y ago
When you say "going back" - going back to what? I mean, is a language where all array keys are strings really the best platform for higher-kinded types?
- gavinpc 9y agoGoing back to untyped JS of course. It's not about having "the best" platform for types—that's just the point. TypeScript's system is incomplete, but it's plenty good enough to dramatically improve the experience. The tooling is now much more powerful. The type contracts also provide a whole new channel of formal communication between team members, not to mention unknown users if you're developing libraries. And it's just way more fun. It's a rewarding challenge to write the most expressive types that you can for the problem you're solving. But you don't have to. If you want to start by writing data types and then fulfilling them, you can. If you want to start by writing code and then typing it, you can. It's brilliantly designed to fit with all kinds of idiomatic JavaScript. The language server provides fast incremental compilation and integrates easily with all major editors. Structural typing means you can define types in-place and conform to interfaces that haven't been written yet. The type system's features are impressive and growing, including generics (with constraints and defaults), tagged unions, mapped types, guard conditions and flow control analysis. It's not "the best" of both worlds, but it is both worlds. What other language is as "gelatinous" as JavaScript [0] but still gives you state-of-the-art type inference when you want it? Hack? [1] I don't know, but it's the same value proposition. [0] https://news.ycombinator.com/item?id=13942674 https://news.ycombinator.com/item?id=13942674 [1] http://hacklang.org/ http://hacklang.org/
- acoard 9y agoPresumably going back to pure JavaScript. Do you have any alternatives to TypeScript, which compile to JS, which fix the array key issue you mention?