May 17, 2026

Logic language, emotional damage

Prolog Coding Horror

Prolog fans were warned not to get clever, and the comments instantly split into eye-rolls and obsession

TLDR: The article warns Prolog programmers not to use clever shortcuts that make programs quietly miss answers or behave unpredictably. In the comments, skeptics called the warning overblown while fans defended the language with near-religious enthusiasm, turning a coding lesson into a niche internet identity battle.

A gloriously dramatic Prolog essay basically looked programmers dead in the eye and said: stop making your code weird just because you can. The author’s big message was that some favorite tricks can quietly make programs miss valid answers, depend on hidden state, or spit results straight to the terminal in ways that are hard to test later. In plain English: if your logic tool is supposed to help you reason clearly, don’t turn it into a haunted house of surprises.

But the real show was in the reactions. One camp was deeply unimpressed, with crustycoder swatting the whole thing away as “Mostly overblown.” That set the tone for a mini culture clash: is this a vital warning from a wise elder, or just niche language pearl-clutching? Then appil came in with the question hovering over the whole thread: what do people even use Prolog for in real life? Ouch. That comment gave the discussion a wonderfully awkward energy, like showing up at a fan convention and asking whether the show ever had any good episodes.

Meanwhile, the true believers arrived right on schedule. One commenter declared a “weird obsession with Prolog” and started recommending more reading like it was underground literature for logic-language romantics. Another went full professor mode, insisting that if you really want to understand this stuff, you need the famous four-port model. And perhaps the spiciest reaction of all came from someone marveling at the article’s implication that wrong answers might be more tolerable than missing answers—a take so cursed it practically begged for a comments war. In other words: tiny programming language, huge feelings.

Key Points

  • The article says Prolog programs can be defective by returning wrong answers or by failing to return intended solutions.
  • It identifies impure and non-monotonic constructs such as `!/0`, `(->)/2`, and `var/1` as a main cause of lost solutions.
  • It warns that using global database operations like `assertz/1` and `retract/1` creates implicit dependencies and order-sensitive behavior.
  • It argues that printing directly to the terminal from predicates makes output harder to test and reduces relational reuse of code.
  • It recommends newer declarative techniques, including `dif/2`, `if_/3`, `format_//2`, and `CLP(FD)`, instead of lower-level constructs.

Hottest takes

"Mostly overblown." — crustycoder
"What do people use Prolog for in the real world?" — appil
"a somewhat weird obsession with Prolog" — schmuhblaster
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.