6 ms·
I don't understand why everyone seems to ignore Ada? Granted I am completely new to it, but from what I see it is years ahead of Rust in terms of safety (it can
by dgan 4y ago
I don't understand why everyone seems to ignore Ada? Granted I am completely new to it, but from what I see it is years ahead of Rust in terms of safety (it can prove correctness!! Rust is only heading into that direction).
Yes syntax is verbose, but I dare to believe there must be another blocker than just syntax?
- maeln 4y agoI did some ADA in the past and yes, it is a nice language, but it lacks the modernity and a dynamic community like Rust. ADA did received some nice update to its specification, but, just like C++, it struggle / cannot really fit the latest innovation in programming language that easily. And to be fair, it is fine. ADA is very much a "committee" language (its spec are ISO/IEC) instead of a "community" language (all the spec and rfc of Rust are on github and anyone can easily discuss them). This makes it so that ADA doesn't get the attention, and the rapidity of innovation, that a language like Rust does, but ADA is mostly made for program that will need to be maintained in critical operations for decades with the code being maintainable and compilable far into the future.
- 0rzech 4y ago> I did some ADA in the past and yes, it is a nice language, but it lacks the modernity and a dynamic community like Rust. ADA did received some nice update to its specification, but, just like C++, it struggle / cannot really fit the latest innovation in programming language that easily. I'm still learning both Ada and Rust, so please keep that in mind. Nevertheless, I humbly disagree. The more I learn Ada and other "old" languages the more it looks to me like "modern" ones rediscover things that have been present in other languages for years. The really significant difference I can see for now is that Ada is not focused so strongly on functional programming paradigm and it has no async/await sugar. Rust borrow checker is a strong success of course and was another significant difference, but latest SPARK got borrow checking capabilities too, AFAIK. While Ada's open-source community is smaller, I find it as energetic and devoted to improving the ecosystem as Rust's. I have no idea about closed-source community, but in the past 4 years ArianeGroup [1], Airbus [2] and Nvidia [3] talked about choosing Ada for their high-integrity applications. > And to be fair, it is fine. ADA is very much a "committee" language (its spec are ISO/IEC) instead of a "community" language (all the spec and rfc of Rust are on github and anyone can easily discuss them). You can discuss Ada/SPARK RFCs on Github too. [4] I think I once saw on Ada forum or chat that someone proposing changes to the language was simply invited to talk to people working on the standard, so it doesn't look like the language is developed in isolation or something. > This makes it so that ADA doesn't get the attention, and the rapidity of innovation, that a language like Rust does, but ADA is mostly made for program that will need to be maintained in critical operations for decades with the code being maintainable and compilable far into the future. I think that Ada adopted quiet quickly to changing world with Rust as its inspiration: lower entry barrier toolchain, compelling licensing, library distribution, RFCs, etc. And in terms of language features, in many areas it's not only on par, but ahead of competition. So you're less likely to see lots of changes, but they do happen nevertheless. I'm not saying Ada is perfect, of course. There are parts of it that other languages do better. No shame in that. IMHO, the reason Ada is unknown to many people is a combination of its past, myths surrounding it, and general trend of people to follow trends. ;) But currently I find Ada/SPARK even more compelling option than Rust, even though I like both. [1] https://www.facebook.com/ArianeGroup/posts/2872955946126067 https://www.facebook.com/ArianeGroup/posts/2872955946126067 [2] https://www.manufacturing.net/aerospace/news/21175187/airbus-chooses-gnat-pro-ada-for-development-of-unmanned-aerial-system https://www.manufacturing.net/aerospace/news/21175187/airbus... [3] https://blogs.nvidia.com/blog/2019/02/05/adacore-secure-autonomous-driving/ https://blogs.nvidia.com/blog/2019/02/05/adacore-secure-auto... [4] https://github.com/AdaCore/ada-spark-rfcs https://github.com/AdaCore/ada-spark-rfcs
- Veliladon 4y agoFor me it's the borrow checker and lack of shared mutable states stopping me from doing dumb things. Add on things like cargo build manager and crates and it's like a delicious roast dinner smothered in gravy. I've written in Ada95 back in college and it was great but I'm like a duck in water with Rust.
- 0rzech 4y ago> For me it's the borrow checker and lack of shared mutable states stopping me from doing dumb things. AFAIK, the newest SPARK got borrow checking capability. Also, Ada has excellent design by contract capabilities [1] and constrained subtypes [2]. > Add on things like cargo build manager and crates and it's like a delicious roast dinner smothered in gravy. Ada has now Alire [3] for that. > I've written in Ada95 back in college and it was great but I'm like a duck in water with Rust. Ada is nearing the 2022 standard now. It changed a lot since 95. PS. I have nothing against you liking Rust. Just wanted to clarify few things. [1] https://learn.adacore.com/courses/intro-to-ada/chapters/contracts.html https://learn.adacore.com/courses/intro-to-ada/chapters/cont... [2] https://learn.adacore.com/courses/intro-to-ada/chapters/strongly_typed_language.html#subtypes https://learn.adacore.com/courses/intro-to-ada/chapters/stro... [3] https://alire.ada.dev/ https://alire.ada.dev/
- Veliladon 4y agoOh yeah when I first started coding in Rust and saw its enum type system the first thing that came to my mind was "this is cool but they also need range types like Ada".
- FromTheSteppe 4y agoBecause Ada tooling is bad. Try getting gnat on macOS aarch64 and compile emacs' ada mode extension. You'd never touch anything Ada again.
- dgan 4y agoIt took me less than a week to understand the main problem is tooling and licensing :)