Cons:
* inadequate support for higher order programming
* lacks declarative enough semantics
* edge cases which resist equational reasoning on programs
* badly written standard
* lacks module systems, no standard module system
* none of you even understand prolog well enough for any of this to matter to you