What programming language do you recommend to prototype a machine learning problem? Currently working in Octave, but due to the poor documentation progress is very slow.
What language is easy to learn and use, and well documented to solve machine learning problems? I am looking to prototype on a small dataset (thousands of examples), so speed is not important.
EDIT: I am developing a recommendation engine. So, I am interested in using Regularized Linear Regression, Neural Nets, SVN or Collaborative Filtering.
 A: If you want to use something out of box, Weka could be a great starting point. There is no need to program anything. You import your data, visualize it and play around with different models.
Next up in chain would be R. There is some learning curve associated - especially with munging your data to fit into R data structures but once you get over that, you have tons of libraries which offer all the machine learning capabilities without much effort.
Next up would be hand programming the machine learning algorithms. Since you are already using Octave and looking for alternatives, maybe what you want is not to hand code algorithms in some other system but to just use the libraries written by other people.  
If you go down the R path, you might find book by Luis Torgo (Data Mining with R: Learning with Case Studies) very useful (disclosure: no affiliation). It describes in depth case studies which you can adapt to your problem.  
A: You might get better answers if you specify the specific algorithms you're interested in. I use R for this sort of thing (I do time series econometrics, though, not machine learning); you can see the existing functionality here:
http://cran.r-project.org/web/views/MachineLearning.html
and there is R code to implement the analysis in Hastie, Tibshirani and Friedman's Elements of statistical learning:
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
R's packaging system is pretty great and nudges people towards documenting their code, and it's open source so you can always go look at the implementation.  I haven't used Matlab in a few years and didn't use it for much machine learning -- their toolboxes are usually well documented but can be pricey, but user-contributed code is going to be as poorly documented as any other. 
A: In his machine learning online course, Andrew Ng suggests using Octave/Matlab.
I recommend you enroll in the next edition of this course: it is really useful and you will learn many things about Octave and about the different machine learning algorithms.
EDIT 1: I agree with other people who prefer to work in R. However, in solving the problems of machine learning, most of your calculations will be in matrix form, and as pointed out by @Wayne, Matlab or Octave languages are very popular because of their power.
You may want to have a look at the solutions to machine learning course exercises proposed by other students; surely you can learn some things from them:
Gkokaisel Github
Merwan Github
A: The scikit-learn (now sklearn) should meet several of the criteria you described (speed, well-designed classes for handling data, models, and results), including targeted applications (L1/L2 penalized regression, SVM, etc.). It comes with a rich documentation set and a lot of examples. See also its description in a paper published in the JMLR.
An alternative framework in Python is Orange, which can be used through a gentle GUI or on the command line directly. For collaborative filtering, pyrsvd might be interesting but I've never tried it. However, Apache Mahout might certainly be used for collaborative filtering.
A: If you refer to an industrial prototype (i.e. something that is done to be used by real people and not for pure research) python is at the moment the only way to go.
If you use Matlab, Octave or R you get an easy to use environment for ML research but it will be a nightmare to put the model at work with an user interface or with a web service.
In python we are lucky to have both an extensive scientific ecosystem (sklearn for ML, pandas for data wragling, matplotlib/seaborn for visualization) and an application ecosystem (think about django and its rest framework). 
Python it's an easy language to learn.
In the future I hope the Javascript ecosystem will become scientifically sound as the python one, but despite some great projects I don't see that coming soon.
Don't wrap yourself in a box, use a general language!
