Academic Math Software: Commercial or Open Source?

June 6th, 2011 | Categories: math software | Tags:

Should academic mathematical software (for both teaching and research) be open source, commercial or a mixture of both?  Personally I feel that a mixture is the best way to go which is why I am equally at home with either Mathematica or Sage, MATLAB or Scilab, GSL or NAG and so on.  Others, however, have more polarised views.

Here are some I’ve come across from various places over the years (significantly shortened)

  • We should teach MATLAB because MATLAB is the industry standard.  Nothing else will do!
  • We should teach concepts, not how to use any particular program.  However, when things need to be implemented they should be implemented in an open source package.
  • All research should be conducted using open source software.  Nothing else will do!
  • Students are being asked to pay hefty fees to come to our University.  We should provide expensive mathematical software so that they feel that they are getting value for money.
  • We should only provide open source software to staff and students.  This will save us a fortune which we can put into other facilities.

and so on.

Personally I feel that all of these views are far too blinkered.  When you consider the combined needs of all teachers, researchers and students in a large institution such as the one I work for, only a combination of both open source and commercial software can satisfy everyone.

I’d love to know what you think though so please have your say via the comments section.  If you could preface your comment with a brief clue as to your background then that would be even better (nothing too detailed, just something like ‘Chemistry lecturer’, ‘open source software developer’ or ‘Math student’ would be great)

  1. MySchizoBuddy
    June 6th, 2011 at 22:41
    Reply | Quote | #1

    having Matlab experience on your resume is waay better than octave/scilab experience. Hiring managers search resumes for specific keywords. even if you are really good with scilab and can do Matlab as a result you will be skipped as your resume won’t even show up.

    I believe we put students are risk of not getting a job by not teaching the tools that are used in the industry. It is going to be hard to convince a HR manager that scilab experience counts as matlab experience as well.

  2. Simon
    June 6th, 2011 at 23:51
    Reply | Quote | #2

    @MySchizoBuddy: But that kind of attitude has two problems: 1) It turns universities into nothing more than technical colleges where job training is provided. 2) It promotes the status quo and helps keep matlab as the industry standard.

    Personally, I think that if a student has a good, broad knowledge base and has been taught how to think, then picking up new software should not be too hard. The university just needs to develop a reputation of producing such graduates.

  3. Simon
    June 6th, 2011 at 23:55
    Reply | Quote | #3

    That said, I think that students should be exposed to a broad range of software (open and closed source) at uni so they can make intelligent choices based on their experience. I know that class time is an issue – but some software can be delegated to self-learning in an assignment. E.g. teach matlab during class, but give an assignment latter on that needs to be done using NumPy.

  4. June 7th, 2011 at 02:08
    Reply | Quote | #4

    There are at least three (conjoined) issues here:

    1. Students benefit from using “industry standard” products. These sells a student better on a resume/CV than things no one has ever heard of. Note: “industry standard” does not translate as “commercial”; in many areas linux would be considered “industry standard.”
    2. As a researcher, I tend to use the tool best suited to the task at hand and I feel inclined to encourage my students to do the same. However, it is easy to take this approach when you have years of experience with a vast array of software solutions (which is usually not the case for your average undergrad, for example).
    3. There is something to be said for standardizing within a curriculum on a single software platform that students can master in their brief time as an undergrad (for grad students, I feel encouragement of point #2 is essential…and if they have to sweat to learn a new tool, good for them!).

    So what do I do? Generally I think for undergrads, points 1 & 3 drive a decision to use a commercial product (Mathematica, Matlab, and good old C/C++ in my case). However, for my research students, I sprinkle in a good helping of point 2, if only to help make them aware of a larger modeling software ecosystem out there.

  5. June 7th, 2011 at 03:16
    Reply | Quote | #5

    Not sure about teaching,but as a graduate student in both engineering and applied math, I think it really depends, on the problem, on the budget, even on who you are working with. In general, for graduate students it’s the capability of combining theory with implementation that matters during this stage of training, instead of prowess of a soft. I’m sure anyone with decent experience of scilab would be able to pick up matlab in two weeks.

  6. MySchizoBuddy
    June 7th, 2011 at 20:25
    Reply | Quote | #6

    like i said anyone with scilab experience will pick up matlab easily. Thats a given. But someone with scilab experience won’t be called for an interview anyway. scilab isn’t the search term used by HR. that’s the way it is.

    Is it the job of the university to remove the status quo of matlab?

  7. Joplin
    June 7th, 2011 at 21:53
    Reply | Quote | #7

    Commercial mathematical and engineering software will soon be history if they don’t lower prices considerably.

    People is currently seeking free alternatives because the licensing of most of these programs, especially matlab, is extremely high.

  8. June 7th, 2011 at 21:56
    Reply | Quote | #8

    I am a director of Climate Code Foundation which promotes Open Source in Climate Science.

    Clearly there is scope for a wide range of legitimate views on this topic. In my opinion, a totally Open Source “science pipeline” is the future. Technically, Open Source will gradually become more competitive until the proprietary solutions are eaten; politically, the public will demand that they have access to the Output of Science and this can only happen if it’s based on Open Source tools (at least for the science paid for out of the public purse; that is, all of it).

    So, why support the past rather than The Future?

  9. Alexandre
    June 7th, 2011 at 22:02
    Reply | Quote | #9

    I have just bought a student license of Mathematica 8 and I could not be happier. I think it is worth every cent I have paid. Actually, I have even bought their support (US$ 75,00 for 1 year of e-mail support). First I thought it was expensive but, as a new user (and after expending hours and hours reading help files, books and forums looking for some specific answers) I saw that it was a great option to speed up the learning curve. I do love open source software, but only commercial options have such options.

  10. Martin Cohen
    June 8th, 2011 at 02:48

    As a retired programmer, I find the commercial prices for Matlab, Labview, Maple. and Mathematica way beyond what I can afford. So, the home version of Mathematica for $300 intrigued me. When I heard that it is $240 this month, I ordered it.

    I am also going to try Sage and Scilab.

  11. June 10th, 2011 at 03:53

    At LSU we have access to the student version of Mathematica, and campus has licenses to go and work on matlab. I see no reason to make students buy their own license, as far as teaching open source, they should teach in a way in which you could apply it anywhere. Like basic computer science, and only specialize if need like for electrical engineers or something.

  12. Michal Kvasnicka
    June 17th, 2011 at 12:53

    The MATLAB is really extraordinary computing tool and from my point of view is more then enough for 75-85% of all possible computing needs at academy sector (from teaching of numerical math to simple HPC projects). MATLAB is able to create very powerful codes during few minutes or hours, same task with low level languge (C/C++, Fortran, etc.) takes significant longer time of development.

    Any opensource high-level language does not provide comparable level of capabilities (programming, data visualization, GUI, etc.).

    Of course, the MATLAB is expensive. But the price correspond to the extraordinary capabilities and globally recognised industrial standard together with huge user community.

    So finally, MATLAB + selected toolboxes is the best available solution for Academy math software.

  13. Ben
    June 19th, 2011 at 18:44

    I’m a student working on the border between chemistry and physics. On general principle, I’d like to say that people should use whichever tools allow them to be most productive. Personally I like both Mathematica and Python (and more broadly, both Windows and Linux), although in any given case one or the other might be more suitable and here the question of choice is more or less moot. Unfortunately, in practice, licence incompatibilities can drive the decision: for example, I wrote something in a mixture of C, Fortran, and Python where it was necessary to extend and interact with a code licenced under the GPL. Similarly, one can find Matlab code licenced under the GPL, but the legal status of this seems to me rather unclear. If there is no intention to publish or distribute the resulting code then these objections are of course irrelevant, but in an academic setting this has to be balanced against the possibility that the work may have been performed using public funds–this is reflected in the policy of research councils such as EPSRC, which require all notes, data, analysis work, and code to be formally released to the public. So ultimately the decision is not just a practical one, as any particular choice brings with it fairly weighty legal and political implications that admit no easy answers. My view on this is that permissively-licenced open source software (BSD/MIT/Apache licence, etc.) is generally preferable to “Free Software” and commercially licenced packages if available and appropriate, but needless to say this is not always the case. Realistically, it is often down to the individual or institution to find their own compromises, and I don’t see this situation changing any time soon.

  14. Simon Page
    June 28th, 2011 at 20:04

    As an undergrad engineering student I want be taught on industry standard software. As an example Autocad offer free student versions of all their packages. They encourage student participation & this has helped them become the industry standard CAD package. Wake up Matlab, Maple Etc., stop charging & take over!

  15. Eric Winter
    May 7th, 2013 at 12:19

    10 Arguments for Switching to Open Source NOW

    We should switch to Open Source software immediately.

    Why? Because:

    -1- the two primary objectives of every commercial entity are continuity and profits — that’s where our licensefees go;

    -2- money spent in academic research should benefit academic research and not commercial companies;

    -3- that’s what we owe the taxpayer — our budgets should go to where the budgets are intended for;

    -4- money gone to commercial companies flows out of the realm of academia;

    -5- money gone to Open Source will benefit academia in the long-term;

    -6- the long-term effects of switching to Open Source software will create demand for specialized support which will create jobs;

    -7- crossover will occur from mathematics to software development, further pushing the importance of Open Source;

    -8- the strategic importance of software development should be a key focus in any academic setting — it is the nanotechnology of the most powerful tool available to mankind: the computer;

    -9- and we should teach our students right from the start not to rely on commercial tools, but instead help shaping their own tools;

    -10- finally, by shaping our own Open Software tools, we create a new industry standard from within the industry itself;

    What the heck are we waiting for?!

    –Eric Winter