Ada programming language blog

Ada the Language: Alive and in Flight

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 programming language named after Ada, 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 language is to big doing. Presumed dead by many, Ada is still the go-to language for many applications — including the Boeing 787 and Airbus 380.

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, which at the 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.

adasource

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

Strong typing was a must, but Ada also incorporated several computing approaches that were then only emerging:

  • Object-oriented programming, at the time a new approach to create abstract objects and methods, rather than directly manipulating memory structures.
  • Concurrent programming, which let a computer 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, which lets programmers operate close to the hardware in use, rather than having it abstracted away.
  • High integrity systems. Ada was to be used for American military and intelligence systems. Data loaded for one purpose couldn’t be covertly accessed for another.

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

ada-creator

Jean Ichbiah, Ada’s inventor and lead architect.

Claims that Ada was designed by committee underestimate the role of French computer scientist Jean Ichbiah, 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 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, to overrun specialized systems. Why use a $50,000 computer when a PC from the mall could do the job, one which nearly all developers were familiar? 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 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

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 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 security. They literally can’t tell you what they’re working on. There are

NASA’s CubeSat project launched a dozen satellites built at universities 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

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 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 GithubThen 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 Ada’s current role in the world:


Are you a woman interested in exploring a career in engineering alongside likeminded women? Hackbright Academy offers a 12-week intensive software engineering fellowship for women. You can learn more about what Hackbright has to offer at our upcoming Info Session this Wednesday, October 12th in person or via livestream.