A Look at Octave (vs. SciLab)
Note: This blog originally appeared on Scope Junction in May 2013. Since then, Octave has seen significant additions in the GUI department (see the blogs referenced at the end), so some of the comparisons here are outdated. I hope you may still find it useful though.
Did I choose wisely in grabbing the SciLab reins instead of the Octave ones? Before devoting any more precious time to SciLab, I took a look at Octave, too.
Prior to downloading either package, I naturally did some research to try to determine the "best." All I discovered was that Octave uses identical syntax to MATLAB in most cases, while SciLab travels a different path.
Not having had any MATLAB experience, it didn't make much difference to me, but learning the "industry standard" syntax seemed a good way to go. But, after seeing the horrendously incomprehensible installation instructions for OS X, I quickly changed my mind and downloaded the easily installed SciLab instead. It comes with MATLAB-to-SciLab translators, so that issue is covered if you ever want to run MATLAB code.
Still, I've been hesitant to devote any more time to SciLab if Octave is significantly better. So, I tried again. This time, I managed to find an OS X package that promised an easy install, even if it was a couple of point releases behind. Good enough. Windows users might have better luck, as its download seems to be more current. Linux – no comment.
Between the two packages, I was most interested in comparing:
- The development environment
- Instrument control
- GUI support for user programs
Both programs have loads of documentation. SciLab has the aforementioned help system, which includes lots of examples and images, though it can be hard to understand for a newbie, and suffers a bit from being in Frenglish. I also found some intro and tutorial documents. Octave has an 800-page manual with minimal examples and images. I didn't go looking for tutorials, but the manual has a Getting Started chapter.
Being able to control and receive data from an instrument is extremely important to T&M equipment users, and both packages appear to have the basics (see the relevant SciLab and Octave pages). As I haven't tried instrument interfacing yet, you'll want to take a closer look if this is your main priority.
SciLab appears to be the winner again in the GUI department. Although creating a GUI panel with buttons, fields, graphs, and other elements seems more complicated than it needs to be, it is quite doable, and is on my to-do list for future projects. Octave doesn't have this capability.
SciLab also has a module called Xcos, which is a graphical simulation environment comparable to MATLAB's Simulink.
Finally, there is at least one company providing commercial extensions to SciLab. Equalis sells a number of add-ons, including instrument control, should you find the idea of rolling your own code too daunting.
So, which is the right package for you? If you just gotta have MATLAB syntax compatibility, Octave is the clear choice. In most of the other categories I've considered, SciLab is my choice. They're both amazing pieces of free software though. What do you think?