BLOG

Ada Programming Language: Alive and in Flight

SHARE

Today is Ada Lovelace Day, so there’s no better time than the present to talk about the programming language named after her. Everyone sort of knows that there was a computer language named after Augusta Ada King, Countess of Lovelace, who developed the first known computational algorithm for a machine. What most don’t know: What Ada, Countess of Lovelace, was to abstract big thinking, the Ada programming language is to big doing. Presumed dead by many, Ada is still used as the go-to language for many applications — including the Boeing 787 and Airbus 380.

So join us while we take you through the Ada computer language — what it is, where it came from, and where it’s going.

What is the Ada Programming Language?

Ada is a high-level type of object-oriented programming language. It is imperative, structured, and statically typed. It’s extremely efficient, reliable, and is perfect for large, long-lived applications.

And it’s been around for a while.

The most expensive, extensive code project ever

Ada was designed in the mid-1970’s for the Department of Defense, by four different teams of contractors whose proposals were winnowed down to one specification over two years: it was to be the standard language of the US military, at which time wallowed in at least 450 languages. Many of them were tied to one hardware architecture, and few were amenable to the sort of modular programming needed to build scalable, reliable systems for life-and-death applications, such as airplane control systems.

Ada was intended from the start for use in very large, long-lived systems, many of which are built around “embedded” computers such as those in satellites and military gear. A top goal was to reduce the likelihood of programmer errors. Another was to minimize the likelihood that a program would fail unexpectedly. Robust exception handling and run-time error checking served those goals.

Ada Source Code | Ada Language

Ada source code. This simple function creates an array of arrays.

Strong typing was a must, but Ada is also used for incorporating several computing approaches that were then only just emerging:

  • Object-oriented programming, a (then) new approach to create abstract objects and methods, rather than directly manipulating memory structures.
  • Concurrent programming (concurrency), allows a computer to run multiple, independent tasks at once.
  • Real-time programming, for software which can keep up with what’s happening right this second (or microsecond) in the real world.
  • Systems programming, lets programmers operate close to the hardware in use, rather than having it abstracted away.

The initial Ada specification was delivered in 1980, and became an ANSI standard in 1983. Government moves slowly, though, so it wasn’t until 1991 that Congress’ Ada and Its Integration Mandate declared that nearly all government systems would be coded in Ada, which was updated in 1995 to be the first object-oriented language standardized under the International Organization for Standardization, or ISO.

Jean Ichbiah, Ada architect

Jean Ichbiah | Ada Language

Jean Ichbiah, Ada’s inventor and lead architect.

Claims that Ada was designed by a committee underestimate the role of French computer scientist Jean Ichbiah. He was a Honeywell employee whose Green language, one of the four candidates, was chosen as the basis for Ada. Ichbiah led Ada’s design until it was finished in 1980, then founded his own company to continue Ada standardization and build Ada compilers. Later, he invented the FITALY keyboard layout optimized for stylus input on tablets and PDAs. Ichbiah passed away in 2007.

What happened to the “Ada mandate”?

Even as the government standardized on Ada, mass-market computers and software were beginning to replace — actually, overrun — specialized systems. Why use a $50,000 computer when a PC from the mall, one which nearly all developers were familiar, could do the job all the same? The Department of Defense, seeing the opportunity to spend less and have fewer arcane systems, abandoned the Ada Mandate in 1997 and began to look to what were then called “commercial off-the-shelf systems.” These cheaper, more widely known systems, and non-Ada software solutions, had better support for C and Java than for Ada, which was seen as a niche opportunity by tech vendors.

Ada today: Going to the moon

Lunar IceCube | Ada Language

The Lunar IceCube, a “pathfinder experiment” for NASA’s future small planetary missions, runs JavaScript. Haha no, it’s being programmed in SPARK, which is based on Ada.

Ada is still in use today. The language spec has been updated and modernized several times, most recently in 2012. It’s deemed a must have in many defense-related systems where reliability and safety are critical, or where thousands of programmers may work on a single code base. Much of it isn’t discussed on Reddit’s Ada subreddit, though, because many Ada programmers are sworn to government secrecy for the sake of security. They literally can’t tell you what they’re working on.

NASA’s CubeSat project launched a dozen university-built satellites into orbit in 2013. Carl Brandon, a physics professor at Vermont Tech, says, “The Vermont CubeSat is the only university CubeSat that successfully completed its mission: eight were never heard from, one fried its batteries the first day (software error), one worked a little for less than a week, and one for four months.” Vermont Tech had used SPARK, a language based on the Ada spec, for their flight software. Their Lunar IceCube, scheduled for launch in 2018 to search for ice on the Moon, is likewise being programmed in SPARK.

Lunar IceCube Rendering | Ada Language

Arists’s rendering of Lunar IceCube at work.

In civilian airspace, Boeing’s 777 airplane, which revolutionized airliner avionics, was software largely built on Ada. The newer 787 Dreamliner, and Airbus’ A380 and A350, are also programmed largely with Ada. Aircraft makers choose Ada both for safety and for scalability of the project itself — some 10,000 people worked on the 777 project.

Ada is not as widely used as some other languages, such as C, C++, or Java, and it’s not a language intended for home hacking. There are a relatively small number of Ada projects on Github. Then again, Ada Lovelace’s own algorithm was never run, because Charles Babbage never built a Difference Engine on which to run it. Sometimes, a concept itself can be world-changing. The Countess of Lovelace showed how a machine could do math, and explained that it could just as well make music. Ada, the language, showed how algorithms for the Difference Engine’s descendants could be more reliable, more scalable, and more amenable to handling the most complex ideas human minds could conceive.

Ada links for today’s engineers

Development firm AdaCore‘s engineers, many with decades of experience, provided us with a terrific reading list to explore information about Ada’s current role in the world:


Are you a woman interested in exploring a career in engineering alongside like-minded women? Hackbright Academy offers a 12-week intensive software engineering fellowship for women. Check out the page for more information!

 Recommended Reading

The Best Ways To Learn To Code

Why Learn Python?

How Do I Become A Software Engineer?

 



RELATED POSTS
RECENT POSTS
March 06, 2020
What Is a Web Developer Versus a Software Engineer?
March 06, 2020
Does Software Engineering Require Math?
February 28, 2020
What Companies in the Bay Area Use Python?
February 28, 2020
Hackbright's Top 20 Tech Companies in the Bay Area
CATEGORIES