That's quite a milestone and achievement, well done! Your current Features list reads far beyond hobby level! It certainly puts my own hobby phone OS to shame. I'm still working out touch screen driver, and I only have IBM/437 bitmap fonts so far, which turned out to be far too small for these modern phone screens, for surely it cant be my tired old eyes...
Can I ask how you keep yourself motivated on such a complex, large and difficult project? This week I have been bogged down in I2C support and find myself wondering if I'll ever reach the next level.
Of course hard projects have their own special rewards, seeing that first pixel appear on screen was a magical moment, and felt like real programming again, especially compared to all these huge modern complex multi-layered software stacks.
> 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.
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 :(
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.
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.
The signedness of `char` is implementation-defined, it is signed on x86 but unsigned on ARM. So assigning a plain char to a wider integer type is suspicious, did the programmer expect sign-extension or zero-extension?
Look up James Gosling and get back to us. I'd especially be interested in hearing how your undoubtedly superior experience would result in a more successful language. I'm sure you can vibe code something up.
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?
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.
Can I ask how you keep yourself motivated on such a complex, large and difficult project? This week I have been bogged down in I2C support and find myself wondering if I'll ever reach the next level.
Of course hard projects have their own special rewards, seeing that first pixel appear on screen was a magical moment, and felt like real programming again, especially compared to all these huge modern complex multi-layered software stacks.
reply