1.6 Why Learn Ada?

[ Table of Contents ] Prev ] Chapter Overview ] Next ] [ Glossary/Index ]

Here are some "Ada promotional" paragraphs designed to motivate your interest in learning more about the language.

Ada is a carefully designed, general-purpose programming language, intended from the start to support software engineering principles and good practices. Its original development was sponsored by the U.S. Department of Defense. It was intended to be used for real-time, embedded systems. The resulting language has turned out to be an excellent vehicle for many kinds of systems, especially systems that have an evolutionary life where maintainability and reliability are important.

Ada is the first internationally standardized object oriented programming (OOP) language. The first version of Ada is sometimes referred to as Ada 83 (ANSI standardization was achieved in 1983), and other times referred to as Ada 87 (ISO standardization was achieved in 1987). This version is often called an "object based" language. The newer version is referred to as Ada 95 (both ANSI and ISO standardization were achieved in 1995), and fully supports inheritance and  dispatching operations -- thus it can serve as an "object oriented" language.

Ada is a hybrid language, as distinct from a "pure OOP" language (such as SmallTalk or Java). While it provides elegant support for those who emphasize inheritance hierarchies in designing systems, it also supports traditional functional decomposition as well as other approaches. For another valuable perspective, see [Rosen92], which gives preference to the composition approach over the classification approach to object oriented design, and demonstrates Ada's strength in supporting this approach. Thus, Ada is viewed as a full-featured tool for developing software intensive systems. Some Ada compilers can produce Java byte code as well.

Ada favors readers over writers. The design of Ada started from a Pascal language base, and extended it to higher level constructs (such as the package) as well a lower level (closer to the machine) features. Ada maintains Pascal's heritage as an excellent teaching language -- one that requires a few more keystrokes (than C or C++, for example) to write, but is easier to read and maintain. Although Ada is a larger, more complex language than Pascal, it can be learned in easy stages, and subsets of the language can be used effectively in both educational and industrial settings. Ada has been adopted as the first teaching language in computer science departments in a growing number of colleges and universities around the world. Furthermore, modern language-sensitive editors greatly reduce the "writers burden."

Ada uses compiler checking effectively, to eliminate many common errors that cause painful, time-consuming debugging efforts that characterize and slow down many software development projects. Various language features, such as strong typing and separate (but not independent) compilation, make this checking process possible. Other features, such as the way pointers (called access values) are used, also contribute to the avoidance of many typical difficulties.

Ada has built-in support for concurrency and distribution. Ada has built-in constructs called tasks, protected objects, and partitions that provide elegant support for capabilities that are becoming increasingly vital for modern systems. Ada also has low-level representation clauses, which are valuable when interfacing to physical devices or communicating across networks.

The Ada standard is backed up by a comprehensive validation suite. As each version of the language has become defined and has gone through the (ANSI and ISO) standardization processes, corresponding validation suites (ACVC and ACATS) have been developed and maintained. These are made available to compiler vendors, who may submit their products for independent validation of conformance to the standard. The benefit to Ada users is that compilers are more reliable and programs are more portable and reliable.

Ada supports multi-lingual development. Ada's predefined environment includes pragmas named Export, Import and Convention and services that help to import legacy code in C, C++, Fortran, COBOL and assembly, and to export Ada routines and libraries written in those languages.

Ada has a great track record in building reliable, maintainable systems. Examples may be found not only in defense applications, but in systems that control the high-speed (TGV) trains in France, a new branch of the Paris metro, Swiss bank transfers, a hot steel rolling mill in West Virginia, a medical device for magnetic resonance imaging, and air traffic control systems around the world. (See "Ada Success Stories" at the Ada Information Clearinghouse web site mentioned in Appendix C.)

[ Back to top of pagePrev ] Next ]