"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.
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.
> 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.
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.
32 comments
[ 3.3 ms ] story [ 87.3 ms ] thread"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?
I remember browsing with 16 MB of memory... and it still feels the same, specially now with Chrome hogging the fan, CPU and mouse...
From working in 6502 asm in the 80s on a c64 I must say:
Most astonishing.
Proper Doom on extended C64: https://www.youtube.com/watch?v=7ZzivzuDOls - even then the framerate is horrible.
Doom with heavily simplified graphics and stuff (M.O.O.D. Doom) on a proper C64: https://www.youtube.com/watch?v=YQcK527rYJI
https://en.wikipedia.org/wiki/Halo_2600
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!
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.
Um, this is not unique to Java, you know. Even C++ does this.
Pointer chasing OOP goes back to all languages that got themselves inspired by Smalltalk and SELF.
JVM is a wonderful thing.
However OOP is great. OOP is no bad stuff, take a look at Smalltalk. The problem is Java's way of OOP. And let's not talk about java primitive types!!
I love Java, and I've learned to let go of (a) and (b).
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.
Java is already too advanced for them.