Rationale for Ada 2012

John Barnes
Contents   Index   References   Search   Next 


Programming languages and their user and implementer communities are living organisms, which — as time goes by — either decay and perish in obsolescence or evolve in a dynamic combination of wisdom that comes with age and freshness that comes with vision.
Almost six years after writing the foreword to the Rationale for Ada 2005, I look with marvel at Ada 2012, at how it has come about, at the extent of innovation that it carries, and at the competence, dedication, rigour, perseverance and solidity of the community that has worked to make it happen.
Ada 2005 was in many ways a beautiful programming language, perhaps more intellectually than aesthetically, as in the Ada style of things. It brought the promises of Ada 95 to maturation and added great features in a number of its key areas of strength. The technology gap was important for some vendors however, and the user community had to invest considerable resources in digesting the novelty that it brought about. Ada 2005 attracted attention to itself from outside its niche market and gained respect from those knowledgeable in object orientation, real-time and systems programming and container libraries. So one may wonder what caused the Ada 2012 project to start at all, aside from the normative obligation entailed by ISO governance, to confirm, withdraw or amend every individual standard at five year intervals.
The term that comes to mind to explain the Ada 2012 project is "vision". Ada has always been strong in application domains where safety and criticality concerns are paramount. For as much as those domains are intrinsically conservative and not inclined to giant leaps, their needs, however, are not static and, as of late, have begun to evolve more rapidly than in the past, to keep pace with internal and external changes. New needs emerged, which required fresh attention and timely response. It takes vision to see those needs coming and even more so to devise a response to them that meets the user requirement, can be satisfactorily developed by language implementers, and fits in with the language structure, style and use.
One major emerging need was for specification contracts to protect the program from incorrect composition at run time. For programs to be robust, safely reusable and long lasting, you want expressive contracts to be attached to specifications — contracts that talk to the programmer and not only to the compiler — so that a solid and semantically rich understanding can be established between the user of the program component, be it a procedure or a type, and its implementer. The Ada 2012 response to this challenge was to introduce pre- and post-conditions for subprograms, invariants for types and predicates for subtypes. This was a bold move that made Ada the first mainstream programming language to offer those features as part of an ISO standard.
The other main need was to allow Ada programs to run, with adequate guarantees of time predictability, on multicore and multithreaded architectures. The Ada response to this need has been solid so that users can build on it safely and effectively but also cautious: multicore architectures and parallel programming are very complex beasts, which defeat intuition, break composability and threaten predictability. Much more research is needed to learn how to master all aspects of them before relevant solutions become mature enough to make it into industrial technology such as Ada.
While working on those two momentous challenges, as directed by WG9, the body within ISO/IEC JTC1/SC22 which has responsibility for the maintenance of the Ada standard, the ARG (the body of technical experts that actually does the language standard maintenance work) of course also considered corrective and adaptive maintenance needs arising from user and implementation experience with Ada 2005. In the end, the amount of work that went into the Ada 2012 project and the extent of changes that resulted from it were larger than anticipated: evidence that there is energy that can be drawn from in the Ada community.
It is a pleasure for me to invite the reader to read and enjoy this Rationale for Ada 2012, under the knowledgeable hand, deft guidance, and witty style of its author, John Barnes, who continues to surprise me with how vast, profound, and complete is his understanding of the language, no matter how large it grows. It is especially instructive for me to appreciate how humbling it is to parallel my standing to his, in all matters of Ada authority.
Producing this book as an LNCS volume is a financial burden that Ada-Europe would not have been able to sustain alone. On behalf of Ada-Europe, I am grateful to all those who supported the production project. Particularly prominent, in fact, and indeed vital, in that respect has been the role of AdaCore, which I want to acknowledge both personally and institutionally.
Much as happened with the Rationale for Ada 2005, the readers of the Ada User Journal, the quarterly publication of Ada-Europe, were able to get first-hand incremental instalments of the Rationale for Ada 2012. Having stepped from the role of editor-in-chief of the Ada User Journal to that of President of Ada-Europe I have perhaps gained in status but lost the privilege of being the first reader of those instalments. An LNCS volume entirely devoted to the Rationale for Ada 2012 is a great achievement, as a prestigious venue in itself, and as the continuation of the Ada presence in a lead vehicle for the publication of advances in computer science.
It is most likely that writing this Foreword closes the bracket that inaugurated my service as President of Ada-Europe by writing the Foreword to the 2005 edition of the Rationale. I am taking this as a wish that Ada 2012 will have a sufficiently long and successful life to see me safely go before a new Foreword will have to be written.
Dear reader: I am delighted that I can again present to your doorstep, or to a library near you, a book of this value; I promise you that it will be worth your reading.
Tullio Vardanega
Ada-Europe, President
September 2013

Contents   Index   References   Search   Next 
© 2011, 2012, 2013 John Barnes Informatics.
Sponsored in part by:
The Ada Resource Association:


and   Ada-Europe: