The availability of F# for VisualStudio.net (for now only available in the VS tool window) raises the prospect of multi-paradigm programming on the CLR.
We already have a Haskell for VS and now a variant of Ocaml. There are prolog implementations, a Smalltalk+Lisp, a pascal and so the possibility of a new edition of the CTM book.
In 2004, Peter Van Roy’s excellent, balanced text was only missing C# delegates and attention to Javascript as prototype-based programming. With a few additions it would be an easy re-write for .NET – once there is a version of Alice.NET to stand in for Mozart-Oz.
CTM systematically covers the design decisions that went into multi-paradigm programming in Oz. Along the way there are sections on prolog, pascal, java, C++ and Erlang. But Mozart-Oz has never had an IDE beyond emacs+Tk ( and even without linking in QTk on windows XP, the Oz interactive programming environment sometimes allows a mouse click on the Browser window to send either tk.exe or ozengine.exe into chewing up all the cycles of my CPU.) In fairness, Alice is Gtk. And not to knock Tcl/Tk which I just love regardless. And there is no chapter section on Rebol or domain-specific languages (SQL, XSLT) and no index entry for ISAM. Or M.I.T’s own Curl. Or CLU.
It is just that CTM is not a language book: it is about Concepts, Techniques and Models. There is likely no more even-handed treatment of declarative, imperative and object-oriented programming. And what you get is a thorough introduction to a concurrent form of data-flow programming. The sections on topics such as composition versus inheritance are very fair. Even then, the Beta inheritors of Simula will feel neglected. But they have their own books. As do Scheme and LISP, whose followers might also feel slighted. But Oz flows from Mercury which was pure prolog.
CTM for Alice-on-CLR could also use a chapter or section on Smalltalk/SOUL, SmallInterfaces, Strongtalk, Self and Slate to fill the gap in its benign neglect of Javascript. After all, what’s a thousand pages once you are over the 900 mark … by adding a bit on Joy, the language and Io, the language, and Cecil/Diesel. Oh, not to forget Squeak/Traits and Croquet, the OS.
The only other thing to make me happier would be to see Pragmatic Programmer have an Oz book to match the Erlang book.
Btw, the Prentice-Hall India version of CTM is on thin paper in mimeo quality (very transparent) but also very affordable.
But the worst of it will be google: just try a search on F# and Alice. Arghhh…
A second edition of CTM will be welcome given the number of relevant developments since its publication by MIT Press (when in Boston, do visit the MIT Press bookstore: it is a treat.)
And if we can not get another edition of CTM, then perhaps a future-of-the-book project would be to have CTM, well, not evolve, but adapt over time … well, Sophie?
There is a site with CTM links including a partial virtual CTM for Alice at
http://www.alexa.com/browse/general/?&CategoryID=6187&mode=general&Start=1&SortBy=Popularity
There is a CTM wiki at http://codepoetics.com/wiki/index.php?title=Main_Page