Well it is actually a generic performance question about any scientific task. Usually, one can not go beyond the performance of C/C++ codes as they are compiled into executables using high performance and optimized compilers. That's why they are considered to reach "native" performance and the performance scores of other programming languages are compared relatively to the performance of C/C++.
Domain specific scientific languages/frameworks like Matlab are specialized in various tasks and they use special linear algebra and other math libraries tuned for high performance, they support vectorization, etc. Matlab is good for prototyping or bare research tasks but the fact that it is commercial and a huge software bundle limits its cross-platformness and high availability.
Weka is a very well received machine learning library available in Java and as far as I know it does a really good job generally.
Python on the other way is an interpreted, cross-platform and open-source language with very rich extension libraries. One may think that an interpreted language would be very slow compared to other languages mentioned above but in Python it is possible to implement performance-critic libraries in C and use them from Python. This allows Python to reach native performances. The defacto libraries for scientific computing in Python are NumPy and SciPy. scikit-learn is a very popular machine learning library for Python, used both by research people and industry: http://scikit-learn.org/stable/index.html
Finally a new open source scientific language called Julia has a performance benchmark on their site comparing the performance of various languages in terms of scientific computing, take a look at that: http://julialang.org/
Well it is actually a generic performance question about any scientific task. Usually, one can not go beyond the performance of C/C++ codes as they are compiled into executables using high performance and optimized compilers. That's why they are considered to reach "native" performance and the performance scores of other programming languages are compared relatively to the performance of C/C++.
Domain specific scientific languages/frameworks like Matlab are specialized in various tasks and they use special linear algebra and other math libraries tuned for high performance, they support vectorization, etc. Matlab is good for prototyping or bare research tasks but the fact that it is commercial and a huge software bundle limits its cross-platformness and high availability.
Weka is a very well received machine learning library available in Java and as far as I know it does a really good job generally.
Python on the other way is an interpreted, cross-platform and open-source language with very rich extension libraries. One may think that an interpreted language would be very slow compared to other languages mentioned above but in Python it is possible to implement performance-critic libraries in C and use them from Python. This allows Python to reach native performances. The defacto libraries for scientific computing in Python are NumPy and SciPy. scikit-learn is a very popular machine learning library for Python, used both by research people and industry: http://scikit-learn.org/stable/index.html
Finally a new open source scientific language called Julia has a performance benchmark on their site comparing the performance of various languages in terms of scientific computing, take a look at that: http://julialang.org/
So basically it ends up being a choice among C, C++ and Java. And for one to evaluate the performance of a language or tool, it depends on factors like usage, algorithm, accuracy needed, time factor, volume of data. Been going through few tools, found the Julia is more inclined towards cloud computing although having its say in machine learning as well. What about R and Octave tools? How to go about choosing objectively?
Also take a look at the following paper which compares Matlab, Octave and Python on 4 different Linux clusters. Interesting in that Python is quite on par with Matlab in some benchmarks.
Well it is hard to tell which one to choose actually. I use Python daily since 4-5 years so I try to do everything with it but people generally prefers the programming language they know to avoid losing time while learning a new thing. If you ask me, I generally avoid Java and Matlab since they have bloated/huge runtimes e.g. you can't just execute them on another machine without having Matlab installed or JRE installed. Anyways, it's up to you :)
Now adays its not difficult to select from the available machine languages. First comes first, u have to make up ur mind on the domain which u are going to operate. Mr Ozan has clearly specified in his answer , which to use and how to go for it. and above all its easy to use the language which u have command on. as it gives u more flexibility to use it, and u know exactly to what extent wud it help u in ur required domain