This page provides a summary of the key results from a paper called Guidelines for Choosing A Computer Language: Support For The Visionary Organization, 2nd Edition by Patricia K. Lawlis (1997). This paper rates several popular computer languages on a scale of zero to ten for each of fourteen criteria. It does not rate scripting languages such as Perl and Python, but it does rate assembly language just for reference. The results appear in the Table below. The fourteen categories are briefly explained below the Table, but they are listed here for reference:
A. Clarity of source code | H. Portability |
---|---|
B. Complexity management | I. Real-time support |
C. Concurrency support | J. Reliability |
D. Distributed system support | K. Reusability |
E. Maintainability | L. Safety |
F. Mixed language support | M. Standardization |
G. Object-oriented support | N. Support for modern methods |
A | B | C | D | E | F | G | H | I | J | K | L | M | N | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada 95 | 9 | 9 | 8 | 5 | 9 | 8 | 10 | 8 | 7 | 9 | 8 | 6 | 10 | 9 |
Java | 8 | 7 | 7 | 9 | 5 | 5 | 10 | 9 | 0 | 8 | 8 | 4 | 8 | 9 |
C++ | 6 | 6 | 0 | 0 | 7 | 7 | 10 | 7 | 7 | 5 | 8 | 3 | 5 | 7 |
C | 5 | 5 | 0 | 0 | 2 | 5 | 0 | 5 | 7 | 1 | 3 | 0 | 5 | 1 |
Fortran | 5 | 4 | 0 | 0 | 2 | 5 | 0 | 3 | 5 | 1 | 3 | 0 | 5 | 1 |
Smalltalk | 9 | 6 | 2 | 0 | 7 | 3 | 10 | 3 | 0 | 3 | 8 | 0 | 3 | 7 |
COBOL | 7 | 2 | 0 | 0 | 2 | 0 | 0 | 3 | 0 | 3 | 3 | 0 | 5 | 1 |
Assembly | 1 | 2 | 2 | 0 | 0 | 0 | 0 | 1 | 5 | 0 | 1 | 0 | 0 | 0 |
In order to make use of this Table of ratings, an organization would assign weights to each criterion according to their own particular needs, then sum the weighted results.
If each criterion is weighted equally, Ada 95 comes out the overall winner. This may be surprising to many, considering that Ada seems all but forgotten in many quarters. Many software professionals are unaware of the many advanced capabilities of Ada 95. This is partially due to the fact that Ada 83 was considerably less advanced, and its popularity was fading well before Ada 95 became available.
Java comes in a strong second behind Ada. Java has advanced considerably since 1997, of course, but the ratings probably wouldn't change significantly except perhaps for the real-time support criterion. The Table shows a zero for that criterion, but a major effort has been undertaken since then to adapt Java for real-time applications. The success of that effort is debatable, but the rating should obviously now be higher than zero. Note, however, that even if it were ten (and it is certainly not), Java would still trail Ada 95 in the total rating sum.
Professional software development managers might argue that the Table omits an important practical criterion: the availability of programmers who know the language. Indeed, that is certainly an important practical consideration. However, it may also be an overrated one. In practice, it is often used to narrow the choice of languages down to two or three, typically C, C++, and Java. Ada is increasingly ruled out of bounds on this criterion alone, even for safety-critical systems. But this could be a serious mistake, considering that Ada was designed for safety-critical systems, and experienced, competent programmers can learn a new language in a matter of a few weeks.
back to My Ada Page