Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Seems like he's far from open sourcing it. His team just published a long blog post (https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-op...) explaining why they're closed source.


The thing is, looking at that list... most of it actually seems reasonable to me. Quality software costs money, and that money comes from somewhere.

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.


Some of that list looks reasonable to me (mainly what you pointed out, that software development costs money), but there's a heaping dose of old-Microsoft-style FUD about open-source ("Because open-source projects are directed by their contributors, there is a risk of hijacking by interest groups whose view of the future is not aligned with yours") mixed in there too. The core argument, though, seems to be that the Wolfram Language is a special case and could never be built in any other way because it would be too hard. I don't buy it. Everyone thinks their own thing is a special case, and it rarely is. Contrary to his argument, the core language doesn't really need to be informed by subject matter expertise in graph algorithms or machine learning or whatever. They're really just libraries, no matter what he says. And it doesn't really require that extraordinary a leap to have some core types like points and intervals and curves that are shared across the system, without fragmenting. His arguments are just not that convincing to me.


I don't think wolfram is a special case, it's just a complex end-user product that's polished and innovative.

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?


Chrome, IntelliJ, Blender, RHEL, AOSP. Anyway, if he had restricted his argument to "polished software is hard with an open source business model" then I wouldn't be posting an unimpressed comment. Instead, the argument centers around Mathematica being a special case.


Honestly I read most of those reasons as reasons for not being free and community-driven as opposed to not being open-source, and also more as a post-hoc justification than a prediction on what will happen in the future.

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...


Most of Matlab's source code is visible too and its license allows you to modify its visible source code and share it with other license holders too.

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.


I agree with you. I stopped using Matlab for my academic work because I don't consider the results reproducible. Of course, that hasn't stopped 99.5% of control theorists, but every bit of useful code released in the open source alternative makes it easier to switch.


One of the directions the company is taking to address this is to allow for running some things as a free tier on the cloud.

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.


I believe your job depends on you defending black boxes, but black boxes have no place in science or mathematics, at least not any black boxes that we create ourselves. That's my point. I shouldn't just tell you "minimise, this function, it worked" (or it didn't, who knows why). We should both be able to see exactly what that minimisation did and why it did or did not work.


I think you misread my comment. I'm agreeing with you on the importance of being able to inspect the code and I'm strongly against black boxes.

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"?


Non-free licenses that nonetheless make the source code available to licensees have long been used for scientific software. This licensing model alleviates concerns about black boxes even if it does not align with the FSF's mission.

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.


It alleviates some of the concerns about black boxes, but it doesn't really help with reproducibility, as other people who don't have access to the code will not be able to reproduce the results easily. That is, they won't be able to download the original source and fully understand what's happening.


That's true, and it is a reason that free software with a public VCS history is really the gold standard.

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.


There can be no compromise: we are small, independent and have very little income. You are part of a large company with hundreds of employees and millions of revenue. All we have is software freedom; if we compromise on that, we have nothing left.

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.


That's not true at all. Lots of the actual Matlab code (i.e. code written in matlab) is available. But none of Matlab itself is. That's where their value is. Octave has fairly easily replicated a huge amount of the mathsy part, but is their GUI or plotting code any good? Not when I last tried it.


Prepare to have your mind blown, friend, try `type trapz` or `type cumtrapz` in Matlab and read Mathworks-written m-file code to your heart's content (but if you do, you're disqualified from ever contributing to Octave). Or even try `edit xlsread` to edit that source code.

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.


I'm more wondering why Mr. Wolfram would open-source the code, rather than why he would not.


...none of that makes any sense!

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...


wow, I was expecting an intelligent list of reasons why he cannot explain how mathematica works internally (I'm sure there are many). Instead, this post is a ridiculous strawman argument against the open development model.

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.


I think you misinterpreted his point. It's not that he can't give Mathematica away as it stands now. His point is more that Mathematica couldn't be developed as a free and open project with just contributions from random people.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: