For all the reasons he says, he could perfectly publish the source code of mathematica (e.g. under the AGPL) but still do not accept external pull requests. There are many successful open-source/closed-development projects out there.
The point he doesn't mention is that it costs money to develop it closed source, and giving away the source (or even the binary) would cut off funding. I'm obliged to agree with him, since there isn't anything free that comes close to Mathematica.
As a matter of fact a large part of the Mathematica codebase is inspectable (the part that is written in Mathematica itself) [1].
Disclaimer: I'm a Wolfram employee, but these are my opinions and any decision on open sourcing the language would be way above my pay grade.
[1] https://mathematica.stackexchange.com/questions/1742/what-is...
But that's still not enough and that's why I still sometimes work on Octave (although I've been semi-inactive for the past few years). Freedom isn't a spectrum; it really is all or nothing. Unless we're all free all the way, none of us is. It's not fair of me to share Matlab or Mathematica source code with people who cannot have access to the software that runs it, especially from a mathematical and scientific point of view where reproducibility in software should allow anyone to acquire that software.
Less excitingly, read its EULA. I can't find a copy of it because they don't publish it, but I do remember a part that allowed you to modify and distribute Mathworks-written m-code to other Matlab license holders.
But I think the open vs. closed source discussion in academic research is not really about that: lots of Mathematica code is fairly concise and highly automated.
Let me make an example: suppose you're minimizing some complicated function and you claim to have found some minimum with Mathematica. Your source code looks like NMinimize[complicatedFunction[x], {x, 0}]. If I wanted to reproduce your result I would not need to use Mathematica, but access to the internals would allow me to see what tricks I need in terms of minimization method used, whether or not extended precision was necessary, etc...
Being able to rerun that black box minimization independently for free is not really reproducing my result, because we might both be observing the same bug in Mathematica.
Where I don't agree with you is that open-source === free and community driven. There are a myriad of hybrid models where a for-profit company releases the code, yet doesn't accept pull requests from the community.
The all-or-nothing attitude that you just showed is actually a very good argument for those who are against open-sourcing within a company like ours. Do you really think a company will go from commercial to GPL in one step because: "freedom is not a spectrum"?
Is all Mathematica source available to licensees? Is there any additional cost for a source code license? I understand that most companies (and sometimes even research groups) need/want to maintain ownership of their software. I'm ok with that. But I'm opposed to licensing schemes like that of Gaussian, Inc. where a source code license costs more than an all-platforms site license.
I've worked with enough non-commercial but restrictively licensed academic software that I'm willing to forgive commercial vendors for similar transgressions, so long as there is full source available to licensees.
Though I admittedly steer clear of restrictively licensed code when at all possible now. I gave up on GAMESS and switched to really open quantum chemistry software because I tired of not having any revision history in the source tarballs, and of having to re-agree to the license every time I wanted an updated version. Also because I want to build software that can be installed in a fully scripted headless manner, and a "fill out the license agreement" step precludes that.
Also, I didn't say that producing free software meant you had to accept patches from anyone or listen to anything they said. All it means is that you no longer forbid your clients from knowing how your code works and you no longer forbid your clients from sharing that knowledge and that software with each other. You don't have to offer extra support or open up a public bug tracker. You don't even have to offer access to your repos; giving your clients the tarballs would be enough.
The GPL isn't anti-commercial, but your job is structured to make you believe it is. It's possible to make a living without forbidding your clients from learning and sharing.
There's a lot of open source tech out there with 90% centralized design and decision making. Most open-source databases. Haskell and OCaml programming languages also have small groups of core devs... I think even Julia development is controlled by a very small group of people.
Open source the core language if you want it to survive, otherwise it will be completely forgotten and lost from history! Closed source programming languages have no chances of survival and increased adoption, even Microsoft and Apple know this now!
(Sure, keep closed the UI + some modules with truly innovative proprietary algorithms, bc most of your paying customers will keep buying your paid versions, you won't loose the revenue stream.)
Anyway, it's too late anyway...
The problem is network effects. The blog post is right that if you are running a large deployment of things like R or Python, you are likely paying vendors and getting support contracts and all these things so that it's not really free-as-in-beer to you. But there are a lot of people not yet at that scale where it is free as in beer to them. An ecosystem based around R or Python has a lot of people who can't afford to pay for Mathematica. Those people are writing blog posts, or answering Stack Overflow questions. If I've just come up with a novel technique and I want to get it out there (either as someone in academia or elsewhere), my broadest reach is going to be to release R or Python code. Everyone with Mathematica can install R if they're curious, people who use R can't just install Mathematica on a whim to look at one research paper. If I'm an employee at a small company that is using Excel for analysis still, it's really easy to smuggle in R or Python and do an ad hoc pilot project that gets adopted, whereas it'll take me six months to get Mathematica through the approval process, and they'll probably tell me no.
So more packages get written for the open source ecosystems, more documentation gets written, I can share my work with more people. Even if R and Python are in every other way worse than Mathematica, over time, the network effects will drive more and more people to R and Python.
I struggle to think of open source end-user product that has:
- technical innovation - polished UI/UX/documentation - a problem domain of moderate to high complexity
Can you name any?
Sympy or Sage are much better examples of open source computer algebra systems, but they lack the pattern-matching weirdly-lispy language design of Mathematica (the Wolfram language, which while certainly weird, is very powerful).
Not sure what else is different, besides using Julia as the glue language, rather than Python/Cython.