B2fJ – A Java Virtual Machine to run on the 8-bit home computers of the 80s
mzattera.github.io
mzattera.github.io
From working in 6502 asm in the 80s on a c64 I must say:
Most astonishing.
"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?
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.
I remember browsing with 16 MB of memory... and it still feels the same, specially now with Chrome hogging the fan, CPU and mouse...
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