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
> >