Why Wolfram Tech Isn’t Open Source
blog.wolfram.com
blog.wolfram.com
As he mentions, there are lots of projects that counter his claims. Linux kernel. Every Open Source high-level language ever. Red hat.
Wolfram isn't open source because they don't want it to be open source. And you know what? They're allowed to do that! They don't need to justify that decision, it's their decision to make.
Without resorting to "they love money too much", I'll give them another, slightly more honest reason: It's certainly not impossible, but open sourcing an established project is hard. Managing a community of contributors AND a community of users is hard. Keeping a steady stream of revenue while you make the transition is haaaaarrrd. Maintaining all the values that he's mentioned while still keeping all your contributors and community happy: HARD.
And if the cost:value ratio is wrong, you don't do it. And if you have lots of other hard problems to solve, adding one more hard problem with fractional value is silly.
Yes, we would love it to be OSS. Maybe this was posted as a way of never having to answer the question again. Just sad that it isn't a little more honest an answer.
What about when business fails though? Open-source projects never die; see the forks and reused knowledge in projects such as ffmpeg, libav, iPodLinux, Rockbox. For archiving purposes, open-source is tremendous.
I wish another kind of license were available, where software remains commercial until the company closes down, but then becomes OSS rather than abandonware.
They do kind of die. Most of them, when the founder quits, the project just remains in github (etc) forever, not exactly dead but not alive either.
I am really in favor of companies that go out of business or products that quit open sourcing their software. I mean; all the popular Google products that were pulled, like Inbox, Rss reader and whatever more; why the hell didn't they open source those. I know ; probably something something legal, but that is a total waste.
I guess most companies, even after going out of business, will never do this.
He gives "12 reasons why [he] think[]s that it would not have been possible to create the Wolfram technology stack using a free and open-source model".
I.e. his concern is not whether a project can be open sourced (and make money, or keep its vision, etc). Sure it can.
His concern is whether something like Wolfram can be built up the "bazaar" way, from a disparate open source community.
Consider the statement "I don't think I could have survived if I was forced to cycle to work every day!" While I'm not saying it outright, I'm making it clear that tomorrow I will not be cycling to work.
At the end, he almost does say it outright: "But our vision is a grand one—unify all of computation into a single coherent language, and for that, the FOSS development model is not well suited." In other words, don't hold your breath for it to happen in the future - it doesn't fit with our vision.
His emphasis is that Wolfram was not, and in his opinion will never be, a good fit for the "FOSS development model" (what I call "bazaar-style" in my comment above).
Considering that he thinks that Wolfram couldn't be developed in the "FOSS development model", and that he things that model is not suited for Wolfram, it's also unlikely that he will open source it either. Since there's no much purpose in open sourcing something that doesn't benefit from that model. You just give your product away for free (beer/freedom) with no benefit for either the product or you.
I think it does (equal "bazaar-style" development).
Else it's not a product with a "FOSS development model", but merely a product with a "FOSS license".
But he talks of "FOSS development model" (as opposed to "FOSS license" or "FOSS business model").
>Reusing my previous example, BSDs are shipped as operating systems, not a kernel and a hodge podge of packages.
For their core (kernel + userland) yes. But on top they are still as much "a hodge podge of packages", with uncoordinated development and releases as Linux (e.g. the desktop environments, applications, window managers, compilers, app servers, etc -- it's just the kernel and basic UNIX userland that's coherent in BSDs).
For "unified", try sandboxed, walled harden or evolutionary dead end. Just look at this literal Hello World example:
GeoGraphics[Text[Style["Hello!", 150]], GeoRange -> World]
In any other language, if I wanted to write some text on a graphic, I would find a routine to load an image into memory and another to render text into that memory. That's genuinely easy.
But in Wolfram's case, I'm apparently just supposed to know that there's something called "GeoGraphics" that does this kind of thing, that the text goes in a Style[] block (what?), and "GeoRange -> World" is how you tell it to create a worldmap as a background. WTF. And don't tell me "read the docs", because even if I found this, it wouldn't help me much with the rest:
ImageCompose[ Import["someworldimage.jpg"], Rasterize["Hello world" ]
Wolfram’s vision for computation is much more profound—to unify and automate computation across computational fields, application areas, user types, interfaces and deployments.
They even mention blockchain further down!
How's that different from finding a routine (eg. one called GeoGraphics()), or JSX, or HTML/CSS for that matter?
You still need to know where to look, and you need to find the construct (routine, markup, builtin primitive, whatever) that does what you want.
The whole example is moot.
In a product with an explicit owner, all you'd hear is "yes boss".
Is not that one want wolfram to be oss, one (me) wants a product with wolfram abilites and features, that you can grow, expand, correct, etc.
Graphics in Mathematica is symbolic (according to the documentation). You can think of it as a Lisp-based vector graphics. It's still possible to manipulate pixel data extracted w/ "ImageData". It's just that "Image" object never allows direct pixel manipulation, which is the same in some other frameworks.
Also, "Style" is a function, not a block, that attaches styling information to its first argument. "Text" is a graphics primitive that provides placing information for text inside "Graphic". "GeoGraphic" is not neccessary here, and you can load map images with "GeoImage", and "Inset" them into graphics object. "GeoGraphics" is only good for rendering map-related data, like country borders, regions, roads, names, etc.
Wolfram language has its own patterns, and is pretty solid. Personally, I like it because it fully abuses its Lisp-like design, yet everything is curated by one single sane entity. I just dont want to endure a bunch of pretty hax0rs who never stop coming up with half-baked in-house solutions.
My point was to combine a compliment (it's a truly awesome set of tools) with a gripe (the pricing is so prohibitive, even decision makers in pretty cost-oblivious organisations cringe when hearing the fees).
I dare say any financial organisation could replace the multilanguaged hell that is user built software by Mathematica and leap forward. It's the licensing cost that make Mathematica a niche product. Microsoft could buy Mathematica and integrate it with Excel (again, partly in jest).
Out of curiosity, what did you do? Symbolic analysis?
I think Mathematica is quite fantastic (took me some time to understand it's patterns). I don't use it currently because 1) A lot of my current work is numerical and not symbolic -- for which Mathematica isn't great; so I use Python/Julia 2) From a long term perspective, I wouldn't want to invest a large fraction of my personal computing efforts into a proprietary single point of failure.
TBH, with regards to paying for software, my psychological motivation is still a work in progress (so the comments above are directed at myself as much as at others), but I'm trying to build a habit of doing it more -- especially to support free software. I care about computing too much -- I would hate to look back on this twenty years later and rue the loss of computing freedom because we were too stingy to invest a hundred bucks a year in the appropriate places.
The obvious reason is that they'd make a lot less revenue if it were OSS/free. They're right that there's several business models around OSS that have negative side-effects and that just charging for software is the more transparent quid pro quo transaction.
It's ok to sell software, but they should just be transparent about it.
The points seem mostly fair, though I would argue what he argues is "not possible" with an free or open source model is that it's "more difficult" to coordinate.
As an example, R is my go-to language, but the function arguments and style can be vastly different from function to function or package to package. Here I have found MATLAB to be more consistent in this regard. Python's kind of a mix - the core of Python is like one language and Numpy, Pandas another, but it does reflect the semi-independent management of these projects.
Mathematica is a brilliant product, and more people would use it if it was open source but it's ok that's it not.
Linux also has the (unique to it) idea that the kernel and the rest of the OS are not the same thing. There is no other integration point than the ABI for userspace.
And OTOH, Linux userspace is ridiculously de-centralized. There's competing distros, init systems, C runtimes, memory allocators, filesystems, etc.
And that's not even taking into account the absolute chaos of the Linux desktop.
"9.0 Open source doesn’t bring major tech innovation to market". You have to have some balls to say that. Major mathematical libraries used in HPC are OSS.
And most of them are copies of age old Fortran stuff. Linux itself is a UNIX clone. Gnome/KDE started as Windows clones. Where's the "tech innovation" in that?
I think Linux is a prime example of innovation. Yes, it first started as a UNIX clone, then basically took over and killed all competition, starting with x86 and then practically all other platforms, with very specific exceptions.
What used to be a UNIX clone decades ago is now a testbed of all new technologies you can imagine in an operating system. And if some cool tech cannot be implemented in Linux for design reasons (e.g. a microkernel or a unikernel), a separate project is started.
But most of them are still copies of FreeBSD, Solaris, and Plan9 stuff. Something particularly innovative in Linux?
> Open source often does create ecosystems that encourage many small-scale innovations, but while bolder innovations do widely exist at the early experimental stages, they often fail to be refined to the point of usefulness in large-scale adoption.
You can argue that, for example, KVM is a clone of something else. However, it's because of not stopping at an early stage KVM is now a mature and insanely popular technology.
Since neither of us included contact info in our profiles, commenting here instead of a PM. I stumbled across one of your prior comments.
All I want to say is I hope you're now doing well. Or least better.
I'll delete this reply in a few days, or after you acknowledge, which ever comes first.
It's not because it's open source that you can't have quality, central design, or good documentation.
I could understand the argument that sifting through the pull requests would take them too much time that they could spend doing something else, but at least 8/12 of these could be solved by... you know, properly maintaining an open source project.
The article leads me to the conclusion that they have no intention of letting the community drive the company, and I could totally understand that. I don't see how any of the listed reasons could prevent them from making their code source-available without indicating an open source license.
Quite literally, in this case.
Like others have said here, if I were Wolfram, I would make it free for personal use and then price it depending on the company size and revenue (like some game engines do). I mean 345 euros for Home Edition is really too much imho; I understand the power and reach of the product, but wouldn't it be better to get more people dependent on it so they try to push it at their jobs/companies?
That definitely doesn't apply to all projects, you can look at the successful forks of Oracle's OSS acquired products.
If the OSS'ed code-base is valuable, you've just given a open invitation to all your competitors to create their own competing forks.
While they're not maintaining a fork, it's worth noting that the head of the ECMA C# standards committee is, in fact, a prominent Google employee.
Paywall does suck, but someone gotta curate all those shits. Mathematica is a good platform not only because of some advanced algorithms built into it, but also because of the curation from Wolfram. Curating software component is one of the least fun job in the world, and any entities who do it properly should be paid for the sake longevity of their roles.
Still I admire the amount of diligence and energy that went into this. Wolfram spent several years _obsessed_ with this stuff. See his 2012 blogpost about his "quantified self" recordings: https://blog.stephenwolfram.com/2012/03/the-personal-analyti...
Maybe A New Kind of Science will create a surge sometime (just like Neural Networks were declared dead for several years, then Deep Learning came along and they took off)