@KentonVarda@loganb@GrantSlatton Everyone says they'd be okay with the limited version of a feature right up until they hit a single limitation of it, at which point they say it shouldn't have existed in the first place because it added complexity to the language for no reason
@loganb@GrantSlatton@KentonVarda There are things you can trivially check at runtime that can't be represented by the type system, and vice versa, so you'd always have a fairly awkward impedance mismatch
@sclsoftware@typescript That's an odd result; no codebase we've looked so far at has sped up by that little. Do you have a repo we can try building to get a profile with?
@lazytype@drosenwasser@andhaveaniceday We could serialize ASTs, but I'm not sure where that cache would even go (maybe tsbuildinfo?). Validating up-to-dateness implies I/O cost would be unchanged.
Serializing types is pretty gnarly due to the type representation having references to the global symbol table
@tmikov@pawan_k_sharma_ There are JIT-side optimizations that could help here (e.g. identify "common prefix" object layouts and treat them as monomorphic) but they likely wouldn't pay for themselves in any scenario except this specific one
@tmikov@pawan_k_sharma_ But if you're accessing highly polymorphic data (e.g. as you would when reading off an AST node, or one type-kind of many), you go megamorphic, and now property access is on par with a hash table lookup
Several of you asked me why TypeScript chose Go instead of C#, and what that decision implies about Microsoft's commitment to C# and .NET.
See
https://t.co/Dwp6mE9vAu by @ahejlsberg
TL;DR nothing has changed.
#dotnet#csharp