--- Mark Kvale <[EMAIL PROTECTED]> wrote:
> I would opt for a couple of small examples that are almost
> self-explanaotry
> and then describe in a high level way a seriously useful Prolog
> application. 

Sounds workable.

> However, I am happy to be a devil's advocate as well :-) Here are
> some 
> aggressive questions you might have to field from folks who have
> heard of 
> Prolog:

Wonderful idea!  Thanks.  Let me know if you think I'm goofing any of
these.

Preface:  I'd like to show programmers how to use Prolog from their
Perl programs, not just how to use Prolog.

> 1) Prolog was hot in the 80's but is hardly ever used these days. If
> it hasn't stood the test of time, why should I care?

Prolog has traditionally been viewed as rather slow and, due to the
nature of its design, debugging is sometimes a painful experience. 
Further, because so many programmes are weaned on imperative or OO
languages, Prolog just seems "foreign".  Building large applications
can be cumbersome, as a result of these factors.

I argue that programmers should use Perl for the bulk of the work and
use Prolog for those portions of the application where a rule-based
approach is clearly merited, or where data is heavily relational in
nature.  Thus, they can leverage the strengths of logic programming
only when it's cleary a good choice.

> 2) There are about 20 Prolog compilers out there, all incompatible
> due to a 
> weak language spec. This a recipe for vendor lock-in; how could I
> make my 
> prolog programs last?

Hopefully, my long-term goal is to port the bulk of AI::Prolog to C and
write a "sugar" wrapper that allows someone to write logic programs in
Perl.  Eventually, I might consider a WAM (Warren Abstract Machine) in
Parrot.  I'd like to avoid the external dependencies.  However, for the
time being, if you can figure out Language::Prolog::Yaswi, it's a good
choice, though it does require SWI-Prolog.

> 3) Why is Prolog a good match with Perl?

Perl can already handle functional, OO, and imperative progamming. 
However, if a declarative approach is merited, it's rather tough to
pull that off in Perl.  I'd like to solve that.

> 4) Pretty CS langauages are all well and good, but how do I get real
> work 
> done? Are there Prolog bindings for databases, network  and systems 
> libraries, graphical toolkits? Is there a decent Prolog IDE?

I would argue that most of that should be done in Perl and let the
Prolog layer handle only those bits that Perl is not well suited for.

Cheers,
Ovid

If this message is a response to a question on a mailing list, please send
follow up questions to the list.

Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/

Reply via email to