To LISP or not to LISP?

G

Guest

Guest
Archived from groups: comp.ai.games (More info?)

I know there have always been tons of posts on game AI boards asking about
LISP, what it is, and if it's used in commercial games.

Given that LISP is used in few commercial games, is it worth becoming fluent
in anyway?

I am considering persuing it for two reasons:

A.) It is used in academic papers. Being fluent in LISP allows a person to
stay on top of the latest developments in AI.

B.) It can be embedded into game engines. I heard that Halo uses an embedded
LISP-like language for AI. Could embedded LISP-style languages benificial in
the long run?

I've been reading through LISP by Winston & Horn in my free time for the
past year, and I have to say that while I'm familiar with many of LISP's
features, when it comes to coding in LISP, I have the speed and
effectiveness of a slug.

What's with this language? There are too many parentheses and stuff. I
really like the transparency of lists in LISP, and have researched the
benefits of functional programming, but I'm still not convinced that I can
code anything in LISP with more ease than I could in C++.

Should I persue LISP until I am fluent in it? Any advice?
 
Archived from groups: comp.ai.games (More info?)

Kevin Clancy wrote:
> I know there have always been tons of posts on game AI boards asking about
> LISP, what it is, and if it's used in commercial games.
>
> Given that LISP is used in few commercial games, is it worth becoming fluent
> in anyway?
>
> I am considering persuing it for two reasons:
>
> A.) It is used in academic papers. Being fluent in LISP allows a person to
> stay on top of the latest developments in AI.

Which papers? I've seen diminishing use of lisp in AI research for at
least the past 10-15 years. Even in academia, but especially outside.
See below.

>
> B.) It can be embedded into game engines. I heard that Halo uses an embedded
> LISP-like language for AI. Could embedded LISP-style languages benificial in
> the long run?

It's likely that the reason for using a lisp syntax to extend Halo is
that list-based languages (like lisp) are really easy to implement
(parse). It's a lot harder to build a compiler/interpreter for
languages like C or fortran, so lisp may have been selected by the game
builders simply because they wanted to do less work.

>
> I've been reading through LISP by Winston & Horn in my free time for the
> past year, and I have to say that while I'm familiar with many of LISP's
> features, when it comes to coding in LISP, I have the speed and
> effectiveness of a slug.

If you want to learn lisp, put down that book and pick up Brian Harvey's
and Peter Norvig's. IMHO, they're far superior.

>
> What's with this language? There are too many parentheses and stuff. I
> really like the transparency of lists in LISP, and have researched the
> benefits of functional programming, but I'm still not convinced that I can
> code anything in LISP with more ease than I could in C++.
>
> Should I persue LISP until I am fluent in it? Any advice?

First of all, I don't work in games or AI, but I think I have a clue
about the current state of academic AI.

Lisp has always been most appropriate for certain kinds of tasks, in
particular, the rapid development of symbol manipulators (like predicate
logic, planning, or truth management systems). Unfortunately, AI has
become increasingly less symbolic in the past 15 years and more
statistical, decision-theoretic, and machine-learning oriented. That is
to say, AI today is less like cognitive science (conceptual) and more
like applied math or operations research (numeric).

Therefore, in the past 20 years since the heyday of lisp, an increasing
amount of AI has been implemented in C, C++, and Java. This is
especially in evidence when you look at the various AI tools in the
public domain. NNs, GAs, expert systems, POMDPs, CBR, Bayesian, machine
learning, fuzzy systems, etc, are all based on technology that is well
understood, that doesn't benefit from the traditional strengths of lisp
(concise powerful syntax and dynamically reconfigurable data and
functions). So these tools are almost all implemented *without* using
lisp. Even lisp's strengths are now being addressed by languages like
Java, and web infrastructure like XML and C/C++/Java-based interpreters
of syntactic/semantic tags embedded in knowledge sets.

