This project is based on the premise that just as natural
languages anchor human thought, programming languages anchor
our understanding of the world of computing. So if you want
to understand the potential and the limitations of the smart
systems of the future, you must first come to terms with the
basic vocabulary of such systems. Although there are may
levels of abstraction in this vocabulary, at its base it is
rooted in the nouns, the verbs, and the other qualifiers of
the programming languages.
So back around 1997 I set out to create a trilogy on programming with objects. The first two volumes, Programming with Objects and Scripting with Objects, have been out for some time and are currently being used in several educational programs around the world. By comparing the programming idioms in closely related languages, and, at the same time, by teaching how to program in each language, these two books present a multi-dimensional perspective on object-oriented programming and scripting. I firmly believe that, for those readers who are of a serious bent of mind, a comparative presentation of similar yet different programming languages is far more conducive to developing deep insights into the programming syntax than the more traditional one-language-at-a-time style of learning. Additionally, we now live in a world of multi-language computing. Even the simplest of applications may require programming to be carried out in two or more languages. So we might as well get used to learning multiple languages simultaneously.
The writing for the third book of the trilogy, Designing with Objects, was finished in December 2013. This book is currently in production at Wiley with an expected publication date of September 29, 2014. Different from any you'd have seen in software engineeting, this book is an offbeat attempt at explaing the design patterns with short-story snippets drawn from Harry Potter. The code that is used to explain the patterns emulates the interactions among the various characters in the stories. I believe that this is a more interesting approach to explaing the patterns, particularly so the more complex patterns, than the more sterile approach based on giving meaningless names to the classes and the objects, or the names based on some engineering application that the reader may have zero interest in.
If you have any questions about the trilogy, please send them to me at email@example.com with "objects trilogy project" in the subject line to get past my otherwise tight spam filter.