Anders Hejlsberg
๐ค SpeakerAppearances Over Time
Podcast Appearances
So anyway, but I mean, generally speaking, I think JavaScript is a, is a nice little language.
It just has some issues, you know, and then, and I think we're very good at teasing them out with our type checker.
Right.
And so, so once you have a checker that can warn you, Hey, you're about to do something stupid here.
Then.
It's not so bad.
The thing that makes it interesting, I think, and unlike pretty much any other programming language is the gradual typing.
This notion that you can have types, but you don't have to have types.
Other languages force you to type everything, right?
Because they in turn use that information to generate machine code, you know, based on what the type is, you know, different instructions for float versus whatever, where in JavaScript,
The types or in TypeScript, the types are there purely for the development experience and the checking.
When the program runs, they're all gone.
Now, of course, there are still types, but they're all dynamically computed.
But that's kind of interesting because that means in the language, we don't necessarily have to prove 100% correctness.
And a lot of language features that we have, we can't 100% prove correctness.
Like in a structural type system with recursive types, there are just cases that you can't analyze because the types are infinitely recurring.
The more you try to relate two types, the deeper you go and you're just staring into the recursive abyss.
You know what I mean?
But you can kind of go, well, we've proven it to four levels.
That's probably good enough.