What's more, it's always seemed absurd to me to think that any one
programming language could best encompass an entire field of endeavor,
especially one as broad and multifaceted as AI. Does it really make
sense that a single type of hammer or nail is ideal to build every style
of house? I always imagined it was more likely that a single language
might exist to serve all the needs of business than a single language
could serve all of AI. And since no single language has subsumed
business, it makes no sense to me for AI practitioners to persist in a
wholehearted defense of lisp.

Personally, I'd suggest that you spend your time learning AI techniques
instead of AI programming languages. You'll be a lot more productive
with knowledge of AI techniques than obsolescent AI syntaxes.

Randy

--
Randy Crawford http://www.ruf.rice.edu/~rand rand AT rice DOT edu
 
Archived from groups: comp.ai.games (More info?)

By design there is a fundamental difference between LISP and Functional
or Object Oriented programming. LISP is a practical implementation of
lambda calculus, which inherently encompasses pattern matching. This
makes LISP an excellent choice if you want to do planning or decision
making based on a (symbolic) ruleset.

I posture that LISP doesn't bring home all the tools needed to build
efficient AI algorithms, and that it is generally better to study the
techniques rather than the languages. But it's also worthwhile to find
out exactly why LISP exists, and how it differes from traditional OO
languages. In that sense, take a look at Ruby, which allows for
extension/modification of the function space (even at run-time).

Working on our latest project, I've been turning in circles for a while
trying to 'get C++ to allow for object extension without inheritance',
or use an 'interface approach to re-interpret and process your objct
data differently' depending on state changes. Until I realised that I
was trying to implement lambda calculus. So I think there is still room
for LISP and similar derivatives in this world.

Cheers,
..ignace


Randy wrote:
> Kevin Clancy wrote:
>
>> I know there have always been tons of posts on game AI boards asking
>> about
>> LISP, what it is, and if it's used in commercial games.
>>
>> Given that LISP is used in few commercial games, is it worth becoming
>> fluent
>> in anyway?
>>
>> I am considering persuing it for two reasons:
>>
>> A.) It is used in academic papers. Being fluent in LISP allows a
>> person to
>> stay on top of the latest developments in AI.
>
>
> Which papers? I've seen diminishing use of lisp in AI research for at
> least the past 10-15 years. Even in academia, but especially outside.
> See below.
>
>>
>> B.) It can be embedded into game engines. I heard that Halo uses an
>> embedded
>> LISP-like language for AI. Could embedded LISP-style languages
>> benificial in
>> the long run?
>
>
> It's likely that the reason for using a lisp syntax to extend Halo is
> that list-based languages (like lisp) are really easy to implement
> (parse). It's a lot harder to build a compiler/interpreter for
> languages like C or fortran, so lisp may have been selected by the game
> builders simply because they wanted to do less work.
>
>>
>> I've been reading through LISP by Winston & Horn in my free time for the
>> past year, and I have to say that while I'm familiar with many of LISP's
>> features, when it comes to coding in LISP, I have the speed and
>> effectiveness of a slug.
>
>
> If you want to learn lisp, put down that book and pick up Brian Harvey's
> and Peter Norvig's. IMHO, they're far superior.
>
>>
>> What's with this language? There are too many parentheses and stuff. I
>> really like the transparency of lists in LISP, and have researched the
>> benefits of functional programming, but I'm still not convinced that I
>> can
>> code anything in LISP with more ease than I could in C++.
>>
>> Should I persue LISP until I am fluent in it? Any advice?
>
>
> First of all, I don't work in games or AI, but I think I have a clue
> about the current state of academic AI.
>
> Lisp has always been most appropriate for certain kinds of tasks, in
> particular, the rapid development of symbol manipulators (like predicate
> logic, planning, or truth management systems). Unfortunately, AI has
> become increasingly less symbolic in the past 15 years and more
> statistical, decision-theoretic, and machine-learning oriented. That is
> to say, AI today is less like cognitive science (conceptual) and more
> like applied math or operations research (numeric).
>
> Therefore, in the past 20 years since the heyday of lisp, an increasing
> amount of AI has been implemented in C, C++, and Java. This is
> especially in evidence when you look at the various AI tools in the
> public domain. NNs, GAs, expert systems, POMDPs, CBR, Bayesian, machine
> learning, fuzzy systems, etc, are all based on technology that is well
> understood, that doesn't benefit from the traditional strengths of lisp
> (concise powerful syntax and dynamically reconfigurable data and
> functions). So these tools are almost all implemented *without* using
> lisp. Even lisp's strengths are now being addressed by languages like
> Java, and web infrastructure like XML and C/C++/Java-based interpreters
> of syntactic/semantic tags embedded in knowledge sets.
>
> What's more, it's always seemed absurd to me to think that any one
> programming language could best encompass an entire field of endeavor,
> especially one as broad and multifaceted as AI. Does it really make
> sense that a single type of hammer or nail is ideal to build every style
> of house? I always imagined it was more likely that a single language
> might exist to serve all the needs of business than a single language
> could serve all of AI. And since no single language has subsumed
> business, it makes no sense to me for AI practitioners to persist in a
> wholehearted defense of lisp.
>
> Personally, I'd suggest that you spend your time learning AI techniques
> instead of AI programming languages. You'll be a lot more productive
> with knowledge of AI techniques than obsolescent AI syntaxes.
>
> Randy
>
 
