artificial intelligence, machine learning

A programming language for AI

I am curious which programming language is more useful for Artificial Intelligence. “Choose the language that you are more proficient in”, it is not an option to me. Choose the right tool, for the right problem is better in my case.

I was looking in Quora and founding some results. “What is best programming language for Artificial Intelligence projects?” is one of the most interesting, I was reading the answers from there. And the conclusion among the results is: Python (because it is fast to develop things and there are interesting libraries), C/C++ (because the speed and performance) or Java.

Taking a look to google, I found a tutorial written by Günter Neumann, from the German Research Center for Artificial Intelligence, entitled Programming Languages in Artificial Intelligence. In the tutorial, you can read why functional programming languages and symbolic languages are more useful for AI and then you find an introduction to Lisp and a small part for Prolog.

It is a simple introduction to Lisp, but I couldn’t avoid to remember µlisp (an small Lisp interpreter that I did, based in another book Build Your Own Lisp). I built a simple version of Lisp using C. In that point there were no standard libraries, you have to build them by yourself and I was wondering, if in that point you can start to create a language that it helps you to represent the world.

As always that was a crazy idea. Create a programming language that experts tell it is useful for artificial intelligence and build the standard libraries to represent part of the world that the system have to work with. As far as you go with the idea, you know that you cannot represent the complete real world with that approach, but… could you do a mix of implement part of the world with the programming language and part of the world based in the experience somehow? That was my thought, maybe there would be a way to do it.

By the way, my mind took me to start reading the new book of Deep Learning by Ian Goodfellow, Aaron Courville and Yoshua Bengio. In the introduction, there is a reference to Cyc (Lenat and Guha, 1989) and knowledge base.

A computer can reason about statements in these formal languages automatically using logical inference rules. This is known as the knowledge base approach to artificial intelligence. None of these projects has lead to a major success. One of the most famous such projects is Cyc (Lenat and Guha, 1989)  [extracted from the draft]

I am still thinking that it could work, because my approach is not to write every single rule of the world with the programming language, if not, to have some base using the language prepared for that specific problem like a DSL, but going further and without any limitation from the language itself. Either way, it is just an idea, I will continue reading the book from Yoshua Bengio, about deep learning it looks really promising and I will take a look to the review of the Lenat & Guha book, maybe I can figure out more.