

Help: Artificial Intelligence best language to learn TODAY - marcofloriano

Hello,<p>I´m working in a personal project that takes data from the web and extract informations from this data. All this stage i made very well with ruby (lets say, an modern language). But now i need to start working on a module (we call "brain") that can take the information of the ruby software and take decisions about the best moment to buy and sell currencies. I had a very hard time to chose between ruby and python (yes, i had to learn the language before make the bot) and now i´m having another hard time to choose an language to make this "brain". So i came here and ask for your help. I think most part of you will say "take lisp or prolog" but i have afraid of spend my time learning an old language, like lisp ...  but that´s not the big problem. If a go to lisp, WITCH dialect should i choose ? Common Lisp is old, but looks like more situated to this task. Scheme looks like naive close to common lisp, i´m running from that ... and clojure looks like new, but not so good like the others. So i ask you hackers for help. I still doing my personal researches but a vision from somebody with more experience would be appreciated. By the way, sorry by may bad english ...
======
alan-crowe
The 1960's and 1970's were the era in which researchers designed new languages
in response to the difficulties that they encountered in writing their own
advanced applications. Common Lisp is perhaps the culimination of this work.

University subjects divide into those where the students start from scratch
and those for which 11 to 16 year olds recieve substantial preparation. For
example the teaching of physics depends on children learning arithmetic and
algebra so that they are fluent before attempting to study physics at
university. The teaching of law starts from scratch.

Computer science is a start from scratch subject, so a major focus is
distilling the essence of computer programming to come up with a simple
language suitable for bringing undergraduates up to employability in three
years. Here is a perspective from which Java can be seen major achievement in
programming language design.

However the consensus seems to be that a start-from-scratch degree is too
short for meta-programming: you can teach it but not well enough to avoid
students shooting themselves in the foot with it. So Common Lisp's defmacro is
out. Similarly for customising the syntax of embedded sublanguages, so Common
Lisp's read-macros are also out. CLOS is too sophisticated for a 3 year
degree, nobody wants to try teaching undergraduates to define their own method
combinations. The Common Lisp condition system is wildly over-elaborate.
Reading Kent Pitman it is clear that the design was driven by the needs of
very large, very sophisticated programs. It is fascinating to read the
documentation as a kind of old developers war story in which people believe
that the condition system doesn't need to be that elaborate and find out the
bitter truth the hard way as the project code base grows.

So new versus old doesn't work as a criterion for programming language choice.
It hasn't worked for twenty or thirty years. If you want to do work on
Artificial Intelligence you are committing yourself to writing very large,
very sophisticated programs. In recent years new languages have been designed
with very different goals in mind and newness is not your friend.

~~~
marcofloriano
Thanks a lot Alan. Therefore, there´s no point on searching for the newest
languages to do this kind of software because, actually, they are more
inclined to write languages to solve high level problems then lows ... AI
case, i guess. I got your point on new vs old, and maybe on that specific
case, you are right.

------
bdfh42
Build your first prototype in the language you are most comfortable using.
When you know which bits are hard to write then you can look around and see if
any other language has facilities that make that part of the task simpler to
write.

Whichever way - enjoy the learning experience. I doubt you will make your
fortune trading currencies - but I could be wrong so good luck.

~~~
marcofloriano
Nothing is impossible ... and i got some guts to face this kind of challenge.
Some friends told me exactly that, to stick with ruby and then figure out a
way to implement the brain with that. Thanks.

------
dmix
I researched this question thoroughly earlier this year and decided that C was
the best language for AI. For a few reasons:

a) You can find examples of all the standard AI algorithms online

b) It doesn't get much faster then C

c) There is a huge C community so you'll be able to find more developers
easily if the project takes off (the main drawback of LISP)

~~~
marcofloriano
That´s a really good point dmix, C is amazing and i already have experience
with it. But let´s make some thing clear ...

a) Interesting, but i´m planning to write my own algorithms

b) C speed is just unique, maybe only lose for assembly

c) True, a very decisive factor.

------
Bjoern
Probably since you are starting from scratch and because first iterations of
software if you are new to this tend to be more practice than usable I would
say, stick first with the language which makes your life easiest. Later when
e.g. speed becomes an issue, you will have to rewrite things anyway I suspect.

~~~
marcofloriano
Agree. I have a lot of experimental codes here that must be rewrite
immediately. Looks like it´s the best way for me so far ...

------
cdog46
FORTH programming language, like C, might be a good choice. The downside is
that not many programmers use this language. And that's unfortunate.

------
geezer
Is there significant quantitative programming involved in what you are doing?
If yes, I would recommend using Matlab or R.

~~~
Bjoern
For a proof of concept, I would second that. Though actually Matlab is
significantly more powerful in Machine Learning than R due to its fantastic
libraries. (R is still young).

