Also referred to as
TheOzBook when it's clear from context that this does not refer to L. Frank Baum's
TheWizardOfOz.
Quoting from
http://www.info.ucl.ac.be/people/PVR/book.html :
-
- The book is organized around programming concepts. It starts with a small language containing just a few concepts. It shows how to design, write programs, and reason in this language. It then adds concepts one by one to overcome limitations in expressiveness. In this way, it situates all major programming paradigms in a uniform framework. More than twenty paradigms are given, all represented as subsets of the MultiparadigmLanguage Oz [OzLanguage]. We find that all have their place: "more is not better (or worse) than less, just different".
Prior to publication, there was an online draft available from the book's website. Although the publishers and authors might disapprove, this draft is still accessible through the
WaybackMachine.
In fact, there still is: http://www.ulb.ac.be/di/rwuyts/INFO020_2003/vanRoyHaridi2003-book.pdf (
BrokenLink)
Info -
http://www.info.ucl.ac.be/~pvr/book.html
There is now a wiki dedicated to CTM:
http://www.codepoetics.com/wiki
The nickname "The Oz Book" is appropriate, both because
OzLanguage (which the authors, along with several others, developed) is the primary language used in the book, and because of the inevitable comparisons with
TheWizardBook (
StructureAndInterpretationOfComputerPrograms). Like
SiCp, CTMCP is first and foremost a book on
programming, not on Oz or Scheme or anything else. And if
SiCp is the reigning king of such books,
ConceptsTechniquesAndModelsOfComputerProgramming is a worthy challenger to that particular throne. (More accurately, this book deserves to be on the same shelf as
SiCp, in my opinion -- and I definitely would read both of them, along with
ObjectOrientedSoftwareConstruction).
There are a few concepts in this book which receive better coverage here than in
SiCp; namely:
Conversely, traditional functional programming is better covered in
SiCp, as are the contents of
SiCp's chapter 5, dealing with language implementations and compilers.
One good point in favor of this book (compared to many programming texts and well-known personalities) is the authors' careful avoidance of dogma. Although
OzLanguage features prominently in the book, this book doesn't make extravagant claims about Oz (or engage in specious criticism of other languages -- if anything, the authors are
too nice). Compare this to
ObjectOrientedSoftwareConstruction, where an otherwise excellent book is diminished due to the fact that it frequently reads like a sales brochure for
EiffelLanguage. Nor do the authors engage in "paradigm-bashing". While the authors clearly do have a favorite paradigm, all of the paradigms presented are discussed in a reasonable fashion, with strengths and weaknesses cataloged and analyzed. When the authors
do criticize something (
SharedStateConcurrency, a technique which seems to dominate programming these days, receives quite a bit of criticism), it makes you want to sit up and pay attention.
In the final analysis, the authors recommend use of whatever paradigm works, including several different ones in the same problem. A welcome relief from several other authors I can think of, each promoting their own One True Way.
Highly recommended.
--
ScottJohnson
Agreed on all counts. Wonderful book, very insightful, strangely easy to read (haven't figured that out yet), very unusual in many respects. There really isn't any other book out there that is even vaguely like it in subject coverage. I think it's a natural complement to
SiCp. A must-read even if one isn't interested in
SiCp, too. I've quoted it multiple times on various pages here. --
DougMerritt
Links to discussion of CTM on the
LambdaTheUltimate weblog:
<
http://www.codepoetics.com/wiki/index.php?title=Discussion:LtU>
Also see
StructureAndInterpretationOfComputerPrograms and
LargeAndSmallLanguages.
CategoryBook