The A-Z of Programming Languages: Ada

1 2 Page 2
Page 2 of 2

As mentioned above, Ada remains the premier language for safety, security, multi-threading, and real-time control. However, the pool of programmers knowing Ada has shrunk over the years due to its lack of success outside of its high-integrity "niche." This means that Ada may remain in its niche, though that niche seems to be growing over time, as software becomes a bigger and bigger part of safety-critical and high-security systems. In addition, the new growth of multi-core chips plays to Ada's strength in multithreading and real-time control.

I also think Ada will continue to play a role as a benchmark for other language design efforts, and as new languages emerge to address some of the growing challenges in widely distributed, massively parallel, safety- and security-critical systems, Ada should be both an inspiration and a model for their designers.

Where do you see computer programming languages heading in the future, particularly in the next 5 to 20 years?

As mentioned above, systems are becoming ever more distributed, more parallel, and more critical. I happen to believe that a well-designed programming language can help tame some of this growing complexity, by allowing programmers to structure it, abstract it and secure it.

Unfortunately, I have also seen a large number of new languages appearing on the scene recently, particularly in the form of "scripting" languages, and many of the designers of these languages seem to have ignored much of the history of programming language design, and hence are doomed to repeat many of the mistakes that have been made.

Do you have any advice for up-and-coming programmers?

Learn several different programming languages, and actually try to use them before developing a "religious" affection or distaste for them. Try Scheme, try Haskell, try Ada, try Icon, try Ruby, try CAML, try Python, try Prolog. Don't let yourself fall into a rut of using just one language, thinking that it defines what programming means.

Try to rise above the syntax and semantics of a single language to think about algorithms and data structures in the abstract. And while you are at it, read articles or books by some of the language design pioneers, like Hoare, Dijkstra, Wirth, Gries, Dahl, Brinch Hansen, Steele, Milner, and Meyer.

Is there anything else that you'd like to add?

Don't believe anyone who says that we have reached the end of the evolution of programming languages.

You can also read Computerworld's investigations into other widely used programming languages like The A-Z of Programming Languages: AWK and The A-Z of Programming Languages: Bash.

Copyright © 2008 IDG Communications, Inc.

1 2 Page 2
Page 2 of 2
8 simple ways to clean data with Excel
Shop Tech Products at Amazon