Java aspired to be Smalltalk but instead created Simula.
The Java language popularized two fundamental technologies:
Automatic Memory Management.
Virtual Machines.
They also made some questionable design decisions:
All is OOP. This came from Smalltalk
Operator Overloading is Too Hard. This is true
if you have to do your own memory management as we saw in the C++
chapter, but if you have a garbage collector it becomes relatively
easy (see Python).