Ada Programming: Past, Present, and Future
The inventor of the Ada programming language once compared its creation to building a piece of architecture. He said that he wanted to “construct the building that would best suit the requirements of the users.” His metaphor was apt.
In essence, the language compares to some of the longest-lasting structures in the world. Ada is like the pyramids of ancient Egypt: sturdy, seamless, and timeless.
There is one big difference, though. The construction materials are already here! Workers do not have to drag massive blocks for miles and miles to build the final product. The code is already prepped and ready to go!
Ada is a language that is easy to master, hard to hack, and still has a lot of potentials.
Readers may be asking, why was this programming language created? What platforms use this language? What are the benefits and downsides of Ada? What does the code look like? What is the future for Ada?
In the 1970s, the U.S. Department of Defense used over 450 programming languages worldwide. Through a contest, they searched for the best possible common one.
The original version, called “Green,” was devised in France by Dr. Jean Ichbiah. A forward thinker, Dr. Ichbiah intended to create a durable, accessible language. The U.S. DoD recognized that they had found the winner. They hired Dr. Ichbiah as the chief designer and changed the name of the language.
Unlike most programming language names out there, “Ada” is not an acronym. The name derives from Ada Lovelace, the first programmer. The earliest version is called Ada 83.
A decade after Ada’s creation, Tucker Taft led a team that further transformed the language. Taft’s team sought to make Ada an international standard.
Sure enough, the International Organization for Standardization (ISO) approved of Ada. Thus, Ada 95 became the first standardized Object‑Oriented Language. This was a huge achievement because experts all over the world agreed on Ada’s standards.
This language continued to be developed in 2005 and 2012. Today, Ada remains upward compatible. This means that people can continue to build on it for generations to come. Hence, Ada is a strong foundation for building a secure future.
Platforms and Uses
Founded in 1994, AdaCore is a company that offers tools to use Ada. They are headquartered in New York and Paris.
AdaCore runs the GNAT Studio IDE, a multi‑language coding environment designed for flexibility. Within this development tool, Ada works in tandem with other coding languages. Working with other languages makes Ada both versatile and portable.
In addition, Ada has many applications for software or hardware. Some of the platforms that support Ada include Windows, Solaris, GNU/Linux. Bare metal systems such as ARM, x86, or PPC also support Ada. Likewise, real‑time operating systems like VxWorks or LynxOS‑178 support Ada as well.
Besides interfacing well with other languages, Ada has many other advantages.
Error Detection and Cutting Costs
The motto for many Ada users is “in strong typing we trust.” The syntax is reader‑friendly and capable of being understood for generations. Users are barred from writing cryptic code that is incapable of being modified.
Being a strong‑typing language, Ada has strict rules. Because of these standards, errors are caught sooner. Programmers must be explicit. They specify constraints so that inappropriate operations cannot execute.
Ada 2012 is the most widely used language to standardize contract‑based programming. Software requirements must be defined from the outset, and planning is vital. By defining the “contracts” or the expectations early, Ada allows errors to be found faster. This type of programming ensures that there will not be runtime errors.
Other languages, like C, tend to catch errors during run time, which can be costly to figure out. The quick debugging ensures that projects in Ada are completed in a 30% faster time than projects in C.
Support and Speed
Another aspect that contributes to the speed‑to‑market factor is Ada’s libraries. Extensive libraries of code aid the development process. Developers can use those libraries to build a secure base for new programs.
Having a strong groundwork allows developers to spend less time troubleshooting the basics. Compared to C‑based undertakings, projects written in Ada are over three times more likely to be on schedule.
Also, Ada’s ecosystem of help and assurance allows for modularity and scalability. Huge, reliable systems can be designed using these libraries. Pieces of the system can be moved with little impact on the whole. This language is ideal for safety‑critical systems.
The GNAT Community offers educational materials to help people learn Ada. Traditional C or C++ users may find Ada easy to learn. In fact, educators say that after a 5‑day course a C user can learn Ada. The language continues to be taught all over France and the United States.
Additionally, Ada eases the interaction between high‑level and low‑level processes. There is no need for middleware!
As mentioned earlier, Ada can run on bare metal, meaning directly on the hardware. This feature allows programmers to make deep control changes in the machine’s language.
Simultaneously, Ada interacts on an upper level through tasks and concurrent execution. Most computer systems today have the need for several cores. These multicore systems need “concurrency,” which is the ability to interact in real-time and share data synchronously.
Ada can send tasks through different environments without changing a program! Tasks can go through environments like multiple processors or multiple cores on one processor. Needless to say, Ada adapts to changing circumstances.
Even though Ada is efficient, reliable, and adaptable, there are some downsides to Ada.
Lack of Promotion
The biggest obstacle is the lack of education on the subject.
Because the U.S. DoD developed Ada, there is a bias against this language. Many people think that Ada should only be used for defensive applications. As a result, other languages are seen as more commercial. Promotional efforts have not increased much interest beyond the defense niche.
Additionally, most of the universities that teach Ada are found in the United States. Worldwide, only a few hundred higher learning institutions offer courses in this language. Other languages rule the academic universe.
Also, years ago, obtaining the resources to use Ada proved difficult for civilians. To get the proper equipment and training, institutions had to wade through serious restrictions. This was because the U.S. DoD used to be Ada’s only sponsor.
Today, AdaCore offers a free interactive learning platform, making this language much more accessible. This no‑cost education may help to encourage more people to learn Ada in the future.
Reluctance to Switch
Another bias is that this language may be hard to learn and switching over costs too much. The strict syntax can be seen as cumbersome, especially for small businesses or individuals getting started. There is less independence involved in development. The guidelines feel restrictive on creativity.
Also, even though advocates say that this language is easy for C users to master, companies might not risk transitioning. Shifting from one language to another can incur great costs. Personnel must be trained, and new tools need to be purchased. Not to mention, there may still need to be support for the old code in the meantime. Switching could prove difficult.
Reluctance to Specialize
On top of the perceived cost, there are other concerns with learning a language that is not widespread. Programmers proficient in C languages or Java are more likely to have a high salary. Other languages dominate the job market. They drive wages down for people who specialize in less common languages.
Consequently, programmers may hesitate to learn the language. Knowing that other languages are more popular keeps students from pursuing training.
On the other hand, hiring low-wage Ada workers might actually help cut costs for a large company. They might get cheap labor out of the deal! That would be a win‑win scenario for big businesses. Yet, the prospect of low wages is not a draw for quality programmers.
Here is an example of an if‑statement from Learn.Adacore.com. This program is titled “check_positive,” because it checks if a number is a positive number:
In the program above, the user enters an integer (either positive or negative). The program reads that input and determines if the integer is positive, using the “if N > 0” statement. If the number is positive, then this program will display the value and say that number “is a positive number.”
Here is an example of a loop. The program is titled “greet_5a” because it prints five greetings:
Upon execution, this code will yield:
Trends and Popularity
In 2016, IEEE Spectrum magazine released a chart showing the top languages. Ada ranked 40th by the level of importance. By 2019, Ada had gone down to 43rd. These rankings seem to show that this language is not performing well.
Still, there is another explanation for why Ada’s importance is being overlooked. The main reason is that this language did not play a large part in the web, the cloud, or the mobile revolution.
Even though Ada is not common for those applications today, there may be hope in the future. Ada continues to grow and thrive in many markets of tomorrow.
Industries that Use Ada
Despite the low rankings, many industries use Ada. The avionics, defense, space, air‑traffic control, rail, automotive, security, and medical industries all depend on the language.
In the medical industry, safety is critical. For medical equipment, the FDA implements new safety requirements all the time. Ada is one of the best languages to meet those regulations and keep life‑sustaining systems secure.
Without Ada, new medical devices are vulnerable to hacking. Medical personnel needs to be able to access and check devices for the health of a patient. This access could leave devices open to people with bad intent. Yet, Ada leaves less room for bugs and errors.
The medical community knows Ada is reliable. In 2018, a Swedish company named Scandinavian Real Heart chose Ada for its Total Artificial Heart. Futuristic technologies, like artificial hearts, need strong code. Ada delivers.
In outer space, NASA wants to use Ada on their “Climate Absolute Radiance and Refractivity Observatory (CLARREO) Pathfinder mission.” The observatory will monitor solar radiation that is reflected off of Earth. Ada will be responsible for some of the flight software. The software will interface with the International Space Station (ISS).
The European Space Agency (ESA) has been using Ada for a long time. To them, Ada prevents vulnerabilities. They say that the code is easy to maintain and develop. Using Ada, they are able to make software that adapts over time.
The ESA works with the aerospace company AVIO. Together, they built a launch vehicle called Vega‑C. Ada makes up the guidance systems to control the vehicle. Clearly, space agencies rely on Ada for their critical systems.
There are many other futuristic applications for Ada, especially in transportation. In 2019, NVIDIA proclaimed that they trust Ada and SPARK (Ada’s subset) to assure the safety of their self‑driving cars.
As recently as September 2020, Airbus Helicopters chose Ada for new components on their unmanned aerial system (UAS). They believe the code is easily maintained, and AdaCore offers quality support.
To conclude, Ada is not fading away. Even though there are many downsides, there are also many benefits. The lack of promotion, reluctance to switch, and reluctance to specialize can all be fixed. The advantages, such as error detection and cutting costs, support and speed, and functionality, are clear.
The world seems to be catching up to Ada’s true capabilities. As security breaches become more and more common, code needs to be flawless. Again, Ada offers a structure that is sturdy, seamless, and timeless.