a
iansjack wrote:
I'm interested that, having used Rust, you are now looking at Ada.
Are your reasons the same as mine, or do you have another motivation. (Not that any motivation is needed to try our different programming languages - I'm alway interested in trying something different.)
Kind of. I like Rust, I really do, and I have no plans of abandoning it or anything like that. But the downside is that there are
a lot of crates one can use for OsDev, and though that sounds like a bonus, and something that's nice, it... Really isn't. So much is abstracted away from you in the process that actually learning how it all works is harder because now you have to go trundling through someone's 3rd-party implementation of x or y and that's no fun. But the other problem I suffered was that
I followed this tutorial initially. I admit: the tutorial was (and still is) absolutely fantastic. It teaches you a lot and I was able to get up and running quicker than I otherwise would have, and it provided that "click" that I was desperately looking for. But it was x86_64 only, and my kernel was so full of x86_64-specific stuff that I couldn't see a way of porting it over to any other architecture, and I just felt... Too constrained. I saw Ada a few years ago and poked at it but back then I couldn't figure it out, but I picked it back up recently and its finally clicked with me, and all I've been looking for right now is something I can actually create in it that will allow me to actually work on mastering it. And I really, really think that Ada is a beautiful language, and its saddened me that every time Ada gets an opportunity to shine, something always comes a long and snatches it away. To be truthful, that's sparked some resentment in the Ada community; people over there look very... Uncharitably, shall we say... on languages like Rust, for effectively reinventing what Ada pretty much already gives you, and so I've fartially felt this... Very strong nudge, so to speak, for doing what I can and trying to push Ada back into the spotlight, because I really do think that it could be an extremely amazing language if it got more popular and people started using it for things other than high-security/high-integrity systems. The fact that you can use Spark in your ada projects whenever you want, and prove various properties about your code, is something that I think is another point in Ada's favor, which is something Rust still doesn't have. But what really made me like it was the fact that it prides itself on clarity, reliability, and safety -- those three qualities, together, are hard to find in modern languages today. Oh, Rust provides the "safety" part, up to a point, and the fact that you can use "unsafe" to explicitly indicate what code might be potentially safe and unsafe is a pretty nice feature: it means less auditing (theoretically at least). But it doesn't provide the reliability or readability parts, or any of the other things that Ada prides itself on, or if it does, it doesn't to the degree that Ada does.
But what finally tipped me in Ada's favor -- and its something that I marvel at every time I read the LRM -- is the annexes. Ada makes it super, super simple to communicate across the FFI boundary, as an example. By contrast, in Rust that's a pain in the @$$. So I think Ada has a lot going for it and me switching was not just for a major learning opportunity, but as a way of mastering Ada and trying to make it better (and maybe more popular) in the process. But the learning is the ultimate goal.