Archived from groups: comp.ai.games (More info?)

Ignace Saenen wrote:

>
>
> By design there is a fundamental difference between LISP and Functional
> or Object Oriented programming. LISP is a practical implementation of
> lambda calculus, which inherently encompasses pattern matching. This
> makes LISP an excellent choice if you want to do planning or decision
> making based on a (symbolic) ruleset.
>
> I posture that LISP doesn't bring home all the tools needed to build

Ah.. please make that: "I agree with the posture that.. " :)

> efficient AI algorithms, and that it is generally better to study the
> techniques rather than the languages. But it's also worthwhile to find
> out exactly why LISP exists, and how it differes from traditional OO
> languages. In that sense, take a look at Ruby, which allows for
> extension/modification of the function space (even at run-time).
>
> Working on our latest project, I've been turning in circles for a while
> trying to 'get C++ to allow for object extension without inheritance',
> or use an 'interface approach to re-interpret and process your objct
> data differently' depending on state changes. Until I realised that I
> was trying to implement lambda calculus. So I think there is still room
> for LISP and similar derivatives in this world.
>
> Cheers,
> .ignace
>
>
> Randy wrote:
>
>> Kevin Clancy wrote:
>>
>>> I know there have always been tons of posts on game AI boards asking
>>> about
>>> LISP, what it is, and if it's used in commercial games.
>>>
>>> Given that LISP is used in few commercial games, is it worth becoming
>>> fluent
>>> in anyway?
>>>
>>> I am considering persuing it for two reasons:
>>>
>>> A.) It is used in academic papers. Being fluent in LISP allows a
>>> person to
>>> stay on top of the latest developments in AI.
>>
>>
>>
>> Which papers? I've seen diminishing use of lisp in AI research for at
>> least the past 10-15 years. Even in academia, but especially outside.
>> See below.
>>
>>>
>>> B.) It can be embedded into game engines. I heard that Halo uses an
>>> embedded
>>> LISP-like language for AI. Could embedded LISP-style languages
>>> benificial in
>>> the long run?
>>
>>
>>
>> It's likely that the reason for using a lisp syntax to extend Halo is
>> that list-based languages (like lisp) are really easy to implement
>> (parse). It's a lot harder to build a compiler/interpreter for
>> languages like C or fortran, so lisp may have been selected by the
>> game builders simply because they wanted to do less work.
>>
>>>
>>> I've been reading through LISP by Winston & Horn in my free time for the
>>> past year, and I have to say that while I'm familiar with many of LISP's
>>> features, when it comes to coding in LISP, I have the speed and
>>> effectiveness of a slug.
>>
>>
>>
>> If you want to learn lisp, put down that book and pick up Brian
>> Harvey's and Peter Norvig's. IMHO, they're far superior.
>>
>>>
>>> What's with this language? There are too many parentheses and stuff. I
>>> really like the transparency of lists in LISP, and have researched the
>>> benefits of functional programming, but I'm still not convinced that
>>> I can
>>> code anything in LISP with more ease than I could in C++.
>>>
>>> Should I persue LISP until I am fluent in it? Any advice?
>>
>>
>>
>> First of all, I don't work in games or AI, but I think I have a clue
>> about the current state of academic AI.
>>
>> Lisp has always been most appropriate for certain kinds of tasks, in
>> particular, the rapid development of symbol manipulators (like
>> predicate logic, planning, or truth management systems).
>> Unfortunately, AI has become increasingly less symbolic in the past 15
>> years and more statistical, decision-theoretic, and machine-learning
>> oriented. That is to say, AI today is less like cognitive science
>> (conceptual) and more like applied math or operations research (numeric).
>>
>> Therefore, in the past 20 years since the heyday of lisp, an
>> increasing amount of AI has been implemented in C, C++, and Java.
>> This is especially in evidence when you look at the various AI tools
>> in the public domain. NNs, GAs, expert systems, POMDPs, CBR,
>> Bayesian, machine learning, fuzzy systems, etc, are all based on
>> technology that is well understood, that doesn't benefit from the
>> traditional strengths of lisp (concise powerful syntax and dynamically
>> reconfigurable data and functions). So these tools are almost all
>> implemented *without* using lisp. Even lisp's strengths are now being
>> addressed by languages like Java, and web infrastructure like XML and
>> C/C++/Java-based interpreters of syntactic/semantic tags embedded in
>> knowledge sets.
>>
>> What's more, it's always seemed absurd to me to think that any one
>> programming language could best encompass an entire field of endeavor,
>> especially one as broad and multifaceted as AI. Does it really make
>> sense that a single type of hammer or nail is ideal to build every
>> style of house? I always imagined it was more likely that a single
>> language might exist to serve all the needs of business than a single
>> language could serve all of AI. And since no single language has
>> subsumed business, it makes no sense to me for AI practitioners to
>> persist in a wholehearted defense of lisp.
>>
>> Personally, I'd suggest that you spend your time learning AI
>> techniques instead of AI programming languages. You'll be a lot more
>> productive with knowledge of AI techniques than obsolescent AI syntaxes.
>>
>> Randy
>>
 
