You have a lot of great points here.
Radoslav Popov

I completely agree with your opinion that class hierarchies are big trouble — however, class inheritance and static types are orthogonal — you can have static types without classes.

For instance, you can write an entire large scale application in TypeScript and never write or extend a class, using only object literals, object composition, and factory functions.

BTW, Java’s over-dependence on class hierarchies is the primary reason I have avoided Java as much as possible for years.

Like what you read? Give Eric Elliott a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.