I don't know if this will work or even compile, but I feel like I'm pretty close.
long main () {
char output;
unsigned char shift;
long temp;
if (i < 152) {
shift = (i & 1) * 7;
temp = b[i >> 1] >> shift;
i++;
output = (char)(64 & temp);
output += (char)((n >> (temp & 63)) & main());
printf("%c", output);
}
return 63;
}
I first learned about Java in the late 90s and it sounded fantastic. "Write once, run anywhere!" Great!
After I got past "Hello world!" and other simple text output tutorials, things took a turn for the worse. It seemed like if you wanted to do just about anything beyond producing text output with compile-time data (e.g. graphics, sound, file access), you needed to figure out what platform and which edition/version of Java your program was being run on, so you could import the right libraries and call the right functions with the right parameters. I guess that technically this was still "write once, run anywhere".
After that, I learned just enough Java to squeak past a university project that required it, then promptly forgot all of it.
I feel like Sun was trying to hit multiple moving targets at the same time, and failing to land a solid hit on any of them. They were laser-focused on portable binaries, but without standardized storage or multimedia APIs at a time when even low-powered devices were starting to come with those capabilities. I presume that things are better now, but I've never been tempted to have another look. Even just trying to get my machines set up to run other people's Java programs has been enough to keep me away.