Matlab is not available everywhere. In fact, it is a rather expensive system for individuals. Classroom licenses are not that expensive, but a research license with a number of options already cuts a substantial hole into the budget. Facing shrinking financial means, universities are interested in reducing these expenses if alternatives are available. For Matlab, one of the alternatives is the free and open source software Scilab.

If you start the software the first time it looks almost like Matlab.

That is because Scilab concentrates on providing the main services of Matlab in an open package. There are even converters between the programs. Scilab is inspired by Matlab and basically a re-engineered clone of Matlab. Additionally, it tries to be a connected software which allows to use Python, Java, Excel and other external programs. So it has some extras beyond the basic ideas that come from Matlab. There are many other projects that started with this idea: Make closed software or operating system open so that we are able to check the code or extend it to our needs. Maybe even try to make the open version better than the proprietary one. Is this a good idea?

Let me throw in my doubts. First of all, chasing the development of another system might be chasing an unreachable target. E.g., Linux was trying to mimic the Windows experience so that users are more willing to switch. This did not work. Instead, the great developers of Linux would have spent their time better if they had developed and followed their own ideas, especially in the field of user experience and the user interface. The same is true for Open Office and many other programs. Mimicking a huge company like Microsoft will never be the road to success. You can see that with Android or OSX which does not fall into this trap.

Secondly, the target may not only be out of reach but it may also be the wrong target to follow. In my opinion, this is clearly so with Matlab. For research, I would prefer a public library with open routines upon which to build reliable software. And with open, I mean open and completely free to use. Libraries with free and non-free versions are an incomplete solution. Most of the algorithms have been invented with public funding anyway. So I see no reason why the same routines, slightly improved, should now be locked in some expensive libraries.

Scilab may be open in contrast to Matlab, but it is still not a library of functions I can use effectively and easily from any other software. If that is my goal there is not point of learning the strange programming language of Matlab or Scilab. If you think that it is nicer to use the Scilab language than a general programming language like Python, Java or C++, you are wrong. Your viewpoint is that of an expert in Matlab. A new user will learn a programming language just as easy as the Matlab language. And he can quickly do the same things, provided he has a potent library for plotting, numerical data types etc. at his fingertips.

For education, Matlab or Scilab are a horror. They do not educate to write clean and readable code. Instead of learning to write a few lines of looping the students learn to fiddle with Matlab to vectorize an algorithm. My key moment was when I tried to implement an algorithm to detect spam messages in Matlab. With a lot of tricks involving regular expressions and dictionaries and after one day of development, I was able to get the code running in two minutes. Then I tried the same in some simple lines of Java code. That took me one hour at most, looked cleaner, and moreover the code completed the task in two seconds.

Even, if a user is not interested in programming and just looking for a system to do some plots and simple computations, there are far better solutions with smaller footprints and nicer output. One of my favorites is Python together with the Matplotlib – besides my own program Euler Math Toolbox, of course.

That brings me to Euler Math Toolbox (EMT). I gave up since a long time to copy Matlab. In fact I threw out the oddities in the Matlab syntax. One example are the round brackets for vectors and functions alike. Another one is that [2 -3] is the vector with the two elements [2,-3], but 2 -3 is -1. EMT now requires a comma between the elements. These, of course, are minor points. A more serious complaint I have is about the interface of Matlab or Scilab. They still do not have a notebook interface like EMT, Mathematica or Maple. The user has to work command line oriented just like in the old times of Telnet terminals. Cursor-Up will recall the previous command and overwrite the current command line.

When I say that I do no longer try to copy Matlab I must add that Matlab is indeed a very might program with lots of features. It is impossible to keep up with the development section of a billion dollar company. EMT instead concentrates on things like a nice interface or interoperability. EMT is in fact a very might system, but it does not try to cover all needs in numerical analysis. For special purposes, there should be special tools. If it makes sense, tools in Python or C can be used from EMT. So I concentrated on making the interaction with other programs easier. Probably, EMT could also communicate with Scilab or Matlab.

The other main goal of EMT is to be useful for high school mathematics. Thus it incorporates the might algebra program Maxima seamlessly. The combination can hardly be beaten for schools and elementary university education or research. Moreover, you can nicely export EMT notebooks.

Finally, I recommend trying EMT instead of forcing oneself to follow the dictate of a commercial tool. The actual use of Matlab in the industry is far overestimated. Big companies have enough money to license Matlab or any software, but they are also interested in algorithms they can inspect, change, or patent. In an ideal world, they should be able to refer to a public trusted and free library developed by the specialist at public universities.

Radovan OmorjanI also tried Scilab along with EMT in my teaching and figured out that my students preferred EMT and its Notebook way of working. Therefore I decided to use EMT and IPython Notebook environments for this year. It seems to me that Notebook style is more attractive to the users. By the way, Python is quite a long time present in the software space but the IPython Notebook is introduced recently. On the other hand, EMT Notebooks have always been the main way of working.

Regarding the popularity of some software products, it can be noted that there is quite a strong positive correlation between the popularity and the additional packages available. For instance, there is enormous number of packages for Python and R (and still growing) and those free open source systems are among the most popular of all computational systems. They also prevail regarding Matlab even there is also rather huge number of toolboxes and additional packages for Matlab as well.

Regards,

Radovan

Radovan OmorjanFree-opensource software seems to be far from the inferior software systems comparing to the proprietary ones. See this link for instance:

http://www.scilab.org/community/news/20141114