I like Prolog. I think that it’s a brilliant tool. And not purely educational, unlike what many people think. You can actually use it to build real, useful, and practical applications: sudoku solvers, adventure games, formal logical systems, and a lot more. It might not be the best tool for developing AAA games and real-time systems, but that doesn’t make it useless. I discovered Prolog during university, and I appreciate it since then.
At that (university) time, Paul Graham’s “Hackers and painters” was considered a good book containing innovating programming ideas, so I decided to read it. In one section of the book, Paul is comparing a few programming languages, but Prolog is not mentioned at all. So I decided to send him an email and ask his thoughts about it. His answer was something like the following (paraphrasing): “Forget about Prolog and use Lisp which is a real programming language”.
I actually like Lisp (a lot), but I think that this is a bad answer. There’s no such thing as a real programming language. And there’s no single language that beats them all. That was only a Middle Earth thing, when Sauron made the one ring to rule them all. But in the programming world things are different. It is ok to have a single favorite language, but all programming languages have strengths and weaknesses, so being a polyglot is also a good thing. Here’s my humble opinion: Use the language that clicks with you. Don’t listen to the crowd. And avoid toxic people and opinions, everything that tries to make you feel bad for using your favorite language.
And an advice to you dear language zealots. When somebody tells you that their favorite language is X, instead of discarding them and trying to convert them because your favorite language Y is superior, ask why. They will most likely give you a very valid reason. For example, they might tell you that they use PHP because they are developing WordPress websites to pay their bills, or Python/R because they are working in Machine Learning and these languages have the best library and community support. It’s good if we speak less, and listen more. And by listen I mean try to understand the speaker’s point, not act kind and then start our monologue.
Happy Coding :)