Sunday | 23 November, 2008
The A-Z of Programming Languages: Ada
S. Tucker Taft, maintainer of Ada, speaks about the development of the language and its 1995 and 2005 revisions
Naomi Hamilton 04/06/2008 14:49:40

In your opinion, what lasting legacy have Ada and Ada 95 brought to the Web?

I believe Ada remains the benchmark against which all other languages are compared in the dimension of safety, security, multi-threading, and real-time control. It has also been a source for many of the advanced features in other programming languages. Ada was one of the first widely-used languages to have a language construct representing an abstraction (a package), an abstract data type (a private type), multi-threading (tasks), generic templates, exception handling, strongly-typed separate compilation, subprogram inlining, etc. In some ways Ada was ahead of its time, and as such was perceived as overly complex. Since its inception, however, its complexity has been easily surpassed by other languages, most notably C++, while its combination of safety, efficiency, and real-time control has not been equaled.

Where do you envisage Ada's future lying?

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.

Related Features
  • +

    Federal Police to outsource software development 04/12/2007 11:06:54

    In-house and approved suppliers to work on $84 million worth of software projects
    Following its decision to establish a panel of general IT service providers earlier this year, the Australian Federal Police (AFP) is now seeking the services of specialist providers to undertake and assist its application development activities.
  • +

    Blog: More on Organizational Realignments and How They Affect CIOs 03/06/2008 14:29:24

    IT leaders are well-positioned to benefit from and facilitate organizational changes inside their companies, according to one executive recruiter.
Additional Resources
Executive Guides
Whitepapers
Zones
Zone logoZones provide focussed content from Computerworld and leading technology partners.
Newsletter Subscription
Sign up for our Computerworld newsletters!
RSS Feeds
Market Place

 

Smart SOA World Tour

Discover how SOA can create smarter outcomes for your business.

Attend and learn:

  • How SOA is helping leading companies to become more agile
  • Where you should be applying SOA processes in your company
  • The top SOA implementation mistakes to avoid

Click here for more information.
Whitepaper

Gaining Competitive Advantage Through Enterprise Planning

No matter how good its products or innovative its services, no organization can perform to its full potential without an adequate planning structure in place. Discover how this can be done by reading on.

Enterprise IT Buyer's Guide
Find Technology Vendors Fast
 
Find vendors by name | Find by category
Sponsored Links