From: Laurence Kramer
Subject: JOB: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40915ea3$1@news.unimelb.edu.au>
We have one or two job openings for people interested
in doing software development and maintenance in a research
setting.  We strongly prefer candidates with experience in Common
Lisp, but will consider people with a good CS background
and little Lisp experience but with a desire to learn.

For more information see:
http://www.ozone.ri.cmu.edu/openings.html

Contact me by email if interested.

Larry Kramer
Associate Director, Intelligent Coordination and Logistics Lab
The Robotics Institute
Carnegie Mellon University

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]

From: wim
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40990e2b$1@news.unimelb.edu.au>
"Laurence Kramer" <·······@cs.cmu.edu> wrote in message
···············@news.unimelb.edu.au...
> We have one or two job openings for people interested
> in doing software development and maintenance in a research
> setting.  We strongly prefer candidates with experience in Common
> Lisp, but will consider people with a good CS background
> and little Lisp experience but with a desire to learn.

Out of curiousity, why is LISP so highly regarded in the AI field still?
Pardon my ignorance, but I thought something more akin to Prolog might
be better.
I would love to get a job like this by the way, but I have only had some
experience with Scheme at a study level.

>
> For more information see:
> http://www.ozone.ri.cmu.edu/openings.html
>
> Contact me by email if interested.
>
> Larry Kramer
> Associate Director, Intelligent Coordination and Logistics Lab
> The Robotics Institute
> Carnegie Mellon University
>

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
------------ And now a word from our sponsor ---------------------
For a secure high performance FTP using SSL/TLS encryption
upgrade to SurgeFTP
----  See http://netwinsite.com/sponsor/sponsor_surgeftp.htm  ----
From: Oyvin Halfdan Thuv
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40995b6c$1@news.unimelb.edu.au>
"wim" <·····@labyrinth.NOnet.SPAMau> writes:

> "Laurence Kramer" <·······@cs.cmu.edu> wrote in message
> ···············@news.unimelb.edu.au...
> > We have one or two job openings for people interested
> > in doing software development and maintenance in a research
> > setting.  We strongly prefer candidates with experience in Common
> > Lisp, but will consider people with a good CS background
> > and little Lisp experience but with a desire to learn.
> 
> Out of curiousity, why is LISP so highly regarded in the AI field still?
> Pardon my ignorance, but I thought something more akin to Prolog might
> be better.

It depends on which field you are working in. If you are creating a 
system based on genetic algoritms the answer should be fairly obvious:
Lisp will program it self with ease since functions are first class
objects. New functions can be programmed at runtime by the system it self
for example. It is also symbol-handling, wich for many reasons is useful
in AI.

Other areas suits both languages: parsing and generation of natural languages
comes to mind. Prolog is nice for areas like automated reasoning and rule-
based systems, but Lisp will do that as well (you can even run Prolog
interpreters in Lisp if you really have to).

-- 
Oyvin

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Ari Johnson
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <409a86ce$1@news.unimelb.edu.au>
Oyvin Halfdan Thuv wrote:
> Other areas suits both languages: parsing and generation of natural languages
> comes to mind. Prolog is nice for areas like automated reasoning and rule-
> based systems, but Lisp will do that as well (you can even run Prolog
> interpreters in Lisp if you really have to).

...to the extent that one of the example programs from _On Lisp_ is a 
Prolog.

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Don Geddis
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <409a8696$1@news.unimelb.edu.au>
"wim" <·····@labyrinth.NOnet.SPAMau> wrote on Wed, 05 May 2004:
> Out of curiousity, why is LISP so highly regarded in the AI field still?

Lisp is a superbly designed language, appropriate for almost any application.
Especially for solving problems where the solution isn't well understood,
and much trial and error (aka rapid prototyping) is required.

AI happens to be filled with many problems like this.

> Pardon my ignorance, but I thought something more akin to Prolog might
> be better.

Logical inference is a part of the solution of many (but not all) AI problems.
However, automated deduction doesn't work very well (yet?) to solve non-trivial
problems.

