These are a bulk of people pondering the same question and exploring different answers but at a hanging stage not knowing which one is correct and which one should they follow. The answers are very conflicting some share it on the basis of the research while some share their personal experience which confuses the newbies as hell. Well, the answer to this question depends on what you are trying to develop and why have you indulged in developing a machine learning app in the first place. I know the answer is a diplomatic one.
But, let me tell you one thing most of the popular development languages are adding their support to simplify the machine learning. This is because of its high adaptability. When we think of machine learning, four basic languages come to the mind:
Let's conduct a comparative study on the factors affecting the machine learning.
While choosing the best programming language, speed is an essential thing to consider. R was basically built as the statistical language. This means that it has higher data-analysis and statistical support. On a contrary, Python depends on the packages. Hence, when it comes to tasks related to statistics, R has an upper hand compared to the Python and is a bit faster. So, if your machine learning project has to be rapid, R programming is your choice.
2) Learning Curve
When it comes to functional perspective, R is the programming language. Whereas when it comes to being object-oriented, Python is the language. If you belong to a functional programming background, learning Python would be a lot easier as compared to R. Coming to the Octave and Matlab both are similar to writing some mathematical equations and yes again easy to learn and implement.
You can't really pick any one programming language for machine learning. It depends on your technical background and experience as to which language will be easy to learn for you.
The only language which is paid and needs a license for its use is Matlab. The other three preferred languages for Machine Learning are open source and are totally free for the use. Hence, when you have free resources available why would anyone opt for the paid? This is why Matlab lags a bit back 9in comparison with other languages.
4) Support From Community
Coming to the popularity standards, Octave is not that prominent in the public. The other programming languages are highly popular in the market and have massive community support. Also, the adaptability rate of the all these three is quite high as compared to octave for machine learning.
5) Production Ready
When it is about the statistical analysis, R is the suitable programming language. If it is about the computer vision related task, Octave and Matlab are the preferred choices for the programming language. If it is about general tasks like data processing and result processing, Python is a more suitable programming language. Well, coming to picking one for Machine learning programming, Python will be more suitable. The generic nature will make integration of machine learning easy with other software.
6) DNN Framework Support
Caffe and Tensorflow are the two most popular frameworks in the current time. Caffe has support for Matlab and Python while Tensorflow has support for Python and R. Now, for the lesser popular frameworks like Theano, Python is the single language that has the support. Python is the only language which has a universal support for every framework. The result is clear, Python has an upper hand over every other language.