|Think about Loose Coupling|
Good question/discussion. Here are my thoughts on the topic.
TMTOWTDI, but there is probably only one or two right ways to do it. It really depends on what area of AI you're focusing on. AI is such a general topic that for choosing a langauge you need to split it into different catagories. You also need to decide what your objectives are.
For a task such as NLP, Perl is a very appropriate language. It provides good (read effecient) methods for this task. You have regexes, data structures, and weak type. Those things are all good for something like this (at least I think so).
However, NLP is just a small portion of AI. Artificial Intelligence is defined as the ability to make intelligent decisions. Most often, this involves interacting with the world, or at least a psuedo-world. Let's see, interacting with the world, bring any specific type of programming to mind? Oh yes, Object-Oriented programming. I'd imagine that'd be good for something like this.
Perl has OO (object oriented). It's not the best OO, but it's OO none the less. So do I support using PerlOO for real world tasks in AI? I didn't say that. Other languages provide much cleaner and simpler OO than Perl. My personal favorite is Ruby. It's clean, it works. It is slow though. This could be a reason not to use it. Maybe Java or some other language would be better suited.
I would do most of my AI programming in Ruby. I like it because:
You may want to take this with a grain of salt. I've done very little AI programming. I've read a couple books. I'm currently trying to do some NLP in Ruby. So far it's going good. It is a memory hog, way more than Perl is, and it's slow, but I think it's worth it. Just my $.02