If you’re a C programmer, then you’ve probably heard about Ada but discounted it because, well, it isn't C. And why would you need to consider learning another language anyway?
While C is considered a good choice for desktop programs or applications where a shortened time-to-market is a major objective, it’s poorly suited for working within the domain of high-integrity systems. Ada's strength is in areas where reliability is paramount. It’s heavily used in embedded real-time systems, many of which are safety-critical. Specific domains include aerospace and defense, civil aviation, rail, automotive, and medical, among others. These applications require a high degree of safety: A software defect isn’t just an annoyance—it may have severe consequences.
Learning Ada isn’t complicated. Programming paradigms haven’t evolved much since object-oriented programming gained a foothold, and the same paradigms are present one way or another in many widely used languages.
Each of these articles addresses different aspects of Ada and its relationship to C and embedded programming:
- So, What is Ada?
- Real-Time and Ada Programming
- Writing Ada on Embedded Systems
- Dealing with the Absence of an FPU using Fixed Point in Ada
- Interfacing with Devices Using Ada
- Ada from a Business Perspective
AdaCore recently launched a new Ada for the Embedded C Developer course that introduces you to the Ada language by comparing it to C. It assumes that you have good knowledge of the C language. It also assumes that the choice of learning Ada is guided by considerations linked to reliability, safety, or security. In that sense, it teaches you Ada paradigms that should be applied in replacement of those usually applied in C.
This course also introduces you to the SPARK subset of the Ada programming language. It removes a few features of the language with undefined behavior, so that the code is fit for sound static-analysis techniques.
If you’re interested in learning to program in Ada, or if you need to perform an assessment of possible languages to be used for a new development, or you’re currently working on an Ada project and would like more background, this course is for you!