4 ms·
If everything is typed in TypeScript, I see a lot of serious potential for optimization, like using only the memory needed per object exactly like a struct in C
by sbjs 8y ago
If everything is typed in TypeScript, I see a lot of serious potential for optimization, like using only the memory needed per object exactly like a struct in C or C++.
- pcwalton 8y agoTypeScript isn't sound, so you can't rely on the types for optimization. The shape/hidden class optimization that JS engines already have is probably about as good as you can do.
- nwienert 8y agoYou could still infer sound areas such as certain structs and patterns for using them. They could introduce sound mode or patterns for areas as well.
- xiphias 8y agoActually the compiler could use types as hints for the optimization, so it doesn't sound that bad idea.
- hath995 8y agoThe last soundness issue I'm aware of is the bivariant function issue which they resolved in 2.6
- jannes 8y agoYou can still do something like this: let x: number = "some string" as any;
- mschuetz 8y agoI don't get it, I though the whole purpose of typescript is to prevent things like that?
- hath995 8y agoThat's sort of tautological. "Any" and type assertions are designed as the escape hatch of the type system. If you're trying to develop type safe typescript you obviously won't use those. The followup question is for typed code (excluding usage of any or type assertions) does typescript have an unsound type system? Afaik the answer is no.
- jannes 8y agoIn the real world you are forced to use "any" when the type definitions for a third-party library are not perfect. This actually happens a lot with types from DefinitelyTyped that are not maintained by the original author of the library.
- Too 8y agoThat would be the equivalent of static_cast in c++, or casting via (object) in C#. Both of those are considered type safe but can still be abused also.
- sedatk 8y agoThere is WebAssembly for that now.
- mschuetz 8y agoI'm not a fan of WebAssembly. I like js because you can instantly reload and test changes to your code without lengthy build or compile times and I'm hoping for typescript to become standard so that the same applies for typescript. I doubt the same will ever be possible with WebAssembly.
- sbjs 8y agoAnything more complicated than a little jQuery stuff is going to need build tooling anyway, at least Webpack and probably JSLint and Mocha. Since those are already there, adding either Babel or TyepScript isn't all that difficult.
- gameswithgo 8y agowhat is lengthy to you? some languages can compile ~30k lines in 0.5 seconds
- mschuetz 8y agoAnything > 1s Curious, which languages compile that fast to WebAssembly?
- rounce 8y agoJust took .284s to re-compile a Rust (stdweb) app targeting WASM. And well over 2 seconds for Webpack to deal with (just) bundling 6 JS files and the .wasm file.