Again, I’m too lazy to yet again state how horrid is it not to have operator overloading. The brush strokes are: “People can write bad code”. That happens the moment a language has the complexity of a macro assember…so you’ve already failed to nanny them. “I don’t want to look at badly written operators”. Then don’t…why would you want to look a badly written code anyway. “But it’s at work”. Somebody’s not doing their job then…hopefully it isn’t you.
The bottom line is that, yeah operator overloading can be used to make horrid things. The flip side is that without operator overloading any mathematical type which isn’t natively supported by the language will be insured to be horrid. Do the math. Oh yeah and limited operators? Once you get past reals and integers…that tiny set of operator symbols make the feature bordering on useless. Besides most of the “issues” with bad operators in C++ would be a non-issue in java. An IDE would decorate differently and you’re just a click away from implementation.
Oh and: ACCESSORS. If the VM supported accessors where would be much happiness…the rest is just sugar.
Structures is a real biggy for a long list of reasons…to lazy to repeat.
Templates…you really want macros (no not preprocessing macros). To be practical would need a new transport IR…which would be awesome for a long list of reasons…again too lazy to repeat.
manual memory management: you don’t need it if you have structures and arrays of structures.
methods that return more an one thing: structures again.
pointers: Your point (yuck yuck) isn’t clear…why?