3 ms·
One benefit I had from learning Ada was that it treats encapsulation, implementation hiding, inheritance, subclassing, message passing, etc. as separate mechani
by kqr 4y ago
One benefit I had from learning Ada was that it treats encapsulation, implementation hiding, inheritance, subclassing, message passing, etc. as separate mechanisms that you can opt into individually.
This is a huge difference compared to something like Java or Python where "everything is a class and a class is everything", and if you desire implementation hiding you sort of automatically also opt into get encapsulation and subclassing and the rest of it.
When you learn the mechanisms individually, object-oriented programming starts to make a lot more sense! Ada is worth looking at just for that experience alone! Then the other things are a bonus.
- pulse7 4y agoIs there some good, free, open-source ADA implementation one can try out?
- pyjarrett 4y agoYou can get going with the Alire package manager which installs the Free Software Foundations GNAT compiler (part of GCC) in a few minutes: https://ada-lang.io https://ada-lang.io
- MaxBarraclough 4y agoThis connects to another of Ada's advantages: language-integrated support for subsetting the language. In the C world, you can define a subset of the language, but if you want a tool to ensure compliance, you're on your own. With Ada, you can define a 'profile' and have the compiler check compliance. This has been done with the Ravenscar profile (for real-time work) and, most famously, the SPARK profile (for formal verification). (There isn't integrated support for user-defined style guide conformance though. From the perspective I've used here, MISRA C is both a subset and a style guide.) Some ancient documentation on RavenScar: https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gnat_rm/Pragma-Profile-_0028Ravenscar_0029.html https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gnat_rm/Pragma-Prof...