Object oriented programming in Ada
11 points by kqr
11 points by kqr
I've been on such a huge Ada and SPARK kick lately; it's become one of my main programming languages outside of work. I looked at it about 20 years ago (right around Ada 2005) and couldn't really grasp what was so interesting about it, but now it feels like that sweet spot that I enjoy with OCaml, a little bit less visually dense than Rust, but fun to work with. It's also convinced me that I shouldn't have such an aversion to first-class modules.
I'm currently working through:
And have a few more books on my desk (including Barnes' Programming in Ada 2022). I'm happy to see it get more exposure here, because I think it has some really interesting ideas.
now it feels like that sweet spot that I enjoy with OCaml, a little bit less visually dense than Rust, but fun to work with.
Good support for contracts (better on average than Eiffel, arguably, when coupled with subtyping) is how I got to Ada, and I agree completely with that assessment. The community is small, but active and while it tends to rely on AdaCore for many infra projects (package manager, docs, compiler, etc.), it also do stuff on its own.
Also, I know it's not for everyone, but because Ada is standardised and has been evolving carefully, the old books and resources (like this Lovelace Tutorial I didn't know about) are still very relevant for the "core" language.