Home
Publications
Download
Personal
Pictures
Letters
Contact










July 2007


Hello friends,

One of the things I like about U of T is the invited speakers.  After all, people rarely have the opportunity to hear a lecture by figures like Steve Reich. Toronto is also a popular stop for Israeli speakers touring the states. I am not sure that if Amos Oz gave a lecture in Nes-Ziona I would bother going, but here it was a must. I also saw Yossi Olmert, Naomi Hazan, Ami Ayalon, Oded Granot, to name a few. This month I couldn’t miss Bjarne Stroustrup.

Stroustrup was in town for a week-long meeting of a C++ standardization committee. It turns out a new C++ standard is underway for around 2009. You can still send suggestions for language features. The new standard will have some features he had already been thinking about in the eighties. There will be a more structured framework for templates and generic programming. However, he said that if at the beginning of the week garbage collection seemed like a closed deal, now it looks like a dead duck. He also had comments on the poor performance of Java , all in sublime Danish style.

Stroustrup’s Ph.D. thesis, where he developed C++, is a classic. However, if you think about it in cold academic terms it isn’t that impressive. He didn’t invent C, or compilers (I think the first C++ was a translator to C), or object oriented programming. He didn’t prove mathematical theorems. From the theoretic standpoint, all languages are equivalent to a Turing machine. The language doesn’t really matter for what programs you can write. Much of his contribution lies in an area of programmers’ psychology, i.e. ordering the complexity in a way that fits nicely the organization of human memory. In other words, programming languages are more about humans than machines. But he didn’t perform psychological experiments. What he did was to suggest a new standard that exposed people to object oriented programming. As someone said, the good thing about standards is that there are so many to choose from. Implementing new standards has huge costs that it is not clear in advance whether it is worth the investment. In retrospect, today C++ seems so natural, that if Stroustrup didn’t introduce it, someone else would inevitably have.

Yet Stroustrup had impact. The man literally saved humanity billions of dollars and his book influenced an entire generation of programmers. It shows that there are no strict measures to what is the right practical idea for the right time. If today someone proposed a language extension he is not likely to get that far.

At U of T the first language taught today is Java. Computer science students can graduate without studying C++. There is a new generation of programmers to whom memory allocation looks like a dead duck. On the other hand, engineers study C++ and its use in embedded systems is increasing. Seeing how much Fortran code is still running (e.g. in Matlab), C++ will stay for many years, though its competition is growing. Since C++ design has an emphasis on backward compatibility, at some point it will evolve or be inherited by a new language. In the future academics scholars in extinct programming languages will open C++ sources and try to figure how they were supposed to be working. Will they understand?


Ady.