Full description not available
L**Y
An eye opener, even when I thought I knew it all
I love this book so much, I'm buying it again. After having spent years reading it on and off, and working every problem, I've managed to wear out the spine. Since I intend to continue to work with Oz, the fascinating language that is used as the main example, I'm going to get myself a fresh copy!Before I read this book, I had already been blown away by Scheme, C++, ML, and Haskell. I had studied Java, C#, Ruby, Perl, and a smattering of Lisp, Prolog, Erlang, and historical languages. I thought I knew just about everything about programming languages, and just wanted to learn more about constraint programming. But I found that every chapter of this book, even the ones on paradigms I thought I knew well, was fascinating.Much of the book is concerned with dataflow programming, which is a refreshing and clever addition to functional programming that works very well with concurrency. I learned a lot about different forms of concurrency, and the tradeoffs between analyzability and expressiveness. The exercises on transactions were illuminating, and relational (logic) programming suddenly makes a lot more sense.My only regret is that the chapter on constraint programming is a bare introduction. After the thorough coverage of other topics, I was left wanting to know more.I will also point out that some of the code is a bit terse, doing a little too much in too little space, with too-simple variable names, often single letters. I suspect this may have been done to fit code samples on the page. I'd like to see longer, more clearly explained versions posted on the web site. The authors were ambitions with the scope of the book, so it's hard to imagine cramming in even more careful explanations. The reader will be rewarded by exploring the exercises, and asking questions on the mailing list.
J**S
Oz-centric but interesting
Peter Van Roy has an agenda; it's something like a universal, orthogonal language for discussing the programming paradigms landscape. Oz is his technical-side attempt at that agenda, and CTM is his discourse-side attempt.It's not a substitute for SICP or K&R or Code Complete or Pragmatic Programmer or TAPL, but it has things (a nuanced awareness of concurrent logic programming languages, for example) that those do not touch.
B**B
Excellent Approach to Understanding Programming Languages
Great for learning the various paradigms of computer programming languages, like Functional or Object Oriented, but without the typical, dogmatic approach. Instead they build with the declarative model, defining syntax and semantics, and building each new paradigm on top of this to meet new needs, like concurrency.
A**R
Not worth the time
The Oz programming language is ridiculously outdated
V**C
One Star
Kindle format is useless, looks like a PDF document. Unreadable on smaller devices.
J**S
Digital Version Incompatible with Paperwhite and Android
Incompatible with both my Paperwhite and the Kindle app on Android.
R**O
Will change how you think about program design completely
This book is a real mind-bender that illuminates paths for computer design at both the conceptual and practical levels I'd never travelled down before.The notion that one language can be so flexible as to accomodate both the syntax and semantics of so many different computational models, or paradigms, took some unlearning of bad programming practice before its power, elegance and potential began to sink in.It also explodes the myth that "pure" languages -- i.e., pure OO, or pure functional, etc., languages--have some kind of innate advantage over so-called "hybrid" languages. In fact, "hybrid" (or as the authors would prefer to call them, "multi-paradigm") languages come out of this book looking even more powerful than the "pure" ones, insofar as they allow the programmer to use the right model for each task, instead of trying to make OO fit, for instance, in places where it doesn't fit so well.The idea here is that each computational model represents a completely different way of approaching a domain problem. Used by themselves, each has its niche. For instance, everybody knows OO is good for domain modelling and busines objects. Prolog-type languages are good for applications that need to apply rules over a set of data. Functional languages are great in mathematical applications. And so on. What is new here is that one can program in an environment in which all of these tools are available in a single core semantics that seamlessly weaves these computational models into a complementary whole. Used together judiciously, with an eye toward program correctness, they make things possible that have long been considered very hard -- for instance, constraint programming.Mozart-Oz, the underlying technology, is a strange language when you first look at it. It's hard at first to get used to concepts like "higher-order programming" or "by need execution" or "lazy execution" if you are the programming grunt in the field of most modern IT shops, forced by bosses to code in your standard fare -- Java, C#, VB, etc. If OO in Java is like the hammer that makes everything look like a nail, in Mozart-Oz you have a language that is like walking into Ace hardware store, a swiss army knife of a language (conceptually speaking) that challenges you to become a highly skill code craftsman, not just a programmer.But, if only for the personal growth you will experience grappling with the concepts in this book, I recommend it very highly even to "non academic" programmers (like myself) as well as to any advanced student of computer science. It may be painful, you may scratch your head in places where the concepts just seemed to leap over your cranium, but if you are patient, do the exercises (and at least think about what it would take to tackle some of the research projects), you will grow.Unfortunately, you may find the languages you work on to be rather confining, and maybe even boring, after you get a whiff of what multi-paradigm programming can do. More likely, however, is that you will grasp very clearly how the language you code in today works, and that can only make you a better software engineer. So do it-buy this book!
Z**U
Good techniques, useless language
The authors cover a wide variety of programming concepts like functional programming, logic programming, object-oriented programming, concurrency, etc. The explanation is very clear. However, the language is useless outside of this book. It's supposed to be a research language, but the clunky codebase (Scala+ancient LLVM) goes untouched for long periods of time. The language itself has some weird quirks: the kind of code we write in the emacs development environment is very different from the code we write for standalone programs; it's the clunky semantics of "declare". The examples in the exercises are rather boring. They do the bare minimum to help us learn the programming technique, but I rarely went at them thinking they are going to be fun to solve.
D**R
Achtung beim Einkauf. Bin abgezockt worden.
Ich habe mich von der Angabe "Taschenbuch ab 20 Euro" täuschen lassen und habe ohne viel weiter zu schauen bestellt. Tatsächlich habe ich das Buch von jemilesbook für sehr stolze 154!!!! Euro bekommen. Das ist weit mehr als das gebundene Buch. Es ist noch dazu die indische Ausgabe die streng genommen in Europa gar nicht verkauft werden darf (das ist aber das Problem des Verlages). Jemilesbook spekuliert offensichtlich mit derartigen Fehlern des Käufers und Amazon bestellt wohl am liebsten über ihn, weil es so am meisten mit kassiert. Als ich auf diesen Fehler aufmerksam geworden bin, war das Buch bereits am Versandweg. Es erleichtert zumindest meinen bereits vorher gefassten Entschluß heuer keine Bücher mehr auf Amazon zu kaufen (so zumindest der Vorsatz).Das Buch habe ich bisher nur angelesen. Es ist ein dickes, fettes Lehrbuch. Die Autoren bezeichnen die Programmiererei als "Science". Meines Erachtens ist es ein (Kunst-)Handwerk. Ich bezeichne mich selbst am Liebsten als "Bitschnitzer". Sie wollen mit diesem Buch die Grundlage für diese Science legen. Darüber kann man diskutieren, sie haben jedoch umfangreiche Informationen für einen 8!-Semestrigen Uni Kurs zusammen getragen. Es gibt auch die entsprechende Programmiersprache Oz die man sowohl als exe als auch den Compiler-Kode herunter laden kann. Soweit ich gesehen habe ist der Compiler in Scala geschrieben. Laut Wikipedia ist Oz-Kode extrem langsam und ineffizient.Das Ganze macht einen sehr Akademischen Eindruck. Aber es ist auch vom Anspruch her "Science" und nicht "Craft" oder "Art of Programming".
A**N
SICP is a subset of CTM
If you have read and savoured SICP, then it is enough to say that SICP is a subset of this book. This book, CTM, has a whole lot to offer. No matter how much of experience you already have, this book sure gives you many new insights and reinforces what you already know. This book isnt a easy read. It is quite demanding. Nevertheless, it is worth the effort. This is a book which you read once and go back to it again and again and every time you flip through the pages, something new strikes you.So why not 5 stars? I deducted one start for the Oz language.Though the intent of using a single language to demonstrate all paradigms is good, Oz, as a language doesnt strike a chord. It feels as though it is not of any use learning this language other than to understand the material in this book. Instead using the popular languages in the context where the language's paradigm is most powerful might have been an option.This book is a must read and sits alongside SICP on the top row of my bookshelf.
T**B
Gute Einführung in die Konzepte der Programmiersprachen
Das Buch beschreibt alle Programmierparadigmen und behandelt sie mit der frei im Internet verfügbaren Software Mozart / Oz mit einer Programmiersprache. Es vereint also alle Paradigmen in einem Buch bzw. einer Programmiersprache.
R**H
I got this book and when I started to read ...
I got this book and when I started to read i found that at the last of the books pages from 460-692 are missing. Very bad
Trustpilot
3 weeks ago
2 months ago