Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pick a language for Artificial Intelligence programming? [closed]

What is the best programming language for artificial intelligence purposes?

Mind that using suggested language I must be able to employ any AI technique (or at least most of them).

like image 874
mary.ja45 Avatar asked Dec 09 '09 22:12

mary.ja45


People also ask

How do we select a programming language for AI?

If you are working on complex projects for big data applications, R should be on your list of top programming languages to learn for faster development. For AI, you can learn to use R for numerical analysis, neural networks, machine learning, and any other task that requires statistical computations.

Is C++ or Python better for AI?

C++ is actually one of the most popular languages used in the AI/ML space. Python may be more popular in general, but as others have noted, it's actually quite common to have hybrid systems where the CPU intensive number-crunching is done in C++ and Python is used for higher level functions.

Is AI possible without coding?

With no-code AI, you don't need any prior programming knowledge to create software. Think about that for a moment… Users can quickly classify information, perform data analysis, and make accurate data predictions with models. It is the software for non-technical people.

Is C++ needed for AI?

C++ is used for resource-intensive applications, AI in games and robot locomotion, and rapid execution of projects due to its high level of performance and efficiency.


2 Answers

All the cool bearded gurus in what's left of AI research use Lisp :)

There are two big camps: Common Lisp and Scheme. They have different syntax, etc. Lots of good stuff written for both.

Java is a very popular all-purpose language but a lot of the interesting stuff in AI / Functional Programming, such as passing closures as first-order objects, is clumsy to do in Java.

My personal preference would be to stay away from Windowsy languages like C# and F#. Cool people develop under Unix. Or Linux if they're cool but poor.

Some cool but weird people program in Haskell. A reasonably modern FP language with good performance. I tried it once, it made my brain hurt; but you might be smarter than I am.


UPDATE: Answers to Steve's questions.

  1. I wouldn't be the one paying for a Unix variant; that's what corporations and research institutes do. The idea is, you want to be doing AI research for an outfit that sinks millions into their hardware and doesn't balk at paying a few thousand for an operating system. That's the kind of outfit likely to have good food in the cafeteria and/or pay well for doing fun work. But I'm certainly not knocking Linux.

  2. F# may be cool but I see a whole raft of issues getting it to run on Linux or any other Unix (that's what I meant by "windowsy"), and I don't want to work under Windows (that's what I meant by "personal preference").

  3. To elaborate on the "windowsy" theme: You mention that F# is an OCaml variant. From my own admittedly brief research, it seems that F# is missing functors, OCaml-style objects, polymorphic variants and the camlp4 preprocessor. A functional language without functors? Really? If one were disposed to not like Microsoft, as I admittedly am, one could conclude that they had gone ahead and crowbarred a perfectly good functional language, OCaml, into something they could get to run in their CLR so they could claim to "have" a functional language. Finally, because I don't suspect, I know that Microsoft always prioritizes market dominance over product quality, I don't plan to touch F#. But this is my personal preference, and clearly identified as such, while we're really more concerned with making a good recommendation for mary.ja45 .

I have better reasons to recommend Lisp over F# and even OCaml and Haskell. These are mostly based on the historic preponderance of Lisp over any other language in the AI field.

  • The bulk of AI literature is based on programs written in Lisp or Prolog. If nothing else, good knowledge of Lisp would allow a student to understand the sample programs. My personal favorite AI megaproject, Cyc, has runtimes in your choice of Common Lisp or C.

  • In the TIOBE index of programming language (as seen and used in industry), Lisp takes 15th place while Haskell takes 43rd and F# and OCaml place below 50th. Presence on the market correlates with employment opportunities, naturally.

That said, it's quite possible that a number of the younger "AI interesting" languages are poised to skyrocket. If some major research institute published some groundbreaking, defining-the-field research in, say, Scala, you'd see Scala's popularity advance sharply in the research community and, with some lag, in industry.

I (obviously) can't comment on F#'s other qualities but you're as welcome to make recommendations as I was.

like image 80
Carl Smotricz Avatar answered Sep 20 '22 17:09

Carl Smotricz


Python seems to be used a lot in the general scientific community. It has a lot of libraries available and it's easy to learn.

like image 43
devoured elysium Avatar answered Sep 24 '22 17:09

devoured elysium