Ada (programming language)
- Cristiana Dinculescu
- Feb 4, 2021
- 2 min read

What can be better than spending eight weeks in Rome, paid to learn new things?! I had to learn Ada, since it's the de facto standard language for large applications where reliability, safety and security are vital. In general, for cases where a software defect is not just an annoyance, but may have severe consequences.
If you get a kick out of debugging a memory corruption crash at 2 am, then you'll find programming in Ada pretty boring. (Spoiler alert: there's almost no way to screw up with pointers! 🙂) But if your software must be certified against safety and security standards, then Ada is your loyal friend.
In '90s, an Ada compiler license was insanely expensive, over 40k USD. No wonder it was used only by aerospace and defense. Nowadays you can find a free Ada development environment, but is still not popular, although is heavily used for real-time, medical equipment or embedded with low memory constraints and cases where garbage collection is not allowed.
One of Ada's design principles is that readability is more important than conciseness, hence keywords are preferred to symbols. Also, explicit is better than implicit, so there's mostly no type inference. Undefined behavior is kept to an absolute minimum. But what makes your code safer than in many other languages is that you can tell a lot about what the code means to the compiler. In turn, the compiler is extremely strict with your code. Coding takes much longer than with other languages, but once the compiler is happy there will be just a few errors left for runtime debugging, algorithm errors, which are much easier to catch than memory leaks, dangling pointers or side effects.
C/C++ programmers will likely get frustrated with pointers, which are nominally typed (vs. structurally). But then you'll never have to scratch your head about the ownership of an object. There is no pointer arithmetic and no need for manual deallocation; the language allows deallocations, but is unlikely it will pass the code inspection.
Ada brings more than strict semantics. The standard also defines the runtime environment that your compiler must build, ready for parallel processing, synchronous communication, a run-time priority mechanism and many more. Definitely, Ada is not The programming language, just one of them, powerful and well engineered. By far the language I liked the most; it fits me well. And if you get a chance to learn it in Rome, go for it!



I'm afraid I'm not very good with recommendations. You may try https://learn.adacore.com/courses/courses.html which has several courses, depending on your background. Also, they used to post about "Ada gems" https://www.adacore.com/gems The page is retired, but still interesting.
Super interesting! Thanks for writing!
I didn't know Ada was so cool. I was under the impression it is used for teaching and is never used in industry.
Since Rome is off the list for a while, would you recommend any online resources for learning it?
Thank you!