What tools do Machine Learning experts use in the real world? I'm currently taking a class covering some topics in machine learning. The class is taught in MATLAB using Liblinear so far. I was curious though what kind of tools people used in the real world to tackle these problems. As I'm learning now, MATLAB is great to get your feet wet, but it is seriously lacking in terms of performance, scalability, and maintainability. Is it mostly commercial software? Do people rewrite their SVMs from scratch every time (doubt it)?
Also, what language to people use? MATLAB seems to be popular in research circles, but Python seems to be growing in support as well. What do people at say Google or Facebook use? Is it all heavily-optimized closed source code?
 A: If scale is not an issue then any solution you probably already know is fine. It is more a matter of personal and company choice (cost/legacy issues). So it doesn't really matter if it's going be R or MATLAB, Python or Java, Weka or Rapidminer, open source tools or propriety code. However, big players like those you mention have to deal with scale. 
If scale is the issue then obviously you can't deploy any fancy algorithm with complexity higher than $O(n)$, like SVMs in the dual or kNN or so many others. Even more, you have to go for algorithms and implementations that are made to work in distributed environments: data are scattered across more than one machine, limited communication is allowed between machines. Obvious choices are algorithms based on Stochastic Gradient Descent, like Vowpal Wabbit (created at Yahoo! labs). You also have libraries that run on top of Hadoop (free version of Map/Reduce framework developed by Google), like Mahout. 
Problems and challenges in the big data environment are unlimited. For example, a common assumption is that the model $w$ you try to learn will live in a single machine, which is fine until you start having a few hundred servers reading and updating that same model in a production environment. You can look up papers and video lectures from NIPS and ICML from Yahoo!, Google, Facebook and others where they discuss similar issues they deal with and solutions they deploy (search for scalability). 
A: MATLAB was primarily developed for optimization and mathematical simulations in engineering problems. But yes it has performance issues when it comes to machine learning, optimization, etc., in terms of customizing ability.
Over time, most statistical analysis / machine learning has shifted to R and Python, because of an active community presence for development of almost any complex algorithm. You don't have to write code for SVM or neural networks from scratch, unless you really want to change to algorithm itself, which is also possible, and which is what Google and Facebook do internally.
So if you want to try machine learning for studying purposes, WEKA, R and Python will do the job. but if your really want to develop some data analytics products based on these algorithms, Python and R are the way to go. R has a steep learning curve, though.
WEKA became popular because earlier in industry, because most of the analytics practitioners came from an IT (Information technology) background and hence were comfortable with JAVA, but over the time mathematicians and computer scientists have moved to R and Python.
A: MATLAB is a great tool. However for Machine Learning simulation there is an increasing interest in R. R is emerging as a great platform for Machine Learning, Data Mining, Statistical Modelling (etc.) tasks. R has got a rich range of packages for statistical modelling.
With the emergence of Big Data R has got a positive edge. If you need to perform your computation on large and distributed sets of data then R is a great tool. R has got integration APIs for Hadoop and also for Spark.
Talking about production system and real life intelligent software products could be created using R. In such products you could use a mix of technologies. Like if you need to create an Enterprise Analytics application then you could program the core logic of the application in JAVA and use R for statistical and modelling aspects. Following articles give a nice explanation as how to integrate R with Java:
R Tutorial: How to integrate R with Java using Rserve
R Tutorial: How to integrate R with Java using rJava
So other environments are also great but R is emerging at par with them.
I hope this will be of some help.
