0.1. đ History and influence - JulTob/Ada GitHub Wiki
History and influence
đ¸đģ The first Ada standard was issued in 1983; it was subsequently revised and enhanced in 1995, 2005 and 2012, with each revision bringing useful new features:
đŠđģâđĢ The story of Ada goes back to about 1974 when the United States Department of Defense realized that it was spending far too much on software, especially in the embedded systems area.
đŠđģââī¸ Ada was originally sponsored by the US Department of Defense for use in the embedded system application area
. An embedded system is one in which the computer is an integral part of a larger system such as a chemical plant, missile, or dishwasher.
đŠđģââī¸ While Ada was originally targeted at embedded and real-time systems, the Ada95
revision added support for object-oriented (including dynamic dispatch), numerical, financial, and systems programming.
đŽđģââī¸ 2012
: Introduces Contract Programming
. Valuable to any project where verification is part of
the engineering lifecycle.
Ada83
showed programmers how programming in the large should be organized (packages, strong typing, privacy) and convinced them that indices out of range were not a common pitfall of programming but elementary errors that could be controlled with proper declarations and constraint checking.
Ada 83 also put concurrent programming in a mainstream programming language.
Ada95
benefited from a decade-long development in object-oriented programming techniques and successfully grafted the ideas of polymorphism and dynamic dispatching onto a strongly-typed language with concurrency. It enhanced programming-in-the large capabilities with child units and their generic incarnations.
Ada2005
showed how data-based synchronization (protected types) and concurrency (task types) could be unified through a novel use of interface inheritance, and adopted a conservative model of multiple inheritance of interfaces that has proved more robust than the more unrestricted models of MI.
Ada2005
also introduced into the language an extensive container library, following here the example of other established languages and many earlier experimental high-level languages that showed the usefulness of reasoning over data aggregates.