Show HN: My hobby OS that runs Minecraft
196 points
3 days ago
| 11 comments
| astral-os.org
| HN
rf15
15 hours ago
[-]
> due to the mlibc code using the char value from the format string, the values above 127 passed by OpenJDK would be handled as negative integers

It's 2025 and I still don't get why Java needed signed chars and bytes. Why completely disregard the convenience of using them for array access/etc..

reply
pjmlp
3 hours ago
[-]
Easy,

> Gosling: For me as a language designer, which I don't really count myself as these days, what "simple" really ended up meaning was could I expect J. Random Developer to hold the spec in his head. That definition says that, for instance, Java isn't -- and in fact a lot of these languages end up with a lot of corner cases, things that nobody really understands. Quiz any C developer about unsigned, and pretty soon you discover that almost no C developers actually understand what goes on with unsigned, what unsigned arithmetic is. Things like that made C complex. The language part of Java is, I think, pretty simple. The libraries you have to look up.

From http://www.gotw.ca/publications/c_family_interview.htm

Note that Java has unsigned support nowadays, only not as primitive types, although this is considered post Valhala.

For example, https://docs.oracle.com/en/java/javase/25/docs/api/java.base...

reply
toast0
13 hours ago
[-]
Java creators tried to avoid giving developers any sharp edges. Interactions between signed and unsigned integers can be surprising, so they disallowed unsigned integers.

Of course, not having access to unsigned quantities makes interaction with other programs difficult :(

reply
astrange
12 hours ago
[-]
The one that annoys me is that people think implicit type conversions are dangerous for some reason, so they also disallowed `char a = 10; short b = a;` without writing a cast even though this makes no sense.
reply
resonious
8 hours ago
[-]
It feels like "sharp edges" often means "I once had a horrible bug due to accidentally misusing this". But if you cut features based on that definition, you'd soon have an empty programming language.
reply
lukan
3 hours ago
[-]
Java was apparently quite successful, though. So maybe they got the balance right for their goal?
reply
fooker
2 hours ago
[-]
I'd like a 10pples please.
reply
ZebusJesus
2 days ago
[-]
Well done and thanks for sharing, it's great to see people making a hobby OS and it's awesome that it plays Minecraft! How long have you been working on Astral?
reply
phendrenad2
3 days ago
[-]
Love the Motif-style window borders!
reply
zamadatix
15 hours ago
[-]
Indeed! Looks like it uses a port of https://github.com/fvwmorg/fvwm3
reply
urbandw311er
4 hours ago
[-]
Excellent work! And very much in the spirit of the HM ethos.
reply
coolcoder613
15 hours ago
[-]
This is very impressive! When I saw the title, I thought it would be classicube, but no, it's actual minecraft.
reply
jakemanger
3 days ago
[-]
The “Astral from scratch guide“ idea really caught my eye.

Gotta say that would be a pretty cool evolution of DIY electronics kits to OS kits

reply
zamadatix
15 hours ago
[-]
I love hobby OS projects, and it's good to see how many there continue to be posted here. I can never get enough! It looks like this one has some networking support as well.
reply
burnt_toast
14 hours ago
[-]
Congrats! Seeing an old version of MC makes me nostalgic.
reply
charcircuit
15 hours ago
[-]
I would be interested in a benchmark.
reply
WhyOhWhyQ
17 hours ago
[-]
Very inspiring!
reply
kgwxd
16 hours ago
[-]
Better than Windows 11 already. I can't run Bedrock or Java without first signing into the Microsoft Store on "my" PC.
reply
zamadatix
15 hours ago
[-]
Good news, you too can run Minecraft Alpha 1.2.0 single player offline without signing in. That's not what made this impressive :).
reply