Hacker News new | ask | show | jobs
by potatosareok2 3849 days ago
Was erasure necessary to maintain backwards compatibility?

Also what are you doing that you need type information at runtime?

2 comments

Type Erasure is the reason you can't use builtin types as generic arguments. And in a lot of cases it forces you to cast.

And as type erasure happens very, very early in the compilation process, you lose a lot of static type information the compiler could act on or give you warnings.

No it wasn't necessary to maintain backwards compatibility. Type erasure was implemented to allow libraries to upgrade to generics without breaking compatibility with existing applications.
How is that not backwards compatibility?
The one is on a language level, the other on an application/framework level.