Ada ( [#!Ichbiah-etal79!#], [#!Ada83!#] ) was created in the late 1970s to solve the problem of the software programming bottle neck. Millions of lines of code needed to be written to support government and commercial needs. Hardware has gotten faster and cheaper each year, but software programming remained labor intensive and expensive. Furthermore, many systems built in the 1950s through the 1970s were nearing their life cycle end and had to be replaced. Because computer science is a relatively new field, solutions to total life cycle management were not abundant. To make maters worse, the computer science environment consists of a huge collection of heterogeneous hardware, software, programming languages, operating system environments, file systems, and database systems.
The hope of Ada was to create one independent environment, written in one language, to support all applications.
Ada is a strongly typed language supporting object-oriented programming, information hiding, modularization, concurrent programming, generalization through generic classes, and a unified error and exception handling system. The hope was that Ada was powerful enough to express a vast number of algorithms and data structures as well as process control and parallelism. In 1983, Ada became a standard.
The development of Ada went though an extensive period of requirement gathering, prototyping, and review. This was followed by huge amounts of funding for compilers and supporting environments. All government contracts were to use Ada as the language of choice.
Unfortunately, Ada did not eclipse the world. The developers of Ada created a system that was difficult to master, hard to program, and un-forgiving to change. Creating a language does not solve the bigger problems of software engineering methodologies where analysis, requirements, design, and architectures are defined. The strongly-typed pointer concept in Ada made many categories of programming difficult, including algorithms in the fields of AI, databases, operating systems, and file systems.
See tables 7.19 and 7.20 starting on page .
|