Ask HN: Could a faster Prolog have succeeded in industry?
I've read most of what's available in English regarding the Japanese FGCP and their use of Prolog derivatives. What strikes me in all that I've read, is that the "failure" of the enterprise is attributed just to the poor performance they were able the achieve compared to object-oriented procedural programming. I haven't seen any evaluation of the FGCP approach in regard to the practicalities of software production.
From their early publicity, it's clear that the FGCP was aimed at programming in the large, the kind of projects now done with hundreds of programmers using C++ or Java. Consider a typical Java programmer in industry. How well would that person adapt to logic programming?
My suspicion is that even if the Japanese had gotten KL-1 performing like C++, there still would have been tremendous difficulty shifting programmers to that paradigm. I expect that a highly-performant parallel Prolog would have been received about like Haskell has been.
Any anecdotal evidence for or against this?
7 comments
[ 2.7 ms ] story [ 20.7 ms ] threadLogic programming is a bad programming paradigm. The reason strictly evaluated imperative languages like Scheme or C++ are popular is because in these languages, you tell the computer what to do.
1.) The Japanese bubble economy collapsed. They realized they'd have to stop funding it, and put their ambition to be the biggest AI power in the world aside.
2.) Logicist AI was losing ground to probabilistic AI.
3.) Special purpose machines were much more expensive to design and build than running the same programs on commodity general purpose machines. The Lisp machines ultimately suffered the same fate as the Japanese PIM machines.
4.) They weren't ready to deploy concurrent prolog. They hadn't worked it all out even theoretically. They were hoping that running it concurrently would speed it up, but probably realized that smarter algorithms and optimized implementations in individual programs would have a greater effect.
5.) They rushed the project, rolling out machines and languages before they had been fully worked out. The rushing mentality caused them to increase the expense of their mistakes and to make more mistakes than they might have if they didn't rush.
Also, I disagree that prolog hasn't been a commercial success. For example, Prolog is the right language for solving finite domain contraints and there is a mini-industry around this.
As far as shifting programmers, they had quite a few skilled prolog programmers and they weren't recruiting from the ranks of the then COBOL business programmers.
BTW, where have all those skilled Prolog programmers been hiding since then?
Ultimately, it felt like less of a speed problem or even a design and personnel problem than a simple matter of taste. In other words, the reason why prolog isn't more widely used is because no one _wanted_ to train people to use it, the way they trained people to use scheme, c,c++,java, and now python. For some reason, logic and logic programming was distasteful to some influential people and many unfavorable conclusions were drawn about it without much foundation, whereas similar issues in other programming paradigms tended to be glossed over.
[edit] AFAIK those Japanese FG guys dispersed into academia and industry. But in the meantime, there was a development of being able to use multi-paradigm programming in a variety of languages including Java, so it's possible they are using other languages where appropriate parts of programs are written in the logic programming paradigm.
AutoBayes: http://ti.arc.nasa.gov/opensource/projects/autobayes/ by the same group that did AutoClass, one of the original publically available clustering codes.
PRISM, http://sato-www.cs.titech.ac.jp/prism/