Recently, this site got more traffic than usual. So I thought I welcome all of you in the new year (which is already three weeks old now). And I provide some new content for you to read. For me, the selected topic is important. I welcome very much any discussion about it. I am currently writing a requested paper for an on-line journal about Euler Math Toolbox, so I could benefit from your input.
What is the difference between Euler Math Toolbox and Matlab? Or rather, what is the intended difference? And are there alternatives to both?
First of all the following points are obvious to me.
- Matlab is profiling itself in the professional market. It is called the „industry standard“, and it is advertised as a must-know to students. Matlab tries very much to serve the needs of the industry. The best example is its simulation toolbox which connects Matlab to hardware. Matlab is backed up by a group of commercial programmers.
- Euler Math Toolbox is for education and research. It is not intended to be used as a professional tool in industry. EMT is backed up by open software.
- Both systems fall short for specialized applications. Most professional or research software is compiled in a general programming language and does things that a one-for-all software cannot do.
- We need to educate our students in general programming, not in software systems, especially not in commercial systems. With a good background in programming any software can be adapted easily.
- That said, a tool like Euler Math Toolbox or Matlab can be useful for quick computations or to mathematical demos. And for this, both systems are equally well equipped with an advantage for EMT.
- We should have free and open, reliable numerical libraries for our main computer languages.
If you are interested in the primary differences between EMT and Matlab, here is a list.
- EMT is open and free, Matlab is commercial with a considerable pricing.
- The user interface of EMT is notebook oriented similar to Maple or Mathematica, Matlab is command oriented. Both have scripts, of course, and are similar in this respect.
- Both systems can do symbolic computations, EMT with the free Maxima, Matlab with an additional package you need to buy.
- EMT can use many open external programs like Povray, Python, C, Scilab, Latex. For Matlab, you can buy powerful external packages to do industry strength computations.
- Matlab has an optional compiler. In EMT, you need to write C or Python for more speed.
- Matlab is used all around the world, and you will easily find someone with the same problem as you have. EMT has a community, but it is way smaller.
There might be more differences that I forgot to mention. But all in all it is clear to me that EMT deserves to be used in education much more than it is right now. Matlab, on the other hand, should be removed from general education. It should be reserved for specialized courses done by engineers who have used the program for their work.
Alternatives? There are many.
- R is a statistical package featuring a matrix language as well. It is free and has a big community. The programming in R is not as easy to learn as they claim, but to get statistics done it is not necessary. The interface is ugly and cumbersome to use.
- Maple, Mathematica or other algebra software are commercial packages in the higher price range. They offer more advanced features than Maxima and often yield better results. But they are not designed to be used as numerical software.
- Geogebra tries to be the knife for all purposes. It is a beautiful software for schools and has a large community. Clearly, it falls short in the area of numerical and other programming. Actually, it is a whole different category of software.
- Python is probably the best alternative to big software packages. There are very nice packages for plotting and for numerical computations. The symbolic package falls short in comparison, however. The Sage project relies completely on Python and has a web interface which clearly is the proper way in the future.
- General programming langes are the way to do software education in universities for engineers and math students. Most courses have an obligatory course in Java, and rightly so.
Open for discussion.