The Objects Trilogy Project

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 with "objects trilogy project" in the subject line to get past my otherwise tight spam filter.

                                                                              Avi Kak  

  1. Programming with Objects: A Comparative Presentation of Object Oriented Programming with C++ and Java", (1115 pages) published by John-Wiley in March 2003.


    A web site devoted to the book (include the errata and the code examples in the book)
  2. Scripting with Objects: A Comparative Presentation of Object Oriented Scripting with Perl and Python", (1280 pages) published by John-Wiley in May/June 2008.


    A web site devoted to the book (including the errata and the code examples in the book)
  3. Designing with Objects: Object-Oriented Design Patterns Explained with Stories from Harry Potter", (500 pages) to be published by John-Wiley, September 29, 2014.

An essay on the state of how programming is currently taught in many universities
(written in July 2008)

Valid HTML 4.01 Transitional Valid CSS!