5 ms·
Stage 0: JavaScript without types is too hard to maintain. Stage 1: Put types into JavaScript. Stage 2: TypeScript types are not expressive enough. Stage 3:
by munificent 6y ago
Stage 0: JavaScript without types is too hard to maintain.
Stage 1: Put types into JavaScript.
Stage 2: TypeScript types are not expressive enough.
Stage 3: Put JavaScript into types.
I'm looking forward to stage 4 where the expressions inside TypeScript type annotations get so complex and hard to maintain that someone creates TypeTypeScript that lets you put type annotations inside the code inside type annotations.
- trevyn 6y agoSo, generics?
- jaequery 6y agoAnd 10 years later, someone will eventually bring back dynamic typing and every one will go monkeys
- recursive 6y agoIt's still there. `any`.
- baq 6y agobut you don't have to type it now! it's literally a revolution in developer efficiency! ...and all the older folks just keep pointing at lisp and shaking their heads.
- cryptica 6y agoThat is ingenious! That would get me excited about TypeScript! Dynamic typing, no cumbersome transpilation step, no source mapping, 100% backward compatibility with JavaScript. That would be a dream come true. We need a way to go back to JS without hurting the egos of TS community. It will require a massive marketing innovation to achieve this.
- recursive 6y agoAs a member of "the TS community", I hereby authorize you to go back to JS. My ego remains un-damaged.
- cryptica 6y agoThanks but I already took matters into my own hands and quit my last company which forced me to use TypeScript for several years. Can you tell all the companies to stop obsessing about TypeScript and to allow developers to use JavaScript too? That would be awesome because now it's almost impossible to find a JavaScript job. I'd rather get social security and live under a bridge than go back to TS. That would be a more productive use of my time.
- recursive 6y ago> Can you tell all the companies to stop obsessing about TypeScript and to allow developers to use JavaScript too? I don't have that much influence. Most of those companies have come to their own conclusions. At my company, the reason we wouldn't allow that is that it makes the codebase more difficult to approach for a new developer. Knowing the types accepted and returned is helpful for reading unfamiliar code.
- recursive 6y agoYou don't have to type it in typescript either. Just don't turn on the `noImplicitAny` compiler option. Yes, that's right. It's the default. https://www.typescriptlang.org/tsconfig#noImplicitAny https://www.typescriptlang.org/tsconfig#noImplicitAny Shake away, lisp folks. If you can show me how to run lisp in a browser with tolerable performance and debugging, I might understand why you're shaking your heads.
- trevyn 6y agoI think the lints are on by default, though, so it'll compile but you still get warned.
- smt88 6y agoTypeScript has dynamic types. It's a superset of JavaScript, not a separate language.
- cryptica 6y agoThis is the feature of TypeScript that I'm most looking forward to. Default all variable and constant declarations to type 'any' so that TypeScript can look identical to JavaScript. Then we can remove the transpile step from our projects.
- scotty79 6y agoYou can already do exactly that. Just put .js at the end of your filename. Or set `noImplicitAny` to false if you want to retain some type checking.
- cryptica 6y agoI need to use the '.ts' extension because my boss demands it. TypeScript needs a feature to allow me to fool my boss into thinking that I'm using TypeScript while actually using JavaScript.
- amw-zero 6y agoWell, in all seriousness that’s basically what dependent types are.
- quickthrower2 6y agoIt will be like “there is an error compiling your compiler sir”
- MaxBarraclough 6y agoOr even the language. On this point: type systems are hard to get right, we know that the Java type system is unsound, even ignoring its covariant array types. https://news.ycombinator.com/item?id=13050491 https://news.ycombinator.com/item?id=13050491
- tasogare 6y agoAt some point it would be better to just ditch Javascript, which was a mistake anyway, for Typescript or a (non Google controlled) language as default browser language.
- jtdev 6y agoI’m looking forward to the stage where JavaScript is cast on the ash heap.
- peterkelly 6y agoThis is called dependent typing, and is supported by some languages such as Idris (https://www.idris-lang.org/ https://www.idris-lang.org/)
- Reelin 6y ago> Put JavaScript into types. It's not without precedent - Haskell has a Turing complete type system. (There's also Scala, Rust, and C++ templates which are all arguably Turing tarpits.)
- smt88 6y agoTypeScript also has a Turing-complete type system, if I remember correctly.
- WorldMaker 6y agoThe joke in the release notes here asking developers not to publish Fibonacci computations in the type system to npm is not entirely a joke.
- CapsAdmin 6y agoAs a toy project, I'm actually experimenting with this, but instead with Lua. https://github.com/capsadmin/nattlua https://github.com/capsadmin/nattlua You can see some examples in the readme. To me it makes sense that the typesystem is basically lua rather than a mathematical ish looking language. It could prove to be more difficult to work with but I guess I'll find out.