Earlier quoted context omitted.
I'm first of all excited by the fact that this made first page on HN. I didn't realise there was that much interest in Prolog news (as in more than two or three people). Also, having more open-source Prolog engines is a very good thing, both for the language and for the project itself. For the project, it's good because it makes it easier for a community to grow around it. Swi has benefited enormously from its popula…
That makes sense. Ensuring compatibility and network effects were key attributes successful software in Gabriel's Worse is Better essays. That Prolog implementations have inadvertently sabotaged that effect probably contributes to them being less niche than they would be. Btw, have you tried Mercury? My last foray into logic programming made it seem like it was killing Prologs in quite a few fronts. Prover work moved…
Ouch. Oh dear, that sounds horrible.
>> Btw, have you tried Mercury?
I've picked it up a few times but I keep coming back to vanilla Prolog. It's great but I'm a bit scared by the tiny amount of adoption. I know it's kind of ironic: low adoption feeds back on to itself.
>> Any ideas on why it's worth keeping around or would you use an alternative today?
I do a lot of nlp for university, and although I use Python for all the machine learning stuff, the text processing capabilities of Prolog are beyond any comparison with anything else.
For instance, everyone uses regular expressions for tiny bits of parsing and string manipulation. Prolog uses a sort of pattern matching, unification, that is like regular expressions except without any special syntax and Turing-complete.
For language processing, most interpreters have something called Definite Clause Grammars. In short, it's syntactic sugar that lets you declare a grammar, except the grammar is also a parser, that recognises and generate strings (because Prolog). They make developing a parser a piece of cake.
Also, Prolog runtimes are essentially fast, in-memory relational databases, with added reasoning (and no SQL). I can think of many applications that could use that sort of thing. Plus, the language itself is the database, so there's no object-relational impedance mismatch and whatnot.
>> Might try to read some of it this week if I get spare time even though idk Prolog anymore
Thanks, I appreciate that. But please keep in mind: 5 years ago and embarrassing :)