Updates

Latest Tweet



What's New?

Check out for latest innovation, a computer based training video collection


Like this Page

Programming Language Design Concepts Review by William Smith

Missing information and factual errors

I found reading this book very frustrating for several reasons.

The first reason was that it would explain similar concepts in different programming languages with almost identical text with only a few words changed. It would have been much better if the book was organized to not be just an inventory of the features of the example languages but would contrast their meaning. It also seemed to focus more on the differing syntaxes of the languages instead of the similar or different semantics behind those syntaxes. It also would have been a stronger book if it mentioned concepts that were present in some languages not surveyed by the book.

It was also not very objective and would make value judgements about the languages, usually by praising Ada's attributes and disparaging C and C++.

Another problem that I found was that it had factual errors about C and C++. For example, it made an emphatic point of saying that C++ arrays could only be initialized with constants, which is not true. It also glossed over C++'s references and frequently made no distinction between C and C++.

In its section on parameter passing, it left out several important parameter passing mechanisms such as thunking (there was no mention of this at all) and C++'s non-const reference parameters. Also, it claimed that C had no modularity techniques and was therefore only useful for small projects and ignored the benefits of static functions or variables that can hide the internal structure of algorithms and information.

While I'm most familiar with C and C++, the flaws in this book with those languages made me unable to trust its comments about other languages. The value judgements it made about the quality or usefulness of different languages were both distracting and unhelpful.