views:

236

answers:

3

hi.

I am currently dabbling in expert systems, emacs lisp, and reading up about artificial intelligence. Traditionally, artificial intelligence is associated with LISP and expert systems with CLIPS. However, I have noticed in computational sciences how much Python is being used. What about the area of artificial intelligence and machine learning? is it still been dominated by LISP? how much is python being used in AI? are any of the newer functional languages, clojure for example, being used in research?

in the area of expert systems, which shells are most used/popular today? are there any interesting developments language wise which you know of?

Thanks a lot

+2  A: 

DISCLAIMER: I am just an enthusiast, and you may know even more than me about AI at the moment, but my research has told me that...

Python rules at MIT - so the work done there is done in Python.
Prolog, Erlang, Scala, Java, Ruby : all of those also come up on the web.
C/C++ : Because you always need something to do a lot of number-crunching really really fast.

Trevoke
Prolog was still taught at Griffith Uni until the AI lecturer retired in 2006, god rest his soul. Don't think AI's taught at all now.
glasnt
+3  A: 

What about the area of artificial intelligence and machine learning?

It depends what area of AI.

is it still been dominated by LISP?

Not at all -- unless it's suddenly had a resurgence in the last few years.

how much is python being used in AI? are any of the newer functional languages, clojure for example, being used in research?

People will use whatever language is appropriate for their domain. You also have to factor in the availability of libraries -- if you're doing some data mining task, you might download Weka and use Java. Or if you're doing some agent theory research that involves sending structured XML messages, you might find yourself using whatever language your favourite XML parser is in. Or if you're building a high-performance backgammon program, you might stick with C/C++ and use an existing evaluation function (as I did with my research using gnubackgammon).

in the area of expert systems, which shells are most used/popular today? are there any interesting developments language wise which you know of?

Expert systems really aren't so much the rage anymore. As research went along they were found to be brittle systems that need too much manual TLC. If you're going to try and detect cancer, or qualify someone for a credit card, you're better off using some ML system, like a Bayesian Network.

I think you'll find most AI textbooks are fairly platform agnostic since the underlying algorithms are platform agnostic.

Shaggy Frog
A: 

The reason that Lisp is associated with AI is that when AI when really new, there weren't as many people doing it, and the other languages of the day were not appropriate. Now there's a lot more variety in the AI field, and most languages have at least caught up to 70's-style LISP. So there is no one dominant language.

If you're interested in AI, stop worrying about language and start learning techniques. The language doesn't matter.


Miscellaneous notes:

I am at Indiana University studying computational linguistics (which is an area of AI that often uses machine learning techniques), and Python is the most popular choice for prototypes at IU. But not overwhelmingly so. Overall, computational linguistics doesn't have any dominant language for research. A lot of software is released in Java and C/C++ because these languages are fast and portable. (I'm running a couple of Java-based parsers in the background as I type this.)

I only know of one or two groups still using Common Lisp. I haven't heard of anybody doing AI research with Clojure, but there very well could be. As for other new functional languages, F# is used by Microsoft for development of AI-esque things, but not necessarily research. I personally use Haskell for a lot of things, but it's not a common choice, as far as I know.

Nathan Sanders