Stop teaching Matlab

Many universities rely on Matlab for their mathematical and technical computation curriculum. This is because the syntax of the Matlab language is very intuitive and a perfect fit for numerical computation. Matlab also comes with a huge library of sophisticated math functions and excellent documentation. And universities are often equipped with campus-wide Matlab licenses. Professors as well as students can use Matlab for free.

Disorderly Conduct, image by Ken

Mathworks, the company behind Matlab, is pursuing an obvious plan with these generous campus licenses. Their strategy is aimed at selling software to mathematicians, engineers, physicists and computer scientists after they graduate. Since Matlab is often the only or most convenient tool these scientists get to know during their studies, Mathworks’ plan is very successful.

If for-profit companies decide to base their research and product development on Matlab I have no objections. The market will decide if it is the right decision.

But I find it appalling that a wide variety of todays scientific advances are based on a proprietary software1 product such as Matlab. Institutes that base their research on Matlab are at the mercy of a for-profit US company to sell them and renew licenses.

Scientific results based on Matlab are not free2. To reproduce, validate and build upon them, a Matlab software license is required. It is my opinion that, since science is largely paid for by the public, its results must also be available to the public. They must be free. It is thus a fatal mistake to train students and young scientists, the future creators of scientific knowledge, in using tools that restrict the freedom of their results.

There are many excellent free alternatives to Matlab. I would just like to point out two of them here: The long-established Matlab alternative is Python with the computing environment SciPy. The other alternative is new: Julia, a dynamic programming language designed to address the requirements of high-performance numerical and scientific computing. From a C++ developer’s perspective, Julia’s expressive type system and the excellent performance compared to compiled languages are very attractive.

There are numerous free software alternatives that allows researchers to do open and reproducible science. As of Spring 2014, the MIT linear algebra course suggests Julia as a Matlab alternative to solve homework problems. I hope teachers and professors will switch to free software and instruct the next generation of scientists how to produce free results.

  1. Proprietary software is software that does not give the user freedoms to study, modify and share the software, and threatens users with legal penalties if they do not conform to the terms of restrictive software licenses (source).
  2. free as in freedom, both negative (free of oppression or coercion) and positive liberty


#1 Chris Wellons wrote on February 6, 2014:

The authors of TeXmacs have made the same argument here,

“As a mathematician, I am deeply convinced that only free programs are acceptable from a scientific point of view.”

#2 Ivar Nesje wrote on February 6, 2014:

The real losers in Mathworks system is the companies that hire graduates with knowledge of Matlab, but does not supply them with a licence. Because of the price of a licence, this might be a sound business decision, but the result is that people that learned to put a computer to work, will have to do the work manually instead.

Leave a comment