"I keep getting asked why I'm programming for a Sega Genesis system in Java, the reason is I'm hoping someone from Sega or Sun Microsystems finds this page and offers me a job."
"Posted: November 17, 2015"
Oh man... I think he's been trapped in a hole coding for a very long time... Should I tell him or should you?
Java fell into a disrespect among much of the younger crowd to a considerable degree - in contrast to the almost universal excitement about it some 20 years ago.
But I still find it an amazing, very well-engineered, extremely versatile platform that works on large machines and tiny microcontrollers alike and is easy to extend to new devices!
You find Java well engineered or you find the JVM well engineered? Java may go down in history for the most destructively designed programming language ever created. The entire standard library and methodology is to create every little piece of data on the heap, then use extremely deep inheritance as a substitute for the ability to write generic software pieces.
Not only is the "Object Oriented" way of doing things arguably a blight on software design, both allocation and chasing of virtual pointers are devastating to modern performance. Then to combat this, the JVM is an engineering marvel that has matured over 20 years.
> Not only is the "Object Oriented" way of doing things arguably a blight on software design, both allocation and chasing of virtual pointers are devastating to modern performance.
Um, this is not unique to Java, you know. Even C++ does this.
well the jvm is actually making the whole allocations a little bit better with upcoming vm's.
and that's exactly the problem it just takes too long for a new java release.
I'm part of that younger crowd, and it's probably because they associate it with a) their first CS class b) 90s Java applets on the web while growing up and c) Oracle.
I love Java, and I've learned to let go of (a) and (b).
"Java" is an overloaded term. The virtual machine is pretty good. Implementations have seen a huge amount of attention over the decades, and it shows. The design seems to have stood the test of time pretty well.
The language is bad. It seems to have been designed with the primary goal of ensuring that really bad programmers can still get something done and not be too destructive about it.
I think another part of it is that people were really excited about the "write once, run anywhere" promise that Java held. That promise didn't really work out, and to the extent that it did, lots of other languages now offer it too.
From working in 6502 asm in the 80s on a c64 I must say:
Most astonishing.