Prolog is awesome as a library, embedded in another "normal" language.
Prolog as a culture is amazing; the depth of it, specially when it's submerged in other disciplines, like constraint logic programming.
But, standalone, as a language, by itself: it either forces your problem into a text-book toy exercise, or drives you to frustration. It does all the difficult stuff out of the box, but you will need to cut through it with a machete to accomplish the mundane.
My experience is the opposite. I work on a parsing/generation system that was developed in our group. Such a system consists of mundane parts (rewriting trees, applying a log-linear model) and sophisticated parts (parser, generator, guidance, grammar recompilation), and I find both to be natural in Prolog.
I suspect that you have just used the wrong tool for the job. Prolog works well for problems that require reasoning, and unification extensively. But if you are trying to write, say, a parameter estimator in Prolog, you are using the wrong tool for the job.
Prolog as a language has great features. Checkout out ciao prolog and others and you will know what you can do with it rather than just perceiving it as a library or some embedded language.
Prolog as a culture is amazing; the depth of it, specially when it's submerged in other disciplines, like constraint logic programming.
But, standalone, as a language, by itself: it either forces your problem into a text-book toy exercise, or drives you to frustration. It does all the difficult stuff out of the box, but you will need to cut through it with a machete to accomplish the mundane.