The Ada behind Ada
Long before computers even existed, Augusta Ada Byron (1815-1852), or Ada Lovelace as she became better known, was considered by many as the world’s first computer programmer. Known for her unconventional personality and her ‘peculiar’ ability to grasp science and numbers long before any woman of her time, Ada successfully translated a short article describing the Analytical Engine – a machine built to calculate a sequence of Bernoulli numbers – by the Italian mathematician, Luigi Menabrea.
Although computer programmes had been sketched out by hand previously, Ada’s translation contained the most elaborate and complete, outlining potential uses of the machine, including the manipulation of symbols and creation of music. Her legacy continued long after her death, but what’s changed since and how does Ada live on in the modern day?
Augusta Ada Byron
The creation of the Ada programming language
Between the 1960s and 1970s, the United States Department of Defense (DoD) was using more than 2,000 languages for mission-critical programming, most of which were built for one specific job. Beginning to see the inefficiency in creating a language for a single task, the DoD decided they needed a programme that could do anything, from systems programming and artificial intelligence to real-time programming and embedded systems. After holding a contest which challenged different teams to create the programming language to end all programming languages, a team led by Jean Ichbiah won. The language was later christened ‘Ada’, in honour of Ada Lovelace.
The first standardised version was created in 1983 and was labelled Ada ’83. This version was initially under the control of the DoD and wasn’t allowed to be used outside the organisation without the DoD’s authority until 1987 when it was released to the public. The language was then made an international standard by the International Standards Organisation (ISO).
The legacy of Ada
Today, Ada underpins some of the world’s most advanced, safety-critical systems. It enables real-time and embedded systems (the small computers that are built into most modern cars, airplanes, and stereos) to control everything from traffic lights to guided missiles and commercial aircrafts.
Almost everything we use today contains software written by languages such as Ada to keep them functioning correctly. While a bar-code reader breaking down in a supermarket may cause more annoyance than worry, software in systems that control aeroplanes for example are much more safety critical and are the difference between life and death.
In a world where software glitches are far too common, using languages like Ada is more relevant and more vital than ever. Many of the bugs seen within IT systems can be traced back to the development and testing phase, introduced through the use of languages that aren’t suitable for the system’s purpose. Of course no language fits all but the term ‘software glitch’ is no longer acceptable when we know it could’ve been avoided, especially where lives could be at risk. Unlike other programming languages, from its beginning back in the 80s Ada has been conceived for reliability. The new features introduced in Ada 2012 (contract-based programming for example) go further in this direction allowing programmers to be sure their software will do what it is supposed to. Further to this, Ada 2012 adds support for today’s hardware platforms through concurrency and multicore support whilst providing increased expressiveness for the developer.
The future of Ada
Ada continues to grow and develop, providing the safety, reliability, flexibility and ease of use needed to develop complex software. Unfortunately many emerging industries still don’t have standards that organisations building software applications have to adhere to. It has recently been reported that police are backing the use of Afghanistan-style drones in fight against crime in the UK, despite such technology potentially being a public safety risk. These unmanned drones are currently not subject to the very strict requirements of civil avionics software (DO-178B, and now C). Also, from a security perspective, given that drones are controlled remotely, nobody can be sure that the software is immune from unintentional interference or rogue efforts to commandeer or redirect the aircraft.
Reliability, mission-critical, safety-critical, security-critical, certification – these are words that are going to become more and more common in software development spheres. With the advent of languages, and associated toolsets, such as Ada 2012, programmers can feel reassured they will be helped in their bid to improve the overall quality of their code.
Jamie Ayre, marketing director at AdaCore.