Experience shows that languages like Prolog are less easy to use than
procedural languages, especially when trying to encode procedural information
(such as an algorithm).

That's not to say that an AI system might not want a rules engine also.
But merely that logical rules and deduction (aka Prolog) isn't the best
substrate for much of the effort.

A good procedural language is better.  And Lisp is one of the best.

        -- Don
_______________________________________________________________________________
Don Geddis                  http://don.geddis.org/               ···@geddis.org
The most important thing in the programming language is the name.  A language
will not succeed without a good name.  I have recently invented a very good
name and now I am looking for a suitable language.  -- D. E. Knuth, 1967

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Nameless
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <409ed89f$1@news.unimelb.edu.au>
"Don Geddis" wrote in message
···············@news.unimelb.edu.au...
> "wim" <·····@labyrinth.NOnet.SPAMau> wrote on Wed, 05 May 2004:
> > Out of curiousity, why is LISP so highly regarded in the AI
> > field still?
>
> Lisp is a superbly designed language, appropriate for almost
> any application. Especially for solving problems where the
> solution isn't well understood, and much trial and error (aka
> rapid prototyping) is required.
>
> AI happens to be filled with many problems like this.
>
> > Pardon my ignorance, but I thought something more akin to
> > Prolog might be better.
>
> Logical inference is a part of the solution of many (but not
> all) AI problems. However, automated deduction doesn't workal
> very well (yet?) to solve non-trivi problems.
>
> Experience shows that languages like Prolog are less easy
> to use than procedural languages, especially when trying to
> encode procedural information (such as an algorithm).

One of the qualities of Prolog is that it allows procedural
programming, and consequently is constantly under attack by
LP'ers, who just happen to be those who use Prolog most! :)

> That's not to say that an AI system might not want a rules
> engine also. But merely that logical rules and deduction (aka
> Prolog) isn't the best substrate for much of the effort.

In many instances Prolog is, it all depends on the nature
of your application.

> A good procedural language is better.  And Lisp is one of the
> best.

I don't buy that either. Firstly, Lisp is a functional, not
a procedural, language. Secondly, GUI's are better done in
an object oriented or procedural language, as are _some_
solutions to algorithmic problems. The truth is that most
AI/CI problems are better tackled by using a combination of
programming languages.

Ignorance is bliss, but you shouldn't always display it. :)

-- 
Mail sent to this email address is automatically deleted
(unread) on the server. Send replies to the newsgroup.

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
------------ And now a word from our sponsor ------------------
Do your users want the best web-email gateway? Don't let your
customers drift off to free webmail services install your own
web gateway!
--  See http://netwinsite.com/sponsor/sponsor_webmail.htm  ----
From: Christopher Browne
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40a1374b$1@news.unimelb.edu.au>
A long time ago, in a galaxy far, far away, "Nameless" <·········@chello.no> wrote:
>> A good procedural language is better.  And Lisp is one of the
>> best.
>
> I don't buy that either. Firstly, Lisp is a functional, not a
> procedural, language.

Nonsense.  It includes some functional facilities, but if you're into
"functional programming," ML and Haskell are likely to be vastly more
fitting.

Lisp functions in a nicely procedural manner:

(loop 
     for i from 1 to n by 3
     do (something-with i))

If it were purely functional, there wouldn't be the side-effects of
SETF and such.

> Secondly, GUI's are better done in an object oriented or procedural
> language, as are _some_ solutions to algorithmic problems. The truth
> is that most AI/CI problems are better tackled by using a
> combination of programming languages.

I would totally agree that GUIs are almost ideally managed using some
sort of object oriented system, as they typically involve abstractions
that are very nicely described via a hierarchy of classes
(characterizing different aspects of the GUI) that accept
messages/methods tailored to each sort of instance.