Archived from groups: comp.ai.games (More info?)

How is the application going to interact with other applications
and the environment? Interface code could take a lot of time.
From personal experience, we had to re-write a whole LISP
reasoning system in Java because of Interface issues (time takes
to translate data structure between LISP and Java). However,
XML was not investigated as a solution.

---

"Ignace Saenen" <ignace.saeNOSPAMnen@writeme.com> wrote in message
news:40FA9E41.3040400@writeme.com...
>
>
> By design there is a fundamental difference between LISP and Functional
> or Object Oriented programming. LISP is a practical implementation of
> lambda calculus, which inherently encompasses pattern matching. This
> makes LISP an excellent choice if you want to do planning or decision
> making based on a (symbolic) ruleset.
>
> I posture that LISP doesn't bring home all the tools needed to build
> efficient AI algorithms, and that it is generally better to study the
> techniques rather than the languages. But it's also worthwhile to find
> out exactly why LISP exists, and how it differes from traditional OO
> languages. In that sense, take a look at Ruby, which allows for
> extension/modification of the function space (even at run-time).
>
> Working on our latest project, I've been turning in circles for a while
> trying to 'get C++ to allow for object extension without inheritance',
> or use an 'interface approach to re-interpret and process your objct
> data differently' depending on state changes. Until I realised that I
> was trying to implement lambda calculus. So I think there is still room
> for LISP and similar derivatives in this world.
>
> Cheers,
> .ignace
>
>
> Randy wrote:
> > Kevin Clancy wrote:
> >
> >> I know there have always been tons of posts on game AI boards asking
> >> about
> >> LISP, what it is, and if it's used in commercial games.
> >>
> >> Given that LISP is used in few commercial games, is it worth becoming
> >> fluent
> >> in anyway?
> >>
> >> I am considering persuing it for two reasons:
> >>
> >> A.) It is used in academic papers. Being fluent in LISP allows a
> >> person to
> >> stay on top of the latest developments in AI.
> >
> >
> > Which papers? I've seen diminishing use of lisp in AI research for at
> > least the past 10-15 years. Even in academia, but especially outside.
> > See below.
> >
> >>
> >> B.) It can be embedded into game engines. I heard that Halo uses an
> >> embedded
> >> LISP-like language for AI. Could embedded LISP-style languages
> >> benificial in
> >> the long run?
> >
> >
> > It's likely that the reason for using a lisp syntax to extend Halo is
> > that list-based languages (like lisp) are really easy to implement
> > (parse). It's a lot harder to build a compiler/interpreter for
> > languages like C or fortran, so lisp may have been selected by the game
> > builders simply because they wanted to do less work.
> >
> >>
> >> I've been reading through LISP by Winston & Horn in my free time for
the
> >> past year, and I have to say that while I'm familiar with many of
LISP's
> >> features, when it comes to coding in LISP, I have the speed and
> >> effectiveness of a slug.
> >
> >
> > If you want to learn lisp, put down that book and pick up Brian Harvey's
> > and Peter Norvig's. IMHO, they're far superior.
> >
> >>
> >> What's with this language? There are too many parentheses and stuff. I
> >> really like the transparency of lists in LISP, and have researched the
> >> benefits of functional programming, but I'm still not convinced that I
> >> can
> >> code anything in LISP with more ease than I could in C++.
> >>
> >> Should I persue LISP until I am fluent in it? Any advice?
> >
> >
> > First of all, I don't work in games or AI, but I think I have a clue
> > about the current state of academic AI.
> >
> > Lisp has always been most appropriate for certain kinds of tasks, in
> > particular, the rapid development of symbol manipulators (like predicate
> > logic, planning, or truth management systems). Unfortunately, AI has
> > become increasingly less symbolic in the past 15 years and more
> > statistical, decision-theoretic, and machine-learning oriented. That is
> > to say, AI today is less like cognitive science (conceptual) and more
> > like applied math or operations research (numeric).
> >
> > Therefore, in the past 20 years since the heyday of lisp, an increasing
> > amount of AI has been implemented in C, C++, and Java. This is
> > especially in evidence when you look at the various AI tools in the
> > public domain. NNs, GAs, expert systems, POMDPs, CBR, Bayesian, machine
> > learning, fuzzy systems, etc, are all based on technology that is well
> > understood, that doesn't benefit from the traditional strengths of lisp
> > (concise powerful syntax and dynamically reconfigurable data and
> > functions). So these tools are almost all implemented *without* using
> > lisp. Even lisp's strengths are now being addressed by languages like
> > Java, and web infrastructure like XML and C/C++/Java-based interpreters
> > of syntactic/semantic tags embedded in knowledge sets.
> >
> > What's more, it's always seemed absurd to me to think that any one
> > programming language could best encompass an entire field of endeavor,
> > especially one as broad and multifaceted as AI. Does it really make
> > sense that a single type of hammer or nail is ideal to build every style
> > of house? I always imagined it was more likely that a single language
> > might exist to serve all the needs of business than a single language
> > could serve all of AI. And since no single language has subsumed
> > business, it makes no sense to me for AI practitioners to persist in a
> > wholehearted defense of lisp.
> >
> > Personally, I'd suggest that you spend your time learning AI techniques
> > instead of AI programming languages. You'll be a lot more productive
> > with knowledge of AI techniques than obsolescent AI syntaxes.
> >
> > Randy
> >