I'm really fascinated by the resurgence of some of these old languages. I vaguely understand that the paradigm behind Prolog is quite different compared to oops or functional languages. Can anyone please help me understand where is this really useful? As everything is data oriented these days, is Prolog a good language for doing statistics or ML or scientific computing?

Statistics, no. Machine learning, yes. The most successful inductive programming approaches (learning programs from data) are Inductive Logic Programming approaches that basically learn Prolog programs from data. Prolog as a language with an automated deductive theorem prover as an interpreter is uniquely suited to learning new prorgams, because, it turns out, induction (learning new theories from observations and existing theories) is the inverse of deduction (explaining observations with existing theories).

For some modern examples of learning Prolog programs with Prolog see:

1. Metagol:

https://github.com/metagol/metagol

2. Louise:

https://github.com/stassa/louise

3. Popper:

https://arxiv.org/abs/2005.02259

The first repo has a list of biblio right at the end, though it's a bit too formal maybe.

Full disclosure: I started my PhD on Metagol and Louise is my work.

For scientific computing, check out this paper:

Using logic programming for theory representation and scientific inference

https://www.sciencedirect.com/science/article/pii/S0732118X2...

And see repo with code here:

https://jeanchristopherohner.github.io/theory-toolbox-2/