Before discussion a few points:
- Declarative langauges like Prolog, Lisp, OCaml, Haskell…
- I am a strong supporter of declarative languages
- I come from a Prolog background, so, some comments might not be 100% suited for the functional programming world
- By failure I mean lack of mass usage
I see mainly 3 reasons for the failure of declarative languages:
Unprepared audience
Most programmers have either lack of interest (entered the profession solely for money reasons) or lack of formal training. If for the great majority of programmers a change from C++ to Java is seen as a “great step”, imagine then a change to a language that in practice requires a “mental reboot”.
Academic bias
An example: regarding XSB Prolog, I once asked one of the authors why they didn’t have support for readline on U*ix variants, the answer: “We cannot write a paper on readline support for XSB”. The funnier part is that they use XSB in a commercial environment, yet still, they don’t see any interest in supporting a very simple productivity feature. Of course there are Prologs that are more usage friendly, but still the mentatility in the vast majority of the Prolog community seems to be towards a strong academic bias.
Also, for the most Prologs, a simple production grade database access library seems to be asking for too much. A SOAP connector? Even a simple connector to an existing XML/C parsing library in most Prologs is not to be found…
The functional side seems to be a bit better, but still the situation seems, in most cases, far from good.
Excessive self-confidence
It goes like this: “We are good, we are better the others, so, others (the vast majority), convert and be assimilated. We do nothing to help bridging the 2 sides”. Of course, this approach is doomed to fail. Although I believe that part of the excessive self-confidence can be justified
, this type of strategy leads nowhere.
Please share your thoughts
Filed in: declarative programming










