Answers.Body: <p>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.</p>
  
  <p><a href="https://www.python.org/" rel="nofollow">Python</a> is famous for machine learning, but that may be due to adoption of Python in academia and <a href="http://www.numpy.org/" rel="nofollow">NumPy</a>, <a href="https://www.scipy.org/" rel="nofollow">SciPy</a>, etc. Python isn't very performant, but most of the machine libraries leverage native code, so they're fairly performant.</p>
  
  <p><a href="http://julialang.org/" rel="nofollow">Julia</a> 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.</p>
  
  <p>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 <a href="https://deeplearning4j.org/" rel="nofollow">DeepLearning4J</a>.</p>
  
  <p>I personally like <a href="http://clojure.org/" rel="nofollow">Clojure</a> - a modern Lisp running on the Java JVM. There's a new deep learning project called <a href="https://github.com/thinktopic/cortex" rel="nofollow">Cortex</a> built on Clojure and some fast native libraries, including GPU acceleration.</p>
  
  <p>I think Clojure provides a great balance of being able to easily wrap performant libraries with highly expressive, succinct and simple programming idioms.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-21T06:20:04.410Z
Answers.LastActivityDate: 2016-10-21T06:20:04.410Z
Answers.UserDisplayName: Doxosophoi
Body: <p>What are the "best" <a href="https://en.wikipedia.org/wiki/Turing_completeness" rel="nofollow noreferrer">Turing complete</a> programming languages which can be used for developing <a href="https://en.wikipedia.org/wiki/Evolutionary_algorithm" rel="nofollow noreferrer">evolutionary algorithm</a>-based AI programs?</p>
  
  <p>"Best" should be based on pros and cons of performance and easiness for machine learning.</p>
  
Tags: <evolutionary-algorithms><programming-languages>
Title: What are the best programming languages for developing evolutionary algorithms?
UserDisplayName: Sen Jacob
ThreadText: # What are the best programming languages for developing evolutionary algorithms?
  
  (Asked by: username_0 on 2016-10-21)
  
  What are the "best" [Turing complete](https://en.wikipedia.org/wiki/Turing_completeness) programming languages which can be used for developing [evolutionary algorithm](https://en.wikipedia.org/wiki/Evolutionary_algorithm)-based AI programs?
  
  "Best" should be based on pros and cons of performance and easiness for machine learning.
  
  **Tags:** evolutionary-algorithms, programming-languages
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-10-21. Score: 1 | Accepted answer
  
  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](https://www.python.org/) is famous for machine learning, but that may be due to adoption of Python in academia and [NumPy](http://www.numpy.org/), [SciPy](https://www.scipy.org/), etc. Python isn't very performant, but most of the machine libraries leverage native code, so they're fairly performant.
  
  [Julia](http://julialang.org/) 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](https://deeplearning4j.org/).
  
  I personally like [Clojure](http://clojure.org/) - a modern Lisp running on the Java JVM. There's a new deep learning project called [Cortex](https://github.com/thinktopic/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.
  
  
  ---
  
  