Advertisement

programming languages...

Started by September 26, 2004 09:53 AM
27 comments, last by Extrarius 20 years, 2 months ago
Quote: It's been a while, but I believe it's about the fact that Lisp incites you to think about of everything as a list (yes, I know enough Common Lisp to know you got support for hashes, objects and other stuff, and I also agree that Lisp macros are unsurpassed), which conditions the mind into approaching problems "The Lisp Way" (similarly, in APL, everything is an array, so you end up banging on arrays regardless of the underlying nature of the problem). Sure enough, Lisp is wonderful if you want to do, say, genetic algorithms on function trees and things like that, but branding it The Language Of AI discourages the development of unLispish techniques.


If you have a hammer, all problems look like nails. All languages suffer from this, not just Lisp. In fact, the problem is the least evident in Lisp, because of the way macros allow the language to change.
From what I remember from academia, I think Fruny is right. My understanding is that in the old days, Lisp was the language of choice for research AI. But sometime around the mid-90s, people decided that it would be easier & more effective just to use a 'normal' language like C++ or Java.
Advertisement
Quote: Original post by Fruny
I'm doing AI-related work. I'm using Python and C++. I know that some AI researchers say Lisp has actually held back AI research.


It is actually the other way around. AI has held back Lisp, this is known as the "AI Winter".

Quote:
...when large corporations poured billions of dollars into the AI hype that promised thinking machines in 10 years. When the promises turned out to be harder than originally thought, the AI wave crashed, and Lisp crashed with it because of its association with AI. We refer to it as the AI Winter.


From this, I feel that this is quite related:
Quote:
(One of the paradoxes of Lisp is that although it has traditionally enabled the production of products that it is believed by many could not have been done in other languages, once those projects are created, the product is often possible to port to other languages. Lisp allows important flexibility in design and development that is not always needed at runtime. This is, I think, not accidentally related to the often-noted aspect of AI that something always seems like AI until you know how to do it--then it's just programming.)


Interestingly, I recall Paul Graham writing a chapter in his recent book proposing Lisp be used for the design document.
If a plant cannot live according to its nature, it dies; so a man.
when you say lisp, are you referring to common lisp, or any of the lisp variants?
HairyTroll - Fair enough.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
Advertisement
xyz: when you say lisp, are you referring to common lisp, or any of the lisp variants?

CL

Fruny: I also find it funny how a lot of people chime in saying that Lisp is the language most used in AI research (e.g. because of its history) without checking out if it's still true nowadays (no, I don't know either, but I doubt it ... and I'm working in AI-related fields).

I asked around on #lisp last night, and no one had a good, solid answer for me.
neo88
My Kung Fu is stronger.May the Source be with you.neo88
Quote: Original post by neo88
I asked around on #lisp last night, and no one had a good, solid answer for me.
neo88


Hearsay and urban legends then. [smile]
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
Well, all the most advanced AI stuff I've heard about was in Lisp, but most of it was created 10+ years ago. AI today seems to consist of state machines and fuzzy logic. If you throw in neural nets and primitive genetic algorithms/programming, then WOW you're doing better than most today. Of course, I'm sure thats only because I don't see all the latest and greatest stuff being done because I don't get any journals or anything, but that is how it seems to be to me.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
I once worked on a very successful (but now quite old) adventure game that had its own lisp-like scripting language. Most AI in games is done in C for performance, but a lot of higher level changes are done in scripting languages like Lua. Lua seems to be used for no better reason then it is open source. Yuck. When game developers talk about scripting they mean : Tell Bob to pick up the sword. Which is more like narrating what happens in a level then actual AI. If actual AI is done in a scripting language (like say, find the sword) it sucks.

This topic is closed to new replies.

Advertisement