There aren't "object oriented" languages; there are languages that
_include_ "object-oriented" programming techniques.
-- 
If this was helpful, <http://svcs.affero.net/rm.php?r=cbbrowne> rate me
http://www3.sympatico.ca/cbbrowne/lisp.html
Rules of the Evil Overlord #37. "If my trusted lieutenant tells me my
Legions of Terror are losing a  battle, I will believe him. After all,
he's my trusted lieutenant." <http://www.eviloverlord.com/>

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Yarden Katz
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <41841e2d$1@news.unimelb.edu.au>
Christopher Browne <········@acm.org> writes:

> A long time ago, in a galaxy far, far away, "Nameless" <·········@chello.no> wrote:
>>> A good procedural language is better.  And Lisp is one of the
>>> best.
>>
>> I don't buy that either. Firstly, Lisp is a functional, not a
>> procedural, language.
>
> Nonsense.  It includes some functional facilities, but if you're into
> "functional programming," ML and Haskell are likely to be vastly more
> fitting.
>
> Lisp functions in a nicely procedural manner:
>
> (loop 
>      for i from 1 to n by 3
>      do (something-with i))
>
> If it were purely functional, there wouldn't be the side-effects of
> SETF and such.

You are obviously right in your point, but is "procedural" the first
characterization of Lisp that comes to your mind?  In my opinion both
"procedural" and "functional" as one-word characterization of Lisp are
flawed, although the latter is probably more flawed than the former.
-- 
Yarden Katz <······@umd.edu>  |  Mind the gap

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Don Geddis
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40a137c2$1@news.unimelb.edu.au>
I wrote:
>> Experience shows that languages like Prolog are less easy
>> to use than procedural languages, especially when trying to
>> encode procedural information (such as an algorithm).

"Nameless" <·········@chello.no> wrote on Mon, 10 May 2004:
> One of the qualities of Prolog is that it allows procedural
> programming, and consequently is constantly under attack by
> LP'ers, who just happen to be those who use Prolog most! :)

Yes, Prolog "allows" procedural programming.  But my point was that if you
happen to be encoding a procedural algorithm, Prolog is not the most
convenient form to encode it.

Prolog's bias is clearly towards declarative rules, non-determinism, and
backtracking.  If that doesn't match your problem domain, then Prolog is
more awkward than other alternatives.

>> A good procedural language is better.  And Lisp is one of the
>> best.
>
> I don't buy that either. Firstly, Lisp is a functional, not
> a procedural, language.

You seem to have unfortunate misconceptions of Lisp that are decades out of
date (if they were ever true).

Common Lisp, the most popular and industrial-strength variety, is a
multi-paradigm language.  It is far from purely "functional" as a programming
language, and in fact is often used in a straightforward procedural fashion.

> Secondly, GUI's are better done in an object oriented or procedural
> language, as are _some_ solutions to algorithmic problems.

Common Lisp includes CLOS, one of the best-designed object oriented systems
out there.  If your goal is a combination object oriented/procedural
language, Common Lisp would seem to fit the bill.

> The truth is that most AI/CI problems are better tackled by using a
> combination of programming languages.

A combination of programming styles, perhaps.  As it turns out, Common Lisp is
an excellent substrate for a variety of different programming styles (e.g.
functional, procedural, object-oriented, etc.).

Common Lisp's main failures are the tightness of interaction with the rest of
the computing world, for example the underlying operating system or perhaps
some needed pre-existing libraries.  In addition, it isn't very popular in the
world today, and there are a variety of 2nd-order negative consequences to
choosing to work with an unpopular language.  (Note that this is independent
of the quality of the language's design.)

But for a standalone programming project, it's hard to beat.  Since this whole
thread came up in the context of why (some) university AI projects "still"
use Lisp, the answer is still that it's a pretty darn good language for almost
any programming project.  And university AI projects are often very hard
but standalone problems, which is a good match for Lisp's strengths.

> Ignorance is bliss, but you shouldn't always display it. :)

I agree with the sentiment, but might change the target to whom it was
addressed.

        -- Don
_______________________________________________________________________________
Don Geddis                  http://don.geddis.org/               ···@geddis.org
If your friend is already dead, and being eaten by vultures, I think it's okay
to feed some bits of your friend to one of the vultures, to teach him to do
some tricks.  But ONLY if you're serious about adopting the vulture.
	-- Deep Thoughts, by Jack Handey

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Nameless
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40a14c2d$1@news.unimelb.edu.au>
"Don Geddis" wrote:
....
> "Nameless" <·········@chello.no> wrote on Mon, 10 May 2004:
> > ...
> > Ignorance is bliss, but you shouldn't always display it. :)
>
> I agree with the sentiment, but might change the target to
> whom it was addressed.

:)  I stand corrected, Don, and I appreciate your, Chris
and Matt's update on the current status of Lisp.

