I have read it, and found it to be delightful. It is my favorite "survey of programming paradigms" textbook. I feel like I'm relatively knowledgable about these topics, and I still learned quite a bit.<br><br>
Things that stood out to me (keeping in mind it's been a few years since I've read it):<br>1. Really drives home the philosophy that programming languages should be designed in layers, where you can write most of your code in a layer that is easy to understand, but perhaps somewhat limited (e.g., functional programming), using other layers as needed when the extra expressiveness is truly necessary (e.g., stateful programming).<br>
2. A running theme is that a designer of programming languages should create these layers by adding the minimum features necessary at the kernel language level to gain new expressiveness (I think they actually quoted Matthias on this language design principle). Then, once certain ways of using the new features becomes standard, add the necessary syntactic sugar to the language to support that way of doing things.<br>
3. I've never used a language based around so-called logic variables. I found it really fascinating to see all the clever ways they can be used. That whole aspect of Mozart was new to me.<br>4. Great discussion of several different types of concurrency. Interesting discussion about how concurrency and state are connected in terms of what they can express.<br>
5. Nice comparison of OO vs. more functional ways of doing ADTs.<br>6. Overview of distributed programming (I wish this part were more in-depth, but I liked what content was there).<br>7. Good illustration of declarative-style GUI programming. Interestingly, GUI frameworks have converged on this style since when I read the book (Silverlight, Flex, Laszlo), so now it's not such a novel idea to me.<br>
8. I love the way Mozart does records.<br>9. I liked the brief explanation of how computation spaces can be used to do deduction/backtracking programs. It got me interested enough to read other articles and books on the subject.<br>
<br>--Mark<br><br><div class="gmail_quote">On Feb 4, 2008 7:47 AM, Grant Rettke <<a href="mailto:grettke@acm.org">grettke@acm.org</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Has anyone read the book 'Concepts, Techniques, and Models of Computer<br>Programming' by<br>Peter Van Roy and Seif Haridi?<br><br>What is your take on it?<br>_________________________________________________<br> For list-related administrative tasks:<br>
<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br></blockquote></div><br>