English 中文(简体)
what languages are used in AI research today?
原标题:

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?

最佳回答

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.

问题回答

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.

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.





相关问题
Java shell expansion similar to wordexp

Is there a way to do shell wildcard expansion in java similar to the way that the C function call wordexp works? It seems a bit platform specific, but there has to be a nice abstraction for this in ...

How to evaluate a file system?

I ve a question related to design of file systems. These days we are seeing the proliferation of many file systems mostly related to handling large datasets and providing high availability and speed. ...

Storing files on the Cloud or the FileSystem? [closed]

Simple question, doesn t seem to have been directly asked yet. What are the benefits to storing files (images/videos/documents/etc) on Amazon S3-and-related vs. on the File System your app is ...

Is this specific path concatenation in Perl code exploitable?

Assume that an attacker controls the variable $untrusted_user_supplied_path. Is the following Perl code exploitable? my $untrusted_user_supplied_path = ... if ($untrusted_user_supplied_path =~ /../)...

How to determine how much free space on a drive in Qt?

I m using Qt and want a platform-independent way of getting the available free disk space. I know in Linux I can use statfs and in Windows I can use GetDiskFreeSpaceEx(). I know boost has a way, ...

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签