In the previous post, I was arguing that Matlab is an excellent programming language (and environment) for data mining. However, as you know, no programming language is perfect. Matlab also has its drawbacks. Here are a few of them.
First, Matlab is an interpreted language. Which means no compilation. The good thing is the on the fly programming-executing aspect. On the other side, there is no declaration or type checking. This is normal since Matlab is not by definition a typed language. Or if you prefer, every element is a matrix. For example, the number 3 is stored as a 1×1 matrix containing the number 3. As there is no type checking, if you put by mistake ‘3’ as a string in your matrix, you will have no error and no warning.
Again, as there is no declaration, this situation can happen in Matlab:
myvariable = 0;
myVariable = 10*i;
Indeed, since no declaration is needed, mistyping errors are dangerous in Matlab.
Another issue in Matlab is its execution time which is quite high in comparison to C++ or even Java. Of course one solution is to use the MEX interface with which you can directly call C/C++ code. However, the communication between Matlab and the C code takes time and it is generally slower then a direct C/C++ code.
Even with these limitations, I’m personally convinced that Matlab is a very powerful tool for data miners. The main reason is that you spend less time on the programming part and more on the problem your try to solve. If you think Matlab has other important drawbacks or on the contrary, if you think that the ones I mentioned are not really drawbacks, feel free to comment.
Note: Data Mining Research is on holidays until August, 2nd.