I tried learning Prolog for a while, really I tried. I bought a copy of Clocksin and Mellish, read it and did the exercises (just like I read Kernighan and Ritchie before I had a C compiler, in 1979), thought I had it all down, thought I understood the cut and all of that, sat down in front of Turbo Prolog and nothing happened.
What I mean is, nothing much came of it. I could solve a simple whodunnit, get the cannibobbles across the river without losing any missionaries or ducks, and figure out that two lists weren’t the same, but I couldn’t do anything that was worthwhile.
This was the mid-80s. Japan was advancing upon us with the Fifth Generation Project; they’d chosen Prolog, and they were going to Crush America under the heels of their massive inference engines.
I tried more books; Shapiro offered a more scholarly view of Prolog, and there were some more books on logic programming. I bought ’em and tried to read them. I no longer cared. In fact, I hated it. There was some nice coverage in Abelson and Sussman, but I realized that without application, without the ability to do something really useful, it was a dead end. Warren’s Abstract Machine was something of a lark, a great exercise in language machine design, but again not really good for anything, not even a video game or a widget you could sell someone.
Prolog techniques are useful; from time to time a problem comes up where some of the search logic makes sense. You want to unify some lists, or do some data-driven programming that needs to be highly malleable. Perfect.
I guess I’ll never do AI. Most people don’t. It’s okay.