He is not trying to learn Ada.
He is not trying to learn Ada.
I am trying to understand Ada better. I draw some comparisons to Rust because that’s one of the reasons why I’m reading about it in the first place: people ask questions comparing the two and I have no idea of the answers.
I spent much more than five minutes here, even though the writing is short; the learning website has a lot of stuff! As I said I’m the intro, this is mostly just a log of thoughts. But it was a good solid half-day of investigation. I’ll be doing more of it in the future, too.
And, since you're here, you probably have a typo: “GNATT” in the paragraph about threads should be “GNAT”.
Steve if you're around: there is an error I think in your post, you write
> Ranged integers are something people always say Rust is better at than Ada
And I think you meant the opposite ;)
Don't get me wrong - I'm not claiming the reference manual is a good learning source, for that I would recommend Barnes's book, but that it's an example of a language specification. Having precise specs is a minimum requirement for a safe language. Rust is too complicated as a C replacement but arguably a good C++ replacement. Unfortunately, it's not well-defined (yet) for writing safe programs. Without spec you cannot even tell compiler bugs from intended behaviour.
And yes, the lack of a spec is a weakness in Rust. We've been working on it for a while, and are gonna push it even harder this year.
> Without spec you cannot even tell compiler bugs from intended behaviour.
So this is true, but it's also a bit more subtle than that. For example, "there should be no undefined behavior in safe Rust" is a design principle that, while we don't have a spec, can say if something is a bug or not. (And we do have a few of those bugs.) This is, of course, not as good as a full spec, but guiding principles can really help.
Steve is most likely more familiar with Rust than any other language - which is why I would expect comparisons between it and Ada - but he doesn't go out of his way to insist on Rust's superiority.