-- 
Mail sent to this email address is automatically deleted
(unread) on the server. Send replies to the newsgroup.

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Aaron Sloman
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40a7e96f$1@news.unimelb.edu.au>
Don Geddis <···@geddis.org> writes:

> ....
> ....
> Yes, Prolog "allows" procedural programming.  But my point was that if you
> happen to be encoding a procedural algorithm, Prolog is not the most
> convenient form to encode it.

I tend to feel the same way about prolog, but people who are very fluent
with it will find it convenient for far more than those who are less
fluent.

Convenience is a bit like beauty: in the eye of the beholder.

> Prolog's bias is clearly towards declarative rules, non-determinism, and
> backtracking.  If that doesn't match your problem domain, then Prolog is
> more awkward than other alternatives.

In addition, prolog's use of unification is very powerful in some
contexts, e.g. parsing, symbolic algebra various algorithms for matching
and transforming structures.

In particular, whereas ordinary pattern matching does not allow two
variables to be matched, prolog allows two variables to be 'unified' so
that if one ever subsequently gets instantiated the other will also. In
other languages you have to do this sort of thing by explicitly
associating some data-structure (e.g. a reference) with both variables.

Prolog does that automatically 'behind the syntax' including
automatically undoing the assignment during backtracking.

> >> A good procedural language is better.  And Lisp is one of the
> >> best.
> >
> > I don't buy that either. Firstly, Lisp is a functional, not
> > a procedural, language.
>
> You seem to have unfortunate misconceptions of Lisp that are decades out of
> date (if they were ever true).

Yes: I often hear it said that Lisp is a functional language: somehow
that untruth has got into the folklore of computer science and has
spread. I guess it may be partly because Lisp has a core that can be
used for a functional programming style, somewhat like Scheme, which is
closer to a pure functional language. But Lisp has much much more in
addition, as you say.

(However Lisp and Scheme both lack the strong syntactic type mechanisms
of what theoretical computer scientists call 'functional languages',
e.g. Haskell, Miranda, ML).

>
> Common Lisp, the most popular and industrial-strength variety, is a
> multi-paradigm language.

This is a very important point. However I find that that concept is not
generally taught to computer scientists, and some of those who encounter
it think its a bad thing because they hanker after elegance and purity
-- partly because that means mathematical analysis of programs easier.

Mathematical analysability and pragmatic power seem to vary inversely.
(Compare predicate calculas and natural languages).

> It is far from purely "functional" as a programming
> language, and in fact is often used in a straightforward
> procedural fashion.

I agree that Common Lisp is a multi-paradigm language, as is Pop11,
which developed largely in parallel with Common lisp, but has some
differences in syntax (e.g. more conventional format) and semantics,
e.g. use of open stack (like Forth), which goes along with a very useful
class of closures using 'partial application'.

Both Lisp and Pop11 also allow syntactic extensions that extend the
paradigms that are well supported, including macros whose behaviour can
depend on previously compiled procedures, unlike macros permitted in
most programming languages.

Pop11 also allows extensions that are not translatable into pop11, but
incrementally compile to an intermediate level virtual machine.

Both languages are available in Poplog, which used to be an expensive
AI development package but is now free and open source:

    http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
    http://www.cs.bham.ac.uk/research/poplog/primer/START.html

> > Secondly, GUI's are better done in an object oriented or procedural
> > language, as are _some_ solutions to algorithmic problems.
>
> Common Lisp includes CLOS, one of the best-designed object oriented systems
> out there.  If your goal is a combination object oriented/procedural
> language, Common Lisp would seem to fit the bill.

Pop11 partly followed Common Lisp in this when the Objectclass library
was added, providing similar functionarity (multiple inheritance,
generic functions), but more attuned to the pop11 design philosophy.
(There aren't meta-objects.) This OOP extension made it much easier
to use pop11 to develop the graphical interface tools demonstrated in
the rclib and simagent sub-directories here:
    http://www.cs.bham.ac.uk/research/poplog/figs/

> > The truth is that most AI/CI problems are better tackled by using a
> > combination of programming languages.
>
> A combination of programming styles, perhaps.

Important distinction.

> As it turns out, Common Lisp is
> an excellent substrate for a variety of different programming styles (e.g.
> functional, procedural, object-oriented, etc.).
>
> Common Lisp's main failures are the tightness of interaction with the rest of
> the computing world, for example the underlying operating system or perhaps
> some needed pre-existing libraries.  In addition, it isn't very popular in the
> world today, and there are a variety of 2nd-order negative consequences to
> choosing to work with an unpopular language.  (Note that this is independent
> of the quality of the language's design.)

Yes: in part there are fashions, both in industry and in academe and the
fashions don't necessarily correspond to the best choices for a deep
education in AI.

Here at the University of Birmingham we still use pop11 to introduce
the AI half degree, even though Java is used to introduce general
Computer science and Software engineering. If pop11 were not available I
would recommend Lisp.

> But for a standalone programming project, it's hard to beat.  Since this whole
> thread came up in the context of why (some) university AI projects "still"
> use Lisp, the answer is still that it's a pretty darn good language for almost
> any programming project.  And university AI projects are often very hard
> but standalone problems, which is a good match for Lisp's strengths.

For first year AI students I have a set of slides (in PDF) for a lecture
on how AI differs from Software engineering, and explaining how some
of those differences imply different requirements in programming
languages.

One of the crucial differences is that whereas SE is generally concerned
to make something useful, meeting some relatively well defined
specification, AI is often an open-ended search for a working
explanation of some very complex naturally occurring phenomenon, e.g.
some aspect of human or animal intelligence whose scope is not well
understood. What is the ability to see? or to understand language?
(Of course, some Applied AI is software engineering.)

Talk 11, on AI development environments, attempts to explain this for
beginners:
    http://www.cs.bham.ac.uk/research/cogaff/talks/

Talk 10 attempts to answer the question 'What is AI?' for novices.
It's only a partial answer.

Aaron
===
====
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
FREE BOOK: http://www.cs.bham.ac.uk/research/cogaff/crp/
FREE TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: ·····@uwaterloo.ca
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <40a933e5$1@news.unimelb.edu.au>
Aaron Sloman <········@cs.bham.ac.uk> writes:

> Don Geddis <···@geddis.org> writes:
> 
> > ....
> > ....
> > Yes, Prolog "allows" procedural programming.  But my point was that if you
> > happen to be encoding a procedural algorithm, Prolog is not the most
> > convenient form to encode it.
> 
> I tend to feel the same way about prolog, but people who are very fluent
> with it will find it convenient for far more than those who are less
> fluent.
> 
> Convenience is a bit like beauty: in the eye of the beholder.
> 
> > Prolog's bias is clearly towards declarative rules, non-determinism, and
> > backtracking.  If that doesn't match your problem domain, then Prolog is
> > more awkward than other alternatives.
> 
> In addition, prolog's use of unification is very powerful in some
> contexts, e.g. parsing, symbolic algebra various algorithms for matching
> and transforming structures.
> 
> In particular, whereas ordinary pattern matching does not allow two
> variables to be matched, prolog allows two variables to be 'unified' so
> that if one ever subsequently gets instantiated the other will also. In
> other languages you have to do this sort of thing by explicitly
> associating some data-structure (e.g. a reference) with both variables.
> 
> Prolog does that automatically 'behind the syntax' including
> automatically undoing the assignment during backtracking.
> 
> > >> A good procedural language is better.  And Lisp is one of the
> > >> best.
> > >
> > > I don't buy that either. Firstly, Lisp is a functional, not
> > > a procedural, language.
> >
> > You seem to have unfortunate misconceptions of Lisp that are decades out of
> > date (if they were ever true).
> 
> Yes: I often hear it said that Lisp is a functional language: somehow
> that untruth has got into the folklore of computer science and has
> spread. I guess it may be partly because Lisp has a core that can be
> used for a functional programming style, somewhat like Scheme, which is
> closer to a pure functional language. But Lisp has much much more in
> addition, as you say.
> 
> (However Lisp and Scheme both lack the strong syntactic type mechanisms
> of what theoretical computer scientists call 'functional languages',
> e.g. Haskell, Miranda, ML).
> 
> >
> > Common Lisp, the most popular and industrial-strength variety, is a
> > multi-paradigm language.
> 
> This is a very important point. However I find that that concept is not
> generally taught to computer scientists, and some of those who encounter
> it think its a bad thing because they hanker after elegance and purity
> -- partly because that means mathematical analysis of programs easier.
> 
> Mathematical analysability and pragmatic power seem to vary inversely.
> (Compare predicate calculas and natural languages).
> 
> > It is far from purely "functional" as a programming
> > language, and in fact is often used in a straightforward
> > procedural fashion.
> 
> I agree that Common Lisp is a multi-paradigm language, as is Pop11,
> which developed largely in parallel with Common lisp, but has some
> differences in syntax (e.g. more conventional format) and semantics,
> e.g. use of open stack (like Forth), which goes along with a very useful
> class of closures using 'partial application'.
> 
> Both Lisp and Pop11 also allow syntactic extensions that extend the
> paradigms that are well supported, including macros whose behaviour can
> depend on previously compiled procedures, unlike macros permitted in
> most programming languages.
> 
> Pop11 also allows extensions that are not translatable into pop11, but
> incrementally compile to an intermediate level virtual machine.
> 
> Both languages are available in Poplog, which used to be an expensive
> AI development package but is now free and open source:
> 
>     http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
>     http://www.cs.bham.ac.uk/research/poplog/primer/START.html
> 
> > > Secondly, GUI's are better done in an object oriented or procedural
> > > language, as are _some_ solutions to algorithmic problems.
> >
> > Common Lisp includes CLOS, one of the best-designed object oriented systems
> > out there.  If your goal is a combination object oriented/procedural
> > language, Common Lisp would seem to fit the bill.
> 
> Pop11 partly followed Common Lisp in this when the Objectclass library
> was added, providing similar functionarity (multiple inheritance,
> generic functions), but more attuned to the pop11 design philosophy.
> (There aren't meta-objects.) This OOP extension made it much easier
> to use pop11 to develop the graphical interface tools demonstrated in
> the rclib and simagent sub-directories here:
>     http://www.cs.bham.ac.uk/research/poplog/figs/
> 
> > > The truth is that most AI/CI problems are better tackled by using a
> > > combination of programming languages.
> >
> > A combination of programming styles, perhaps.
> 
> Important distinction.
> 
> > As it turns out, Common Lisp is
> > an excellent substrate for a variety of different programming styles (e.g.
> > functional, procedural, object-oriented, etc.).
> >
> > Common Lisp's main failures are the tightness of interaction with the rest of
> > the computing world, for example the underlying operating system or perhaps
> > some needed pre-existing libraries.  In addition, it isn't very popular in the
> > world today, and there are a variety of 2nd-order negative consequences to
> > choosing to work with an unpopular language.  (Note that this is independent
> > of the quality of the language's design.)
> 
> Yes: in part there are fashions, both in industry and in academe and the
> fashions don't necessarily correspond to the best choices for a deep
> education in AI.
> 
> Here at the University of Birmingham we still use pop11 to introduce
> the AI half degree, even though Java is used to introduce general
> Computer science and Software engineering. If pop11 were not available I
> would recommend Lisp.
> 
> > But for a standalone programming project, it's hard to beat.  Since this whole
> > thread came up in the context of why (some) university AI projects "still"
> > use Lisp, the answer is still that it's a pretty darn good language for almost
> > any programming project.  And university AI projects are often very hard
> > but standalone problems, which is a good match for Lisp's strengths.
> 
> For first year AI students I have a set of slides (in PDF) for a lecture
> on how AI differs from Software engineering, and explaining how some
> of those differences imply different requirements in programming
> languages.
> 
> One of the crucial differences is that whereas SE is generally concerned
> to make something useful, meeting some relatively well defined
> specification, AI is often an open-ended search for a working
> explanation of some very complex naturally occurring phenomenon, e.g.
> some aspect of human or animal intelligence whose scope is not well
> understood. What is the ability to see? or to understand language?
> (Of course, some Applied AI is software engineering.)
> 
> Talk 11, on AI development environments, attempts to explain this for
> beginners:
>     http://www.cs.bham.ac.uk/research/cogaff/talks/
> 
> Talk 10 attempts to answer the question 'What is AI?' for novices.
> It's only a partial answer.
> 
> Aaron
> ===
> ====
> Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
> School of Computer Science, The University of Birmingham, B15 2TT, UK
> PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
> FREE BOOK: http://www.cs.bham.ac.uk/research/cogaff/crp/
> FREE TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
> 

Dear Aaron,

It is great to see Poplog and other stuff become available as open source.  I
think we all realize this is the only way for software to get wide exposure
nowadays.

The issue of programming languages is an important one.  Here at Waterloo
(Computer Science) some people are arguing that we should focus on small,
practical programs first, before worrying about specific paradigms (object
oriented, functional programming, or whatever).  So the idea is learn
"programming in the small" first before learning "programming in the large".
>From that point of view simple languages like Scheme make a lot of sense.  The
other option is some kind of simple imperative language.  I like programming
in Matlab, but I'm sure there are options with a nicer syntax.  Personally, I
don't know why everyone dropped Pascal.  That was a very clean procedural
language.  An interpreted version of this would be great.  Even basic would
probably be better than trying to teach Java!

  Richard

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
From: Espen Vestre
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <409a86e6$1@news.unimelb.edu.au>
"wim" <·····@labyrinth.NOnet.SPAMau> writes:

> Out of curiousity, why is LISP so highly regarded in the AI field still?
> Pardon my ignorance, but I thought something more akin to Prolog might
> be better.

Prolog is fun and very good for some purposes, but IMHO it loses its
attractivity when you try to do larger-scale general-purpose
programming with it. And if you're trying to do something more than
pure experimentation, there's always some general-purpose programming
to do.  And even for ai/com.ling. tasks you lose some of the advantages
as soon as you try to do more than what you're immediately offered:
E.g. if you want a different grammar than a pure dcg grammar, your
parser may be just as easy to write in lisp, or if you want a
different logic for your reasoning component, or just a different
search strategy, and so on.

(but I still had fun doing prolog for my masters thesis, and did some
 of the really fun prologish things with it, e.g. a small natural
 language system that partly used the same code for parsing and
 generating!)
-- 
  (espen)

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
------------ And now a word from our sponsor ----------------------
For a quality mail server, try SurgeMail, easy to install,
fast, efficient and reliable.  Run a million users on a standard
PC running NT or Unix without running out of power, use the best!
----  See http://netwinsite.com/sponsor/sponsor_surgemail.htm  ----
From: Laurence Kramer
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <409a8790$1@news.unimelb.edu.au>
wim wrote:

> "Laurence Kramer" <·······@cs.cmu.edu> wrote in message
> ···············@news.unimelb.edu.au...
> 
>>We have one or two job openings for people interested
>>in doing software development and maintenance in a research
>>setting.  We strongly prefer candidates with experience in Common
>>Lisp, but will consider people with a good CS background
>>and little Lisp experience but with a desire to learn.
> 
> 
> Out of curiousity, why is LISP so highly regarded in the AI field still?
> Pardon my ignorance, but I thought something more akin to Prolog might
> be better.

I won't try and go into a long technical discussion why Lisp is
the "best" language for AI.  It's been done many times before.
Unfortunately I have to disagree with your statement, and would
contend that Lisp is fighting a battle to hang on in AI, as many
succumb to the ubiquity of Java.

On a practical level we prefer someone with Lisp experience for the jobs
we advertised because all of our systems (except the UI) are written in
Lisp.

My personal feeling, though, is that if God were to have invented a
computer language instead of John McCarthy, it would've looked very
much like Lisp.

> I would love to get a job like this by the way, but I have only had some
> experience with Scheme at a study level.

Take a serious look at Common Lisp.  It's not much different
syntactically than Scheme, but includes the most powerful object
system -- CLOS -- in existence, amongst other things.

Larry

> 
> 
>>For more information see:
>>http://www.ozone.ri.cmu.edu/openings.html
>>
>>Contact me by email if interested.
>>
>>Larry Kramer
>>Associate Director, Intelligent Coordination and Logistics Lab
>>The Robotics Institute
>>Carnegie Mellon University
>>

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]
------------ And now a word from our sponsor ------------------
Do your users want the best web-email gateway? Don't let your
customers drift off to free webmail services install your own
web gateway!
--  See http://netwinsite.com/sponsor/sponsor_webmail.htm  ----
From: wim
Subject: Re: Lisp/AI, Carnegie Mellon University
Date: 
Message-ID: <409ed84b$1@news.unimelb.edu.au>
"Laurence Kramer" <·······@cs.cmu.edu> wrote in message
···············@news.unimelb.edu.au...
> wim wrote:
>
> > "Laurence Kramer" <·······@cs.cmu.edu> wrote in message
> > ···············@news.unimelb.edu.au...
> >
> >>We have one or two job openings for people interested
> >>in doing software development and maintenance in a research
> >>setting.  We strongly prefer candidates with experience in Common
> >>Lisp, but will consider people with a good CS background
> >>and little Lisp experience but with a desire to learn.
> >
> >
> > Out of curiousity, why is LISP so highly regarded in the AI field still?
> > Pardon my ignorance, but I thought something more akin to Prolog might
> > be better.
>
> I won't try and go into a long technical discussion why Lisp is
> the "best" language for AI.  It's been done many times before.
> Unfortunately I have to disagree with your statement, and would
> contend that Lisp is fighting a battle to hang on in AI, as many
> succumb to the ubiquity of Java.
>
> On a practical level we prefer someone with Lisp experience for the jobs
> we advertised because all of our systems (except the UI) are written in
> Lisp.
>
> My personal feeling, though, is that if God were to have invented a
> computer language instead of John McCarthy, it would've looked very
> much like Lisp.
>
> > I would love to get a job like this by the way, but I have only had some
> > experience with Scheme at a study level.
>
> Take a serious look at Common Lisp.  It's not much different
> syntactically than Scheme, but includes the most powerful object
> system -- CLOS -- in existence, amongst other things.
>
> Larry

Thanks for all the replies.
I'm someone who prefers to program in C++, and I am presently
writing a Prolog interpreter in this language.  So I don't intend to
develop in Prolog, and my own requirements don't include LISP
in this case.  I was wanting information on what I might have been
doing wrong in my own approach, but I don't intend to change it.
I am not working full time, and it seems far fetched that I will get one
with
my interests.

John

[ comp.ai is moderated.  To submit, just post and be patient, or if ]
[ that fails mail your article to <·······@moderators.isc.org>, and ]
[ ask your news administrator to fix the problems with your system. ]