GNU Octave Reviews

Almost as good as Matlab

Negative Review by Superbest
about GNU Octave and Scilab, MATLAB, Mathematica Nov 2011

Unfortunately it tends to be the case with many OSS projects that they forever drag behind as a cheap knock-off of some established, already working commercial product. You have it with Gimp and Photoshop, Desktop Linuxes and Windows, MS Office and OpenOffice derivatives, and so on.

Octave syntax is very similar to Matlab, it would probably literally run Matlab files with no modification. So you won't need to adjust to syntax, or most of the libraries - they're all almost exactly the same.

The reverse is not necessarily true - Octave tries to "improve" on Matlab syntax and libraries. The differences are minor, and in my opinion extremely trivial. I don't see why anyone would care one way or the other. I guess with Octave's conventions, your life as the coder is 0.0001% easier (Matlab is already very good at coming up with "nice shortcuts"), so what's not to like? Well, thanks to this, there's a good chance Matlab will NOT run Octave code as is (basic things like the load function are altered). This is even more annoying because Octave uses .m by default, and pretends to play nice with Matlab. Don't be fooled- if you use both side by side, keep them completely separate from each other.

Oh, there's converters to make Octave code Matlab compatible, but they're not effortless to use. Why bother for a 0.0001% gain?

Now that's the code. But unless you're a crazy person who only writes Matlab code in Notepad, and only uses the IDE to execute it, there is a huge gap in Octave which is immediately obvious: There's no GUI. There's no variable editor. There's no drop-down for selecting a plot type. There's no command history. There's nothing! It's just CLI shell. On Windows, "Octave" is basically a glorified MS-DOS prompt! If I need to explain why this is bad, clearly you have no idea whatsoever what Matlab is, what it does, or what it is for.

The CLI itself is buggy and has annoying quirks sometimes. Lines are not wrapped but instead you can only see part of a long command. Not very helpful, especially with long directory paths, plus the clunky Windows CLI (and all the drama with selecting/copying and what not) makes it even more annoying (although I guess it's sort of "my fault" for not using it on Linux). Besides that, in the sense of doing everything that Matlab's command window does, I guess it's fairly decent. The ease of doing those same things is another matter. As I said, the other helpful things Matlab provides, like the variable editor, code completion, pressing F1 for documentation and so on, are nowhere to be seen.

That brings me to another important point: Documentation. Octave docs don't suck, they're actually quite good. But thing is, the competition isn't just "quite good", it's bloody amazing. Hell, you're better off using Matlab function docs as reference when using Octave- the explanations are just far more comprehensive, and there are more examples. Speaking of examples, maybe you're wondering, "does Octave have nice helpful demos like Matlab?" Haha! Yeah, right.

Lastly, plots. Octave appears to use GNUplot for this. The results aren't nearly as pretty as Matlab's. Probably Matlab has a wider selection of plot kinds (I couldn't see because NO DROPDOWN). Rotating and things like that are slow. Interaction with the plot is extremely limited (unlike Matlab where you can do all sorts of things to the plot from its GUI) and noticeably slow. Remember I said Octave doesn't suck? It doesn't, but GNUplot sure does.

Oh, and, Matlab has almost no bugs. Octave has quite a few, especially if you are not careful about which packages to install. Your own code doesn't have enough bugs to keep you entertained? Keep wishing the environment would throw in a few of its own? Boy, you're gonna love Octave.

I probably make it sound worse than it is, Octave really isn't that much worse than Matlab (with the obvious, glaring shortcomings such as the interface). In fact, if you find yourself unable to obtain Matlab, you could probably use Octave with very few problems, provided you do what you already know how to do in Matlab. As for learning the Matlab/Octave syntax and libraries, you probably don't want Octave. And at the end of the day, if you need to use Matlab, probably your company or institution will have/buy a licence. And at that point, there is absolutely no reason to use Octave.

You might be wondering, as I once did, how another popular software, Mathematica, fits into all this. It doesn't. Mathematica does different things than Matlab. If you need to do Matlab stuff, but don't have Matlab, use Octave. Don't do numerical computation in Mathematica, that's silly. When you are doing purely symbolic computation, cellular automata, data visualization, function plotting and the like, especially when it gets really complicated, Mathematica will make your life easier although you could probably realistically do it in Matlab, too.

There's other free suites with similar functionality to the above three. Scilab is probably the most prominent. If unsure, don't bother with them. Just use Matlab (or failing that, Octave).