The Craft of Prolog (Logic Programming)
K**Y
Would recommend despite issues
This is the best source on advanced Prolog I've seen in print. The author discusses a variety of basic software engineering tips for working with Prolog, and some of these are quite helpful. Examples are usually very good and complete. Overall, I would recommend this book to someone else, especially if they had just started to get their feet wet with Prolog.That said, there are a few issues. For one, a surprising amount of information is not very relevant nowadays, since a lot is specialized towards different engines which were popular at the time it was written. An entire chapter is devoted to how different engines at the time worked and the sort of optimizations they performed, which isn't very useful. A bigger issue is that content-wise, if you've spent awhile with Prolog already, there isn't likely to be a lot to pick up. I found that the book tended to endorse patterns I was already using, which I'd figured out through reading online or basic trial and error. It was good to know that I wasn't going off in some weird direction, but there wasn't a lot of new content to me.The author tends to be inconsistent with himself. Early on, he describes a bunch of rules for how code should be structured, and explains basically that this is how everyone should be doing it. He then proceeds to violate his own rules on a multitude of occasions, and only occasionally mentions why there's a violation.By far, the biggest issue I had with this book was that I found the author's attitude to be _extremely_ condescending, to the point where I literally burst out laughing at multiple points at the sheer ridiculousness of it. Two examples:1.) At one point, he states that something shouldn't be done a certain way, because it would be very tricky to get right. He then puts in parenthesis that he's done it before. This only serves to inflate his own ego; it doesn't add a thing to the writing.2.) He takes an example from some other work at some point. He explains at length that the example is badly written, and proceeds to rewrite it. He never cites the work he takes it from _as a favor to the author of the work_ - he explains the work is overall good, but the example is so bad that it would disincline people to read the work. I have no idea what he's referencing, and I would actually like to read it because the example isn't actually bad.
B**N
but it's nice to have a record of the techniques all in ...
A classic -- written by one of the experts in this field. I once attended a week-long workshop by Mr. O'Keefe, so much of this material was already familiar to me, but it's nice to have a record of the techniques all in one place.
W**E
Good book as a 3rd book on Prolog
After Clocksin and Mellish (book 1) and the Art of Prolog (book 2) this is a good book 3! The author makes some very helpful critiques and suggestions about style, flow, order, structure and content of Prolog code. It will take some thought to get your head around but it is worth the effort. Recommended.
P**R
great book - really in-depth
An incredible book, the authors are clearly extremely smart. You will learn prolog. Has a lot of computer science theory and vocabulary, so it is not for the layman to pick up and read. I'm sure it also helps to know other languages first.
G**A
The Craft of Prolog
The contents are too confusing and it is definately not for the beginner/intermediate level who want to learn and understand more about prolog.
A**H
Ancient wisdom
While the language, numbers, and examples in this book are rather dated, the wisdom it contains is timeless. There is experience you can get from this book that you can't get from any other source.
S**S
a definitive resource
A common opinion nowadays, I suspect, is that Prolog is a neat hack that ran wildly out of control. And it is an opinion that is easy defend, and one with which I even have a lot of sympathy: not only does Prolog have substantial and not-really fixable problems as a 'serious' programming language, but it was also, in the aftermath of the 5th-generation hype, the inspiration for a lot of embarrassingly bad theoretical and quasi-theoretical research on 'logic' programming in the late 1980's and early 1990s. On the other hand, Prolog is also distinguished by some of the best books on progamming I have ever read: not just O'Keefe's 'The Craft of Prolog', but also, e.g., Sterling and Shapiro's 'Art of Prolog' crowd into the (depressingly small) queue formed behind the likes of 'Structure and Interpretation', 'the Science of Programming' and 'Programming Tools'. The existence of such books means that Prolog must have gotten _something_ substantial right.Further, while in theory I divide the the set of all programming languages into clean Lisp dialects (i.e. scheme, ml, haskell) on the one hand, and other programming languages that are inadequate to the extent that they diverge from the Scheme/ML model on the other, I find that a lot of the time it is actually Prolog that provides the best tool for modelling the transaction-handling systems that I have to deal with in the course of earning my bread.Whether you use Prolog or not, if you are serious about programming then you want to have a copy of this, simply because it shows how a world class programmer negotiates an unusual, but interesting, programming paradigm. And, as O'Keefe himself is, or at least used to be, fond of pointing out, your skill as a programmer is substantially correlated with the number of different such paradigms that you understand properly, and not very much with anything else.Highly recommended if you are really interested in advanced programming.
P**K
A thorough collection of great advice
This is not an introductory book! A certain level of experience with Prolog is necessary for appreciating and understanding the problems and solutions offered. This said, the book contains a very exhaustive collection of advice on how to tackle a range of programming problems. This is done in a very instructive manner. The author does not offer ready solutions, but works his way to a final, optimal solution while showing each step and highlighting and explaining the decisions along the way. He also offers great insight into the trade-offs each possible solution to a problem can have in different situations. The details on Prolog implementations however are, naturally, quite outdated. This is also the reason why this is a 4-star review.This remains, however, an excellent book that explains the Prolog programming paradigms and teaches a pragmatic, clean, and very idiomatic programming style. As a bonus, it covers a lot of important detail that often remains untouched in available Prolog learning material.
L**R
Waste of money
The book clearly lacks any kind of structure, it seems the author just wrote down what came to his mind but without further structuring.Also, the author fails in really showing the Craft of Prolog, as he does not deal with ISO Prolog but instead Quintus Prolog and DEC Prolog (anyone still uses it?). As those implementations differ from ISO Prolog, the book is rather futile for modern Prolog systems, following the ISO standard
Trustpilot
2 weeks ago
2 months ago