5 ms·
One question I would like to know: "Why should I learn Ada if I am not programming AIM-9X heatseeking missiles in my day to day job?"
by mothsonasloth 5y ago
One question I would like to know:
"Why should I learn Ada if I am not programming AIM-9X heatseeking missiles in my day to day job?"
- thesuperbigfrog 5y ago>> "Why should I learn Ada if I am not programming AIM-9X heatseeking missiles in my day to day job?" Because it changes the way you think about programming. Taking about Lisp, Eric Raymond said: "Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot." Ada provides a different kind of enlightenment than Lisp: 1) Ada has a powerful type system that lets you define exactly what values are allowed and how they should work: https://learn.adacore.com/courses/intro-to-ada/chapters/strongly_typed_language.html# https://learn.adacore.com/courses/intro-to-ada/chapters/stro... https://learn.adacore.com/courses/intro-to-ada/chapters/more_about_types.html https://learn.adacore.com/courses/intro-to-ada/chapters/more... 2) Ada has built-in concurrency primitives that very simple to understand and use: https://learn.adacore.com/courses/intro-to-ada/chapters/tasking.html https://learn.adacore.com/courses/intro-to-ada/chapters/task... 3) Ada supports design-by-contract programming to precisely define the semantics between different parts of your code. Design-by-contract is ideal for large codebases and helps to catch errors similar to unit tests, but within the code itself: https://learn.adacore.com/courses/intro-to-ada/chapters/contracts.html https://learn.adacore.com/courses/intro-to-ada/chapters/cont... Even if you aren't writing code for heatseeking missiles, learning about Ada can make you a better programmer.
- noneeeed 5y agoI loved using Ada for concurrancy at university. I'm always surprised how few languages seem to have such a good built in concurrancy toolkit. I guess it's more use in the contexts where Ada is normally found.
- msla 5y agoIt seems like Ada is an early attempt at what Haskell gives you. Why bother with it now?
- henrikeh 5y agoHaskell and Ada have very different goals. Ada is designed, in part, to work on embedded and real-time systems. It isn’t really an “attempt” either. The language exists and is used and has developed as experience was gained. Why bother with it? Because you could maybe learn something new despite it being old.