Common wisdom states that software development time is 10% design, 10% coding, 60% debug and 20% test. Note that the last 80% of the project is spent trying to find and eliminate mistakes made in the first 20% of the project. Would you consider using a tool that changed those numbers to 20% design, 60% coding, 10% debug, and 10% test, while cutting the entire cycle time in half?
Studies have shown that Ada produces these kinds of productivity enhancements when compared with C. Of course, if you already use C, you have a significant investment in support tools. You have language sensitive editors, code building tools, debugging tools, and syntax checking tools. It is hard to justify investment in new tools when the old tools seem to be working so well. Of course, it is pretty difficult to cut your overall development time in half using your current tools.
Ada produces these benefits because it is designed to support software engineering as a human activity. It provides unsurpassed expressiveness for defining data. The data definitions provide information usable by the compiler to perform correctness checking and, when appropriate, to generate bounds checking code in your executable. Compare this with C or C++. Those languages are designed on the assumption that the software developer knows what he or she is doing and never makes mistakes. In fact, one of the challenges for C and C++ programming is developing the expertise to avoid the subtle programming traps provided by those languages.
A more complete description of how Ada is designed to be used can be found in the Ada 95 Rationale . A full description of all Ada features can be found in the Ada 95 Language Reference Manual.
This ends the introuction of this article. Click here to continue with part one, History of Ada. Or look below at the contents of the article.