What are the "best" Turing complete programming languages which can be used for developing evolutionary algorithm-based AI programs?
"Best" should be based on pros and cons of performance and easiness for machine learning.
Artificial Intelligence Stack Exchange is a question and answer site for people interested in conceptual questions about life and challenges in a world where "cognitive" functions can be mimicked in purely digital environment. It only takes a minute to sign up.
Sign up to join this communityWhat are the "best" Turing complete programming languages which can be used for developing evolutionary algorithm-based AI programs?
"Best" should be based on pros and cons of performance and easiness for machine learning.
Most machine learning applications today are built on tensors, matrices, probabilistic / Bayesian inference, neural networks, etc. But those can all be built with any modern programming language (all the useful ones are Turing complete). And the best performing language for any of those will generally be assembly / machine code.
Python is famous for machine learning, but that may be due to adoption of Python in academia and NumPy, SciPy, etc. Python isn't very performant, but most of the machine libraries leverage native code, so they're fairly performant.
Julia is a new language that is gunning for a lead position in the data science space, which machine learning builds on. It is allegedly very performant over number crunching domains.
Java has a decent developer ecosystem, and is fairly performant, but the highest performing libraries (including those that leverage GPU) tend to call out to native code via JNI. See DeepLearning4J.
I personally like Clojure - a modern Lisp running on the Java JVM. There's a new deep learning project called Cortex built on Clojure and some fast native libraries, including GPU acceleration.
I think Clojure provides a great balance of being able to easily wrap performant libraries with highly expressive, succinct and simple programming idioms.