This week I read “Ada 95: The Craft of Object-Oriented Programming” by John English. Ada is one of a long list of programming languages which interests me but which I have never had the chance or reason to use for a non-trivial project. Therefore my experience with Ada is peripheral at best, and is why I looked forward to reading this book to learn more about the language.
Dull, As Expected
The book makes for a dry read and will quickly bore anyone who is not seriously interested in learning Ada. However, let me stress that I do not say that to criticize John English’s writing. There are so many dull and blunt programming tomes that it would be unfair to single him out for writing a book that has the typical tone and structure I expect. This is one of those books that teeters on the edge of sounding like an official language specification. But that is not inherently bad because it means the text is thoroughly informative.
The author does use one unconventional device: throughout the majority of the book he introduces concepts by continuously building on and refining two example programs, introduced in the early chapters. I appreciated this approach because, unlike a lot of programming books I could name, this one leads the reader by hand through the creation of usable, real-world software. Yes, there is the obligatory Hello World, but John English abandons such trivial examples as soon as possible.
Honestly I cannot think of much else to say about the book. I finished it feeling confident that I understand Ada a lot better than I did a week ago. And since the author’s goal is to teach the language I certainly must say he is successful. For anyone seriously interested in learning Ada 95 it serves as a comprehensive introduction and tutorial of all major aspects of the language, supporting those lessons with real-world examples.
Next Book of the Week
Next week I am going to read “An Introduction to Genetic Algorithms” by Melanie Mitchell. I think the subject is worth studying not only as a game developer, but as a computer programmer in general since that family of algorithms has many uses.