Hacker News new | past | comments | ask | show | jobs | submit login
Why Wolfram tech isn’t open source (2019) (wolfram.com)
246 points by AJRF on Dec 18, 2021 | hide | past | favorite | 292 comments



Most of these are about wanting control over the design of the software - but releasing their code doesn't have any impact on that - I don't get it? Java is open source - Oracle still tightly controls and manages the design of Java.

For example 'Bad design is expensive' - how releasing your source lead to bad design? That's a complete non-sequitur.


I think the argument is more that open sourcing adds incentives and friction that significantly increase the cost of maintaining control/alignment. Or to put it another way, maintaining good design becomes more expensive in an open source model and people respond to economic gradients, changing outcomes at the margin. I've seen this happen consistently, even when limiting "open sourcing" to throwing a tarball over the wall occasionally, it always adds to costs. That burden has to be paid by someone, and not every company or individual can or is willing to absorb it; in many cases the notional benefits of open sourcing are sufficiently limited to be less than the incurred costs.

That said, I am skeptical that many of the points in the post apply to Wolfram specifically, I suspect that is more aspirational on their part. Nonetheless, many of the points are valid as a generalization.


Yes, I've experienced this. One new CEO said he didn't want to spend the time and the money to do a good job building a great community. It was cheaper and simpler for him to focus the company's energy on their 20 big clients. This isn't true for many applications, but it is for his. And I had to agree.


Until those 20 big clients start hiring new people who don't work with that vendor's tools anymore.


Wolfram here were contrasting their model against the idea that products like Mathematica could have been developed in a fully “open source” manner. (It’s a false binary, but it’s what they’re doing.)

“Open source” is a different thing than “source-available” or “shared-source.” Many closed-source products are “source-available” in the manner you’re talking about, but this does not make them “open source.”

You’re not really an open-source project, in the conventional meaning of the term, until either

1. Your project starts accepting code contributions from the community (if perhaps after a gruelling code-contribution process); or

2. Your project’s codebase becomes licensed in a way that allows people to fork it, add their own changes, and then use the result themselves to achieve their own ends (if perhaps only non-commercial ends.)

Which are two sides of the same coin, really; they both imply that people will be tinkering inside your code; and that the “canonical” version of your code in everyone else’s mind might then become the version that the community thinks is better, rather than your official release.


You are conflating "open source" with "open contribution". https://github.com/jgraph/drawio#open-source-not-open-contri... explains it neatly:

> Similar to SQLite, diagrams.net is open source but closed to contributions.

> The level of complexity of this project means that even simple changes can break a lot of other moving parts. The amount of testing required is far more than it first seems. If we were to receive a PR, we'd have to basically throw it away and write it how we want it to be implemented.

> We are grateful for community involvement, bug reports, & feature requests. We do not wish to come off as anything but welcoming, however, we've made the decision to keep this project closed to contributions for the long term viability of the project.


No; see my second point definition. A thing is open source if, essentially, people are free to re-mix it; whether that be by modifying it upstream, or by forking it downstream. If there is no ability to make changes and then legally use your own changed version, then the thing is not open source in the way any developer would understand the term.


Yes, but "whether" is kinda weird here. The first (community development) requires the second (open sorce). If upstream can accept your contributions, this means you've already forked it for yourself.


> ...allows people to fork it, add their own changes...

Emphatic agreement.

Bryan Cantrill touched on this too:

"...we [now] know that OpenSolaris didn’t go far enough: even though the right to fork was understood, there was not enough attention paid to the power to fork. As a result, the operating system never quite got to being 100% open"

http://dtrace.org/blogs/bmc/2010/08/03/opensolaris-and-the-p...

I experienced this first hand while being paid to work on FOSS. At the time, I just couldn't figure out why our very well resourced, well intentioned project was chowdering. Cantrill's illuminating insight, per usual, was spot on.

--

To the pedants arguing with u/derefr: Stop it. Step back, get curious, ask u/derefr to clarify. u/derefr is trying to say something important.

Some of us have actual experience with this stuff, not covered in the manual. It often takes great effort to reflect and articulate novel experiences. Especially when those experiences don't meet anyone's expectations.

"In theory, theory and practice are the same. In practice, they are not."

--

Further, definitions, rules, bylaws, and code of conducts are just starting points. Ever DM a role playing game? Tried to get your local party to approve a resolution? Had your day in court?

As if some formal definition somewhere is the last word on running a successful FOSS project. Please.

Human projects are at least as complicated as the humans themselves.


I'd also recommend the classic "The Cathedral and the Bazaar" essay by Eric Steven Raymond:

http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral...

From Wikipedia:

>In 1998, the essay helped the final push for Netscape Communications Corporation to release the source code for Netscape Communicator and start the Mozilla project; it was cited by Frank Hecker and other employees as an outside independent validation of his arguments.

Netscape's public recognition of this influence brought Raymond renown in hacker culture.


> You’re not really an open-source project, in the conventional meaning of the term, until either

> 1. Your project starts accepting code contributions from the community (if perhaps after a gruelling code-contribution process); or

> 2. Your project’s codebase becomes licensed in a way that allows people to fork it, add their own changes, and then use the result themselves to achieve their own ends (if perhaps only non-commercial ends.)

There is a formal definition of Open Source by the Open Source Initiative:

> https://opensource.org/osd

Only 2 is open source (but the no-commercial condition means this it is not), while only 1 is not open source.


That's why I said "the conventional meaning of the term." Who cares what some organization who just decided to name themselves after the term, defines the term as? It's not a jargon term; it's a word, defined loosely by how people use it and what they intend to mean when they use it.


approximately nobody defines open source as "you can see the source but you aren't free to fork it or modify it"

This is not the conventional meaning of the term, and has repeatedly been used as an avenue to attack the concept in general.

As a comparison, how happy would you be calling a system where you can only vote for candidates approved by a single leader a "Democracy". Under these standards, both the USSR and China are democracies.

The differences matter, it is not pedantry and it is not some organization enforcing "their definition" overtop of what people "commonly think".


I think you misread something? What you just gave is the definition of the term “source available.”

I’ll restate. My descriptivist definition of the term “open-source”, was that something is “open-source” if you are free to do at least one of either forking the thing for your own use, or modifying the thing and pushing those modifications upstream. In other words, “open-source” software is software where you’re free to notice a flaw in the program and, by some mechanism, get it fixed in such a way that other people can benefit from the fix.

And yes, the OSI definition of “Open Source” is an organization enforcing an arbitrary definition, because it disagrees with many uses of the term “open source” — specifically, the OSI considers GPL-licensed software to not be capital-letters “Open Source”, despite everyone conventionally considering it regular-adjective “open-source”. (The FSF does a similar brain-damaged thing with the term “Free Software”, which has not-much to do with what people would call “free software” — but at least “free software” isn’t a very common term in modern parlance; people aren’t constantly talking about “free software” with the FSF then misconstruing their words as if they had said “Free Software.” Which is exactly what the OSI does when people talk about “open-source software”, and then the OSI misconstrues their statements as statements about “Open Source software.”)

Yes, this is exactly why pedants use the term “FOSS” — i.e. “Free and Open Source Software”, a union-ing of the set of software that is FSF-jargon “Free Software” with the set of software that is OSI-jargon “Open Source Software.”

Regular people, who aren’t trying to be sycophants toward these two organizations, on the other hand, just use the uncapitalized adjective open-source to refer to this larger set.


> specifically, the OSI considers GPL-licensed software to not be capital-letters “Open Source”

What? OSI disagrees with you.


Yes, here's a list of licenses approved by the OSI as open source, which includes the GPL and AGPL:

https://opensource.org/licenses/alphabetical

"Free software", "open source software", and "free and open source software" are often used interchangeably because they refer to software that is largely protected by the same set of licenses. The terms differ by emphasizing different aspects of the philosophy behind FOSS.[1]

[1] https://www.gnu.org/philosophy/open-source-misses-the-point....


> My descriptivist definition of the term “open-source”, was that something is “open-source” if you are free to do at least one of either forking the thing for your own use, or modifying the thing and pushing those modifications upstream.

Respectfully, this definition of "open-source" does not match common use, even with a loose colloquial interpretation in mind. As commonly understood, an "open-source" license requires the ability to acquire the source, and to modify it, and to redistribute it.

Your definition, quoted above, would call open-source a license that allowed for personal modifications to source but forbade redistribution of those modifications. Your definition would also call open-source a license that required all modifications of the source to be made through a single point of central control. I think both of these cases fail even loose understandings of what "Open Source/open-source" is. I do think they both describe "source available".

You draw a distinction between "open-source" as a colloquial term and "Open Source" as defined by the OSI, but I don't think this isn't very compelling or useful. Sure, language evolves and people use terms incorrectly all the time, but that doesn't make erroneous use correct. In particular, "Open Source" is used as a legal criteria for a set of software licenses, so precision in its definition is important. Also, I have not personally come across any cases where there was any material difference between colloquial use of the term open-source and precise definition of Open Source as defined by the OSI. Do you have anything to cite that justifies a distinction here?

So I beg you to reconsider the idea that the OSI is "some organization who just decided to name themselves after the term" and the idea that "Open Source" is a term "defined loosely by how people use it." In point of historical fact, the term was first used by the people behind the organization, who formed it to popularize it as a new concept, and an alternative to "Free Software": https://web.archive.org/web/20021001164015/http://www.openso.... The OSI is not some organization formed to co-opt and redefine the term for their own purposes after it was already in common use.

I do agree with you that often times people think of specific project management structures when talking about open-source development. I.e. the debates about what makes for a successful open-source project, cultivating a community, making it easy for community members to contribute, etc. There can be non-open-source projects using open-source development methodologies, sure, but it doesn't make them "open-source" even in a colloquial sense. The sole criteria is always the license granted to users of the software.


I understand what you're saying, but I don't think it was phrased as precisely as it could have been. I agree that Wolfram is criticizing community-based software development, and using that reasoning to incompletely justify its decision to not release its source code. Wolfram could have made their software source-available without making it open source, and their page doesn't directly address this middle ground.

As others have said, #1 is not really necessary since no open source project needs to accept contributions from anyone. #2, on the other hand, is absolutely necessary because open source software must allow users the freedom to copy, modify, and use the code as they wish.

> (if perhaps only non-commercial ends.)

However, software under licenses that forbid users from using the code for certain purposes (including commercial purposes) are not open source. Both the OSI[1] and the FSF[2] object to this type of restriction. Allowing arbitrary restrictions on use would raise the question of the types of discrimination that should be allowed in FOSS licenses, which is something many in the free and open source software community prefer not to deal with.

[1] https://opensource.org/osd#fields-of-endeavor: The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

[2] https://www.gnu.org/philosophy/free-sw.html#selling: “Free software” does not mean “noncommercial.” On the contrary, a free program must be available for commercial use, commercial development, and commercial distribution.


Counter example: SQLite


I think you missed the "or" in the parent post. SQLite is closed for contributions, but it's still open source in the sense that anyone can take the source code, make changes and use it in their own projects. From the SQLite website:

> SQLite source code is in the public-domain and is free to everyone to use for any purpose.

That being said, I agree with your sibling poster that "open contribution" is not a requirement for "open source".


And draw.io, I recently learned. "You can have the source, but we're not interested in your opinions about it, tyvm."


>Most of these are about wanting control over the design of the software - but releasing their code doesn't have any impact on that - I don't get it? [...] how releasing your source lead to bad design?

The way to interpret his argument is to imagine an alternate past history where Mathematica was open source from the beginning and how that would have lead to an inferior product. He wrote:

>[...] I think that it would not have been possible to create the Wolfram technology stack using a free and open-source model.

So instead of thinking they can just go ahead and open source what they have today and everything would be just fine, we need to consider how game theory would have played out in an alternate universe where they tried FOSS model from the beginning.

Maybe his argument is still flawed but to at least entertain his scenario, let's study other projects and compare:

- open source GIMP is considered very good -- but also is several years behind closed-source Adobe Photoshop in features

- OpenCAD, OpenSCAD not as full-featured as proprietary Autodesk, SolidWorks, etc

- LibreOffice has less features the MS Office

- Code::Blocks and Eclipse as IDE for C++ coding not as good as MS Visual Studio

- OpenStack less features than AWS

- SageMath has less symbolic computing features than Wolfram Mathematica

To counterbalance the above, we can try to identify open source projects that are equal or superior to proprietary solutions:

- LibOpus is superior algorithm to Fraunhofer FDK AAC

- Linux (server) is comparable or superior to MS Windows (Server).

- GCC, Clang comparable to Microsoft "cl.exe" compiler.

Is there a pattern to the above? It seems like a combination of :

- big complex software with lots of features

- GUI

... often means that open-source collaboration model falls behind the proprietary commercial offerings. Why?

So if Wolfram tried to open-source Mathematica from the beginning of its history, a different proprietary XYZ software may have outcompeted them. E.g. the salaried programmers working on today's Mathematica wouldn't have worked on the open-source Mathematica for free because they would have been at XYZ Corporation. In that alternate timeline, we'd complain today that "Mathematica isn't as good as XYZ"


> Is there a pattern to the above? It seems like a combination of [a] big complex software with lots of features, [and a] GUI... often means that open-source collaboration model falls behind the proprietary commercial offerings. Why?

Interaction Design (IxD) isn’t something that can be done piecemeal; it needs to be done top-down, with an overarching vision, to achieve its ends (an intuitive design.) Intuition comes from obvious implicit structure, where you can easily “get into the mind of” the designer, discover their mental model, and then use it to predict how other features will work. If there’s no single designer (or very-tightly-constraining design document) then there’s no unified mental model to learn, and so no intuition.

And there are relatively-few professional designers in the open-source community.

It’s easy and low-friction for a professional programmer to “scratch their own itch” by implementing just one little change in a piece of software, and by that means, FOSS software’s source code quality can be improved piecemeal. But it’s both difficult (you have to re-do everything at once for it to help) and high-friction (hard to convince the software maintainers to accept the change) to contribute a design change to FOSS software. So useful FOSS software design changes are almost impractical (unless the stars align); and so professional designers just don’t bother to even try to take part in the community.

So instead, FOSS software just tends to languish without any unified design vision ever being applied to it. (Or with a bad, arbitrary, and unintuitive design vision being contributed at some point by some inexperienced designer, and being accepted because the maintainers are all programmers with no sense for IxD themselves.)

There’s also the fact that a lot of IxD needs to be informed by data — e.g. user workflow studies — that cost money to run; and FOSS projects don’t tend to have the budget for this, or don’t tend to see it as a priority for spending what budget they do have, since they have no “design advocate” on the team to ask for it.


I think you're skipping the really big obvious answer, which isn't features or graphical interfaces: Money. Photoshop, Autodesk, Office, etc. are huge money makers, so they can throw developers and designers at improving things. Server Linux is largely driven by billion-dollar companies investing.


I believe GUI is a huge part of it. My rationale is that sweating the details of the GUI actually requires a profound amount of work, that is not at the top of the list of things that programmers enjoy working on. The the only way to get it done is to hire an army of well paid programmers to do it. And things like office and graphics software are nothing without GUI.

Second, some software builds on a body of proprietary domain knowledge that someone happens to own. I'd put mechanical CAD in that category. Probably the symbolic computing technology of Mathematica as well. In some cases, users of specialized engineering software actually put up with horrifying user interfaces because the software vendor has a lock on the domain knowledge.

The successes of open source include anything without a user interface, such as the infrastructure of the universe, and non domain specific programming tools.


Agreed that GUI is a huge part of it, but I'd say for a different reason. There are almost no UI/UX designers contributing to open source projects. At the very least the ratio of them to programmers is incredibly low, far lower than at any company whose main product depends heavily on its GUI like office or graphics software.

OSS GUIs are exactly what you get if you leave it completely up to an army of pure programmers (whether well-paid or not).


And in this alternate past history, how would they have generated an income? I think your clarification is spot-on, and the debate around whether they could or would have been out-competed is an interesting one, but fundamentally they need to be able to generate revenue somehow.

I totally get open-source for libraries/components/building blocks/etc, and strategies like “commoditise your complements” have been mentioned elsewhere. But I’m struggling to see how open-sourcing the actual end-user product isn’t just literally giving away everything for free?


Did any of these open-source projects that lag behind had a budget that at least was of the same order of magnitude of their proprietary counterparts? I don't think so.

OBS is another counterexample that is heavy on GUI and absolutely superior to similar solutions (where they don't just fork it and hide it).

Proprietary and open-source modes share the same challenges. 1. Developers need incentives and it has to be sustainable. Money is the biggest of them but reputation, fun and self-realization also matters. 2. Organization and scale. A team of experts supported by staff can do a lot more than a single developer. But a large corporation is inefficient and can fail to deliver. 3. Momentum. It's difficult for a software to compete with large established softwares like AutoDesk, MS Office and Photoshop even if delivers the same features and performance.


>Did any of these open-source projects that lag behind had a budget that at least was of the same order of magnitude of their proprietary counterparts? I don't think so.

No they didn't and that's why I put those lagging open-source projects as examples to make readers imagine that an alternate-history-open-source Mathematica may have lagged behind like them too.

I think you lost track of the argument put forth by this thread's essay from Jon McLoone of Wolfram. Your emphasis about "no big budget" actually supports his listed benefits of the paid model in: https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-op...

Again, when he wrote : >[...] I think that it would not have been possible to create the Wolfram technology stack using a free and open-source model.

... he's saying you wouldn't have the comprehensive Mathematica product we see today with the open source model. Perhaps the histories of how GIMP/OpenCAD/SageMath evolved supports his point that Mathematica was correct in not choosing their open-source model?


More or extended features are not automatically a good thing for the users. Microsoft extended Kerberos with incompatible changes, re-published it under a diffeerent name, users lost open source benefits and became locked in to the Microsoft version, and the original developers were not provided with the changes. Microsoft did almost the same thing with Sun's Java when Microsoft made its incompatible version, despite Java being available in a free as in freedom version and at no cost.

The four essential freedoms[1] might not make you rich, but they will keep providing you with true freedom.

Wolfram Mathematica would be a more valuable contribution to the future of humankind, if the essential freedoms were guaranteed.

[1] gnu.org The Free Software Definition: The four essential freedoms.


Probably the exception is Blender, which is a big, complex GUI with gobs of features and is very compétitive.


true, why is blender special? it was originally a closed source program with a small community that became open source later, but it’s evolved massively since then and become much more polished and easier to use, which virtually no open source project can say


KiCAD is another package that I think is fairly competitive at this point. It’s not going to kill Altium, but it’s improved greatly in the last 3 years.


I actually disagree and think Altium will, in fact, be Victim #001 of KiCad. The question becomes: "Is Altium <n> thousand dollars better than KiCad?" And a lot of the time the answer will now be "No."

I already split my designs about 50/50 between Altium and KiCad--and that's before KiCad 6.0 which is imminent (6.0RC2 exists right now).

1) KiCad has one killer feature: it's cross platform.

I would argue that this will, over time, kill anything that isn't. Mostly because "open a VM in the cloud and do all your work there" is becoming really common.

2) PCB software, by and large, doesn't need new features. PCB software does need features that work.

Altium is infuriating with not killing bugs and introducing new ones every release.

3) Altium and bunch are basically blocking access to libraries without a subscription fee. That's going to erase Altium for use by small people. This drives me up a tree because it prevents me from sharing a design.

KiCad will slowly but surely eat everything at the bottom and then start upwards--there's just simply no other decent alternative in the space.


Not having linux support is a big self-own for Altium. Its main high-end competitor, Cadence OrCAD/Allegro, has top-tier Linux support. Altium tried to do a "365" thing like Microsoft, and I doubt that's really what Altium users want.

Altium was about to be a good high-end piece of software until they did this. Now it's homeless and it will lose to KiCAD for low-end things and Cadence for high-end.


To me, the self-own was trying to lock libraries behind subscription.

Altium had just gotten to the point that everybody providing chips was also providing an Altium library footprint and symbol.

It was really nice--for about 12-18 months.

And then I started getting Altium libraries that I couldn't pull the symbol out of and couldn't use without being logged in.

Fscking idiots. Talk about snatching defeat from the jaws of victory.

They had finally reached the point that they were an alternative to Orcad in commercial engagements, and then they gave it away in order to try to go after subscription revenue.

I literally picked up KiCad the day after I couldn't extract a symbol from an Altium library and add a couple of missing pins for a new part. I was that infuriated.

Right now, I'm evaluating KiCad 6.0 for work. I'll probably transfer over completely for personal projects (I've been doing more and more personal projects in KiCad over time with only PCB->Schematic back annotation holding me back from full transfer--that's fixed in 6.0 with the new file formats). It may take a bit, but I'll probably transfer over to KiCad for work projects that I'm the only designer on once I get a couple of projects under my belt with KiCad 6.0.


There is no design that I’ll ever do that KiCAD can’t handle. I get the sense that most of the commercial complex PCB (motherboards, phones, etc) are likely to stay Altium for a good long while. Is that not the case?


Those designs probably aren't in Altium. They're probably in something like Mentor Xpedition or Cadence Allegro.

This is why I suggest that Altium is likely to be the first victim.

The non-Altium proprietary systems have a lot of legacy to hold them in place (like parts database integration across your company). In addition, they do have some very advanced features around routing matched memory buses and the like.

If, however, your design doesn't need that, KiCad will cover you, and Altium won't bring anything you need to the table.


KiCad's library management isn't powerful enough for (most) commercial work. It has a good foundation but there is too much critical functionality that is not implemented yet.


I'm not sure if/how this is improved in KiCad 6 but from the KiCad 5 tutorials I've seen, "manually match symbols to footprints" was its approach to library management :/

I'm learning PCB design with https://github.com/horizon-eda/horizon instead — and here library (pool) management comes first. You actually place full "parts" (that associate symbols and footprints and other metadata) onto schematics — and if you don't want to decide on a particular model number, you can still place a "base" part (e.g. "generic 5k resistor") and change it later. Oh, and the schematic editor actually edits nets, rather than what KiCad does (seemingly just a basic CAD drawing that gets analyzed into a netlist as a very separate explicit step).


I'm ... not a fan of "library management".

1) I see its value. The cacophony needs to be tamed. And a larger company can dedicate staff to keeping the library up-to-date and organized.

But it's kind of like the problems between a monorepo and multiple repositories.

I've never been part of a company where we could afford to dedicate people to BOM management and library control. I know a really good person who does this--but the companies she works at move at a sclerotic pace. They're medical or aerospace. They have zillions of ISO certifications and testing requirements. You have to file 3 forms to put a new part in the "system". And this is fine--I want someone like her preventing random changes sneaking into a medical device, thanks.

And even still, she has to fight with people every day to hold back the chaos.

2) Everybody has a different notion of "library management" and someone else's version will always be an impediment.

"Library management" is, practically by definition, opinionated. Mine is too.

I have a very idiosyncratic way of parts numbering my resistors, capacitors, inductors and a few other things in the system. It's optimized for the fact that if you put things in boxes in order sorted by those numbers, I can browse through our inventory very quickly and pull parts, values, and footprints that I need as well as know if I don't have something or have a substitute. All without having to consult some master spreadsheet or database that will always be out of date.

It drives the aforementioned library organizer crazy. She wants me to use the "standard" parts numbers and classifications. However, she also acknowledges that I have a solid reason for what I chose. If I ever manage to hire her, I will let her at it and I will comply with what she wants.

> "manually match symbols to footprints" was its approach to library management :/

It is, but I also find that "footprint management" at the schematic simply isn't as useful as people make it out to be. "Generic" footprints are fine when you're throwing around DIP chips or 1206 components. However, footprints get a lot less "generic" and interchangeable when you're working with 0402 and smaller components.

A lot of my components wind up with "unique" footprints anyway.


But, in the long term,

> open a VM in the cloud and do all your work there

is something that will allow you to run any "platform" instead of being restricted to your(s) ?


Graphical systems still need to run some piece locally unless something like WebGL finally gets useful.

It the reason why, VSCode, for example, runs your editor locally even if it's running the compilers and stuff remotely.


If you include other succesfull open source projects, like Blender, the pattern is no longer there ...


A lot of “rules” are general rules, many of which have exceptions. These are not laws of the universe.


my point was you can get any rules if you cherry pick examples ...


They are arguing it does have impact on that.

The company that created Java went out of business and was sold to Oracle for a fraction of its original worth. So Java was a business failure -- or at least I'd be interested to see someone defend Java as a business success.

So I think it's realistic to at least engage with their argument seriously rather than dismiss it.

The argument is that open source licenses are incompatible with the kind paid license they're offering their customers. These licenses pay for the salary of their skilled employees.

Oracle makes money EXACTLY the same way -- by selling commercial licenses to a non-open-source database. That's why Java can be open source and not bankrupt the company.

Again, the argument here seems to be Just come up with a different business that makes hundreds of millions of dollars and use that to pay for Wolfram !

-----

edit: Since this comment is highly upvoted and visible, I'll mention that I'm seeking funding for a compiler engineer for the Oil shell, which I just mentioned on the blog:

http://www.oilshell.org/blog/2021/12/backlog-assess.html#mor...

So I know from over 5 years of direct personal experience that compiler engineers don't just show up to your open source project and start implementing things! Even if you have tens of thousands of readers on Hacker News for years. (Oil has had 48 contributors but not very consistently, which is understandable.)

To be clear, I did not expect help! I have asked for it, but I thought I would be able to finish it myself. So it looks like hiring someone with specialized skills is the most realistic way to accelerate the project (now that the language design is in good shape).

This funding is to finish the Python to C++ translation, which is already half done. Example:

Oil's Parser is 160x to 200x Faster Than It Was 2 Years Ago http://www.oilshell.org/blog/2020/01/parser-benchmarks.html (lots of progress since then)

I'm applying for 50K euros of funding from NLNet. Also in the process of setting up Github Sponsors. E-mail me at andy@oilshell.org if you want to make a donation -- I think I will need at least $250K to properly pay for this position. If you're a professional programmer and spend 2 hours fussing with a shell script, that's probably worth a few hundreds dollars.

I'll start mentioning this in more posts when everything is set up, but I thought I would use this extremely relevant topic to raise awareness. Programming languages don't pay for themselves! https://www.oilshell.org/release/latest/doc/oil-language-tou...


You've made the mistake of expressing an unpopular opinion, so you're getting down voted. I strongly dislike proprietary software, but you raise valid concerns that should be considered instead of being downvoted into silence. (edit: at the time I wrote this comment, the parent appeared to be headed for oblivion, happily that appears to have improved)

I don't know that open sourcing Java killed Sun. More likely it was Intel coming close enough to SPARC performance at a lower price, and Linux coming close enough to Enterprise reliability also at a lower price. But it's certainly true that open sourcing Java and Solaris didn't save Sun.

Likewise, open sourcing Mozilla didn't save Netscape. In fact, I would bet the vast majority of companies that start out proprietary before deciding to open source ultimately die because they're already unhealthy and doing it as an act of desperation.

If a company isn't designed from the start to support an open source model, it's very hard to make the transition and survive. And we have no right to demand they try. Just like everyone should respect the license F/OSS authors choose, everyone should respect Wolfram's right to stay proprietary.

Of course it's also important to remember that proprietary software vendors are more likely to yank the carpet from under their users without warning. Instead of demanding the vendor open source, users should just find and support open alternatives.


Providing Java for free (no matter whether open or closed-source) was a big strategic blunder for Sun: it commoditized CPU architectures by providing an abstraction layer over them. Write once, run anywhere! The problem was, Intel chips were cheaper. So people just ran their Java workloads on their existing x86 PCs instead of buying expensive Sun hardware. Sun should have never written or released Java: it consumed resources, and hastened their demise.


> it commoditized CPU architectures by providing an abstraction layer over them

I think that was part of the point - let people run their existing applications on Sun hardware. Yes it was more expensive but it was also more capable. Emphasising running on lots of smaller 'commodity' instances wasn't yet the done thing at the time.


You are right that it was the point. It was simply a bad goal. Sun hoped it would allow people to migrate to their hardware, when instead it enabled them to migrate away, or to never have to choose.


I think it had little to do with that. Every year Sun had bigger and bigger computers like we needed bigger monolithic servers. Run an ISP and need 100,000 user telnet accounts? Bigger computer! Then, seemingly overnight, the problem is solved by buying a hundred blades instead, and paying nothing for except hardware.

Sun was riding high on the dotcom era where every new company ran out and bought an E10000, and maybe one with less specs for a development server. I've heard stories of these being shipped before payment just so they could declare the sales early -- once the bloodbath started, it Sun was left holding the bag.

BSD and Linux on commodity hardware killed everything at Sun and Java really had nothing to do with it.


I think Java had quite a lot to do with making those BSD and Linux boxes run the kind of software people were using for ‘e-commerce’ back then.


> You've made the mistake of expressing an unpopular opinion, so you're getting down voted.

It's never worth saying this on HN. "downvoted" has temporal dependence, and so right now, for example, the comment you're replying to is not at net-negative. Just comment on what they said, not on how other HN readers are voting what they said.


What's wrong with that comment is that people think it is wrong for some fairly obvious reasons. for example: there is no causal link (which is also the point of the comment originating this thread). Examples of software needing to be open source to succeed, like other languages, the Android OS, etc. are easy to find.

Even your more qualified point has loads of counter-examples, that companies that did not start with their software as open source find it hard to succeed at open source: Google's search engine and much other software is not open source. Many companies mix their approach to open source with proprietary systems and products. As did Sun.

That Wolfram's justifications are weak is not necessarily a knock on their decision. But the specific point that "High-level languages need more design than low-level languages" seems particularly odd. There are high level languages where all the widely used implementations are open source and few cases of them becoming chaotic. I suppose there is survivorship bias in that observation but there are also obvious reasons why no language user community would have a lot of patience for a proliferation of variants.


Netscape exited for ten billion dollars. It didn’t need saving because it was by any reasonable measure a grand slam home run. The exit was so lucrative that Andreesen is the first name in Andreesen Horowitz.

This doesn’t make a good argument that Microsoft is evil, so Silicon Valley created a mythology in which Netscape failed.

Netscape did not bet on open source. It didn’t fail. And the browser has a de facto monopoly anyway in the form of Chrome.


A successful public fundraising round is an indicia of success for prior investors. It is not an indicia of long-term success for a company as a going concern in terms of profits.


I don’t disagree.

AOL bought Netscape (with stock) and the founders, Clark and Andreesen liquidated their Netscape stock. So did the investors. So did vested employees such as Zawinski.

Or to put it another way, if Netscape failed, then so did Viaweb. I don’t think the YC founders would describe Viaweb that way.


I guess it depends on what the subject is, and how one defines success. As a product, Viaweb was a failure: it gained no market traction and Yahoo! didn't even use it for very long after buying it. PG and company might not consider the business a failure since it made them rich, but that's like saying cryptocurrency is a success because it made early Bitcoin investors rich. The jury's still very much out as to whether crypto will be a success among the other well-recognized successes in the business world such as telecom, oil, steel, and automobiles.


My understanding is Yahoo Stores was the Viaweb code base for a fair number of years. [1]

As a product, Firefox is still around. And Netscape disappeared in large part as an unsuccessful ground up rewrite as the brand continued following the company sale.

Bitcoin is not a company. Participants had different objectives. Those whose objective was to hold had success. Those whose objectives were political perhaps less so.

Entrepreneurs are in it to make money. Exits are how startups do it.

Telecom, oil, steel, and automobiles are state industries. Even if political correctness often demands pretending they are not…it wasn’t called the arsenal of democracy for nothing.

[1]: https://news.ycombinator.com/item?id=5739392


Yes agreed, as I mentioned in this other comment I think of it as Google and Microsoft successfully "commoditizing their complements", while Sun and Netscape failed to:

https://news.ycombinator.com/item?id=29605638

And to be clear I would like an open source Wolfram -- in fact it's almost a requirement before I spend the effort to learn it! (I have never learned a proprietary language outside of work or school)

I just think it's obvious why it's not open source -- because they have a working and sustainable business model! And on the other side, I think it's great to actually pay for what you use, rather than having something free that's filled with dark patterns or irrelevant ads, etc.

It's a hard problem, and it's obvious that we still don't know the answers :)


Open source projects seem happy to yank the carpet from under their users, depending on what you mean. In the Python world, I'd put Python 3 and pip 21 in that category.


> The argument is that open source licenses are incompatible with the kind paid license they're offering their customers.

I don’t see them making that argument in all these points.

For example they say

> Crowd-sourced decisions can be bad for you

Well ok that’s a valid point so… don’t do that. Crowd sourcing design decisions or code is not a fundamental part of open source. You can have open source but do all the development internally if you want to.

I think they’re confusing source licensing with a development methodology.


> I think they’re confusing source licensing with a development methodology.

Which is why as nitpicky as it sounds, we should really be making an effort not to use the term "open source" to refer to both.


There are dozens of edge cases that you can argue; is redistribution allowed, is attribution required, etc. - open source is a blanket statement and is perfectly suitable as a term IMO.


Open source is a well defined term that means a very specific thing. The definition is exactly 1 sentence long. It's not a blanket term at all.

Something is Open Sources if the code is published under a license that grants the user the right to study, change and redistribute to anyone and for any purpose.

There is other similar things, like source available, or stricter subsets like Free Software. And there is many things associated with open source, like collaborative development in public, community building and so on.


> redistribute to anyone and for any purpose.

This is certainly not a universally accepted definition. ‘Open source’ has long been a generic term for any situation in which the source is available. People may want it to be a term of art with a technical definition, but that isn’t how it is used in general.


> Something is Open Sources if the code is published under a license that grants the user the right to study, change and redistribute to anyone and for any purpose.

That's how some people define open source. Other people use it to mean being able to see the source.


They are wrong. The term for that is source available.

There is absolutely no reason to have any doubt about the true meaning of the term when this definition is on every search result on Googles first page, in Wikipedia, when it's that name of a non-profit that defines it like that and when the page that literally is called opensource.org defines it like that.


Having a domain name doesn’t mean you own a term.


Find me a reputable source on the same level as Wikipedia, the open source foundation or red hat that defines open source in a different way.

This is not about owning a term, it's simply about the fact that term had a definition that people agree on. The fact that some people don't know about that definition or that some people don't agree with it doesn't change it.


A term with no agreed meaning has limited utility. We have an official definition. I don't understand how the community benefits from making the definition more ambiguous and murky. Is there a group that's heavily invested conflating open source with source-available? I just don't understand who wins in that scenario.


> We have an official definition.

Lol how is it 'official'? Who officiated it?


You can read the history of the term Open Source here: https://opensource.org/history

The folks who coined the term were among those that led the OSI.

> The “open source” label was created at a strategy session held on February 3rd, 1998 in Palo Alto, California, shortly after the announcement of the release of the Netscape source code. The strategy session grew from a realization that the attention around the Netscape announcement had created an opportunity to educate and advocate for the superiority of an open development process.

> Two of those present at the Palo Alto meeting (Eric Raymond and Michael Tiemann) would later serve as presidents of OSI, and other attendees (including Todd Andersen, Jon “maddog” Hall, Larry Augustin, and Sam Ockman) became key early supporters of the organization.

These folks went on to create the Open Source Definition: https://opensource.org/docs/osd

The folks who created the term started an organization named after the term, created an official definition, and registered the domain. If that's not enough for us to have an official definition, what does it take? And what do we gain by arguing about this? Reading your posts in this thread (and elsewhere), my impression is that you're invested in insisting that "open source" doesn't have that definition, but I can't figure out what your motivation is.

FWIW, my motivation is to create an environment where terms have precise meaning so we can discuss complex issues (like copyright, licensing, development models, etc.) effectively. If we're wrangling over terms and language all the time, communication becomes much more difficult.


> The “open source” label was created at a strategy session held on February 3rd, 1998

You can see the term gaining popularity prior to 3 Feb 1998, and there are references to for example BSD being 'open source' as far back as 1990.

https://books.google.com/ngrams/graph?content=open+source%2C...

Via https://www.arp242.net/open-source.html.


BSD fits the modern open source definition.

Martin's article pleads with readers not to be pedantic when using the term, but offers no alternative definition, beyond 'let people use it when they can read source code'. Perhaps that's the proposed usage you and Martin prefer?

If I'm understanding your position correctly, perhaps you would agree that Ocarina of Time has now been released as open source?

https://arstechnica.com/gaming/2021/11/reverse-engineering-t...

If so, the term is uselessly vague, as it says nothing about the rights of the licensee. In this sense, 'Free Software' has much more meaning...perhaps RMS was onto something!


> offers no alternative definition

If the OSI picked a term that wasn't simply descriptive they could trademark it, then they could enforce their definition and there would be no ambiguity. That would be better for everyone.


Without delving into how distinctive a mark has to be, that ship has sailed: I see no path to changing the term now.


> You can see the term gaining popularity prior to 3 Feb 1998

“Open source” has older non-software uses, most notably in the intelligence context, where it picks up sharply in the 1980s:

https://books.google.com/ngrams/graph?content=open+source+in...


Did you look at all the references in that article? They aren’t about the intelligence term.



Lua is an example of open source licensing with closed development process. SQLite is similar (though public domain instead of OSS code). It's a pretty poor justification to say OSS itself is bad for Wolfram based on that.


> I think they’re confusing source licensing with a development methodology.

I'm a suspicious, cynical person, so I think that's deliberate.

Conflation is a very useful rhetorical trick.


> The company that created Java went out of business and was sold to Oracle for a fraction of its original worth. So Java was a business failure -- or at least I'd be interested to see someone defend Java as a business success.

The name Sun Microsystems is one that I, and most people, associated with microsystems - with workstations (and servers). Sun was founded in 1982 with Bill Joy as a founder, who was already a renowned programmer from CSRG. Andy Bechtolsheim had an exciting hardware design. Vinod Khosla and Scott McNealy risked starting a new company, and had enough chops to manage it into a success. Sun IPOd in 1986. Sun almost bought Apple right before Java was released.

Java was released in 1995. Sun Microsystems already had over a billion and a half dollars in revenue a quarter, which was pretty good at the time.

One reason for Java was protective - Sun wanted a language people could run on workstations and servers that it had some say over. A free, open source language was part of that, it helped in its adoption. Java was more of a defensive move, that Sun wouldn't be locked out of some kind of language ecosystem controlled by Microsoft or Netscape or other companies.

Sun wasn't a software company, they were a hardware company that released a product to defend their hardware from being locked out of competitor's ecosystems. They also weren't in a position to put out a computer language and force programmers onto it, being free and open source, and the ability to run on multiple platforms helped in its acceptance. Being able to run on multiple platforms was the whole point, they didn't want people to get locked into the Microsoft ecosystem with the release of NT 3.51 etc.


This is a bit meta, but why does everyone refer to a company's revenue instead of profit or margins? Ignoring operating costs, if you manufacture 1M units for 20M dollars and sell them for 19M, you have a revenue of 19M despite losing money, so revenue says almost nothing about a company by itself


Probably because it’s the biggest number. If someone wants to make an argument that a company can afford to do thing X, it’s common to just point to the revenue and say, “X has a revenue of $200M a year! Why couldn’t they do it?”


> The company that created Java went out of business and was sold to Oracle for a fraction of its original worth. So Java was a business failure -- or at least I'd be interested to see someone defend Java as a business success.

Sun and its peers declined because PCs running Linux became good enough; selling commodity hardware is a different business model (https://yarchive.net/comp/sgi_market.html) and it's incredibly difficult to move down market.

Oracle acquired Sun because they didn't want Java be owned by a competitor (https://www.reuters.com/article/us-oracle-alphabet-trial/ora...). Java was also why IBM offered to buy Sun; it seems hard to consider Java a business failure when it's most of the remaining value of the business.


If their argument is that they can't make money with open source, then they should say that, instead of this list of non sequitors.


Sun went bankrupt for more than just Java, it was a complete mismanagement of everything, and they only opened up Java on the last days, until Java 6 it was pretty much only a free beer thing, no source to play around.

Additionally Java has been a major success to those that played into the ecosystem, people keep forgetting there were several (some are still around) commercial implementations of Java with features not available on the free beer JDK like AOT compilation.

The way Sun managed Solaris and SPARC hardware had more impact on their wallet than Java.


Java wasn't a business failure. SPARC was a business failure, and Sun had an incompetent CEO.

Java ultimately kept their declining hardware and operating systems afloat for longer than they would have been otherwise.


How about just sticking a proprietary, "source available" license in the source and including it on the product download? Developement stays private, control stays in their hands, and it's still proprietary.


>The company that created Java went out of business and was sold to Oracle for a fraction of its original worth. So Java was a business failure -- or at least I'd be interested to see someone defend Java as a business success.

Just as Java is an afterthought to Oracle's database sales today, Java originally was an afterthought to Sun's workstation sales. Java was never intended to make money directly but rather as a conduit into the money-making side of both owners.


Sun was already on life support when they tried the open source strategy. Their failure isn't related to open source.


ahem it obviously was a business service model success as Oracle bought ti for exactly that reason!


Counter: Android is open source.


because it's a vehicle to deliver other, profit-making products. I.e. Just come up with a different business that makes hundreds of millions of dollars and use that to pay for Wolfram !


Covered by point 10 (quid pro quo) - Android is both a Commercial Trap (effectively requires Google Play services) and User Exploitation.


Java was killed by Microsoft using their famous Embrace, Extend And Extinguish method. It's on the wikipedia page as an example of the EEE method.

The fact that Java remains at all today is a testament to the power of open sourcing something.


And ironically Google gets a free pass from SV cheering crowd for trying to do the same.


It's harder to root for Oracle than it was Sun.


No one else bothered to buy Sun, so.


>> Most of these are about wanting control over the design of the software

As an open source maintainer, the part that stood out to me was all the stuff nobody really wants to do. For example, look how long it took GIMP to switch to GTK3. In a paid corporate environment switches like that are scheduled, assigned, and implemented.

I'm very fortunate to work on a project (solvespace) that has members who tend toward different specialties - build system, macOS, Windows, C++ modernization, algorithms & math. And yet I don't get to assign tasks and expect results because we are all volunteers. If we were all paid things could go way faster.

Wolfram has been going fast for decades and would not work as OSS. The best we have in OSS is Octave, Maxima, and Julia, but none of those come close.


Open source can either mean "publish the source" or "run it as a community project".

Most of the benefits of open source (for the company) would come from running it as a community project, which would imply giving up some of the control. Simply throwing the code over the wall without accepting contributions doesn't meaningfully benefit the company. There are of course graduations between "don't accept any contributions" and "let the community run it", but that's just different levels of giving up control.

I think "11. It takes steady income to sustain long-term R&D" is still the key aspect. Without money, software doesn't get maintained to a high level. Some projects work because many companies depend on it and contribute (but they wouldn't do it - or at least not nearly as much - if the project was strictly centrally controlled), but many other projects are basically one company running and publishing it and many others using it for free.


> Open source can either mean "publish the source" or "run it as a community project".

This is exactly it. I'm amazed that so few people in this thread are recognising this key ambiguity which underpins the confusion. As Wittgenstein writes in the Tractatus[0]:

> 3.323 In the language of everyday life it very often happens that the same word signifies in two different ways — and therefore belongs to two different symbols — or that two words, which signify in different ways, are apparently applied in the same way in the proposition. Thus the word "is" appears as the copula, as the sign of equality, and as the expression of existence; "to exist" as an intransitive verb like "to go"; "identical" as an adjective; we speak of something but also of the fact of something happening. (In the proposition "Green is green" — where the first word is a proper name and the last an adjective — these words have not merely different meanings but they are different symbols.)

> 4.003 [...] Most questions and propositions of the philosophers result from the fact that we do not understand the logic of our language. (They are of the same kind as the question whether the Good is more or less identical than the Beautiful.)

[0] Hilariously republished here by Buzzfeed as '7 Fantastic Ways To Distinguish Between Sense And Nonsense': https://www.buzzfeed.com/ludwigwittgenstein/fantastic-ways-t... It's such a mindblowingly profound work of philosophy, especially the kinds of philosophy that programmers are often unknowingly engaged in, that I feel you just can't read it all at once. You have to keep referring back to tiny chunks of it, as you start to understand their meaning and significance through epiphanies arising from particular concrete problems you wrestle with in your life.


>Some projects work because many companies depend on it and contribute (but they wouldn't do it - or at least not nearly as much - if the project was strictly centrally controlled)

I can't help but think of Linux when you say this, and Linux is strictly centrally controlled


Is this strict control actually being exercised strictly in practice? My understanding was that e.g. individual device driver authors have a lot of leeway, and I don't know how strictly consistency is actually enforced across the board beyond basic style rules.


No. Most of these are about the power of paying another economic actor has on aligning his interests with yours. Open source software is huge partially because software companies have failed at this.


I don't really understand the definition of open source. I used to hear people say stuff along the lines of "If you just release the source and don't accept patches then that's not real open source"

But the opinion on that has changed I guess?


I never heard it that way.

If you can fork it, it's open source, even if contributions are not accepted upstream. If upstream accepts patches but does not allow forks, it's not open source.

It's about the license, not the project's governance model.


The way I always understood it is that "open source" and "free software" are orthogonal concepts:

Open source = bazaar-style (highly-decentralized development)

Not open source = cathedral-style (highly-centralized development)

Free software = source code released under a license that grants rights such as freedom to modify, redistribute, own a copy of, etc. (see [1] for the proper definition)

Nonfree software = source code not released under such a license

[1] https://en.wikipedia.org/wiki/The_Free_Software_Definition


> Open source = bazaar-style (highly-decentralized development)

> Not open source = cathedral-style (highly-centralized development)

Don't conflate cathedral/bazaar to mean open-source/not-open-source. Wasn't the original example of cathedral the open source Emacs project?


Those are your own definitions. open-source/free software is about the license, period.

Then some people wants to add some romance around it but that is just their own opinion.


I’ve got to agree with you here. While I personally agree with the people commenting about open source being about the license rather than governance, I do not think that was always as widely accepted as it currently is in this comments section. I recall seeing a lot of hostility from people in the past about governance of a licensed project not being in line with ‘open source values,’ for example.


"Open source values" is just a covert way of saying "RMS values"


I don't think that's correct. Open Source as a term was created in reaction to Free Software, which is RMS's thing. See: https://www.gnu.org/philosophy/open-source-misses-the-point....


It wasn't created as a reaction to free software, it was created as a way to differentiate from free software, starting with Netscape navigator. But there's the open source initiative, which somehow I wasn't aware of: https://en.m.wikipedia.org/wiki/Open_Source_Initiative


> It wasn't created as a reaction to free software, it was created as a way to differentiate from free software

I wanted to correct your statement without getting into an argument. I view an attempt to differentiate as a type of reaction.


If I'm being pedantic saying that it was a reaction to Netscape releasing under a license that didn't jive with the FSF, then your initial comment was also pedantic :P


If the source is available to anyone, it's open source. That is independent of the licensing model. Saying "That's not real open source" is just gatekeeping. There are different licenses, and when you insert the word "freedom", then you can start talking about how free said OSS is. It would be much more acceptable to say "If you just release the source and don't accept patches then that's not real _free_ open source", but even then, if their license is permissive, it still could be considered free.

Free as in freedom: You're free to do whatever you want with the code

Free as in beer: The product does not cost money

Whether or not they accept patches is up to the maintainer, and does not affect the freedom or open source nature of the software


> If you just release the source and don't accept patches then that's not real open source

this is commonly referred to as "source available".


Source available is specifically if the code is not under an open source license. Whereas software that is under an OS license is open source, whatever the maintainers policy on contributions.


ah, you're right. i missed that.


Not necessarily. There are some true open source projects where the development model is some company "throwing code over the wall". Often they don't make it easy or even possible for anyone outside the company to contribute, they don't have an open repository or bug tracker, release only periodic tarballs, etc. But the license is OSI approved, such as GPL, BSD, etc. so in theory someone could fork the project.

TL;DR - development model != license


> There are some true open source projects where the development model is some company "throwing code over the wall". Often they don't make it easy or even possible for anyone outside the company to contribute[...]

Google's V8 engine is essentially an example of this, though they do notionally have some framework for outside contributions (https://v8.dev/docs/contribute).


Which would be fine for e.g. verifying the results of computations done using Mathematica.

I completely agree that Mathematica needs a steady stream of income to continue, it is a great language and for many use cases the best available. But every time I see a paper that relied on Mathematica for critical conclusions I'm forced to dismiss it as incomplete speculation.


Let me tell you how tens of thousands, and eventually hundreds of thousands of students totally skipped Wolfram products and proprietary science products in general.

Wolfram products are very highly priced, even much more so for the Indian market.

Indian science and engineering colleges are usually very poorly funded save some IITs and premier provincial universities.

There is no way in hell these colleges could ever have afforded MATLAB or Wolfram products.

C and ForTran were taught at science institues- even at the very best ones.

Students only learned this.

By the year 2018, all of science universities of India fully switched to Python for Physics, Maths, Chemistry, etc. majors.

They now teach NumPy, SciPy, Matplotlib, etc.

They totally skipped Wolfram and Mathworks products.

Why do I say "skipped"? Because with rapid economic growth and visible improvements in college fundings, Indian unis would have soon been able to afford proprietary science software. But they skipped it.

They went straight from ForTran and C to Python ecosystem.

Now, the market is flooded with thousands of core science grads with Python skills who have never worked with MATLAB or Mathematica.

They are the losers in their models.


MATLAB has the open source equivalentS Octave (EDIT : and SciLab !) though..?


They didn't catch on.

I guess Octave's early adopters were the people who already used MATLAB or needed to use it.

Indian students did not, and still do not fit into either category.

Very few do the ML course on Coursera, and use Octave.


My own (non-Indian) experience is that teachers tend to have (use/d) Matlab, but then teach Octave / SciLab to students. (And it wasn't optional in none of the 4 courses I took that used it.)


This article isn’t about the pricing of wolfram software. The price they charge is what it costs to develop, host, and support the software, plus innovate on it. They can’t lower their prices substantially for individual markets. Best to just petition universities harder to arrange this software as software these days is as fundamental to education as the buildings we learn in.


> They can’t lower their prices substantially for individual markets.

This comment isn't about me wanting them to lower their prices for any market.

> plus innovate on it

Please. I would take an Open Source software anyday over Wolfram or Mathworks software. They are objectively much better.

> Best to just petition universities harder to arrange this software

In case it wasn't clear from my original comment, I am glad, that Indian unis skipped wasting money on such sub-quality software.

I am just mentioning that it is their loss. It is not the loss of the students or unis that cannot afford these.


1 - 11: $$

12. Doesn't want to show the world how bad the codebase is. Seriously, Mathematica makes naïve python code seem blazingly fast

I've had the displeasure of porting 4k sloc of Mathematica to python and the script runtime went from 40min to 5sec.


At first I thought, "how could anything be slower than python?" And then I figured that you probably would've ported it to leverage things like numpy which makes a lot of operations into native code and takes advantage of highly optimized blas libs, etc.


Even native python is not as slow as people expect. And scientific languages are terribly slow, see for example loops in Matlab, which are terribly slow.


FORTRAN, the OG of scientific languages, is not slow. In fact, that's why it's still used to this day.


That's true, i was more thinking of scientific interpreted languages, a la R, Mathematica, matlab


In fact it may well be the fastest language - although it's hard to compete with the sheer number of man hours spent on C/C++ compilers.


It is not the compiler per se, it is mostly down to the design of the language itself. D language based numerical library has already beaten popular Fortran based numerical library OpenBLAS/Lapack for several years now [1].

[1]Numeric age for D: Mir GLAS is faster than OpenBLAS and Eigen:

http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...


while it isn't inherently slow, all the open source compilers are missing a lot of modern improvements. The default libm in particular is often a few times slower than those provided by Julia.


Loops and other general purpose programming constructs are afterthoughts in Matlab! It's not really a general purpose language, it is at it's core a numerical computation language, it's made for matrices and vectors operations.

If a Matlab user don't need Simulink or one of it's numerous costly toolboxes, this user should give Julia a try.


MATLAB has had a JIT at the function level for several years now that alleviates specifically that pain. But most guides still focus on vectorization for optimization.


Mathematica is the worst when it comes to pure number crunching, because they use unstructured arrays. Much more flexible, but much slower.


Mathematica also has the more specialized packed and numeric array types.


native python is indeed quite slow relative to anything compiled, especially when you want to use pure python for hot loops. it's really the saving grace of cython (or alternatives) that makes python tractible for a lot of scientific computing.

I'll agree that mathematica was really slow (but very expressive) when I played with it last. I think this comes down to it's lispy heritage.

julia is an example of a lang that is fast, but even it can be slow because of GC depending on the workload.


> I've had the displeasure of porting 4k sloc of Mathematica to python and the script runtime went from 40min to 5sec

While i can't comment on perf, how much of this is due to a rewrite taking advantage of knowledge learned? Would a rewrite in mathematica have been quicker than 40m?


I'd wonder if the Mathematica code was using fast constructs to begin with.

It's best to think of Mathematica as being similar to Python + Numpy. If you want your code to be fast, you want to spend as much time in the kernel (Numpy) as possible. That's why you'll want to take advantage of functional programming constructs, listable functions, etc. if you want to write fast Mathematica code.


I'm not saying that's your case, but this reminds me of a colleague of mine who was tasked with building a piece of code to calculate some metric related to the adjacency of faulty parts in a production batch.

He initially wrote an R script, but was extremely slow, so he started rewriting it in C. When I got involved, I found he was calculating this metric with N nested loops, rather than transforming his problem in something that was supported by an existing library or built-in function.

Once he rearranged the problem as a matrix multiplication plus some statistical commands, the R script was faster than the C program and also more readable.


I don't understand why this comment is so high up. It's just really naive to compare mathematica and python on runtime speed as if they're both tools used for the same purpose. Whether you like their choice of syntax or not, wolframs tools are state of the art on what they do. Just don't hammer your nails in with screwdrivers.


Wolfram had been trying to push its language as something that can replace python


Wolfram literally say Mathematica is intended to be for all computational purposes. From the article: "our vision is a grand one—unify all of computation into a single coherent language".


It might be a situation like the R language, where the language itself is too flexible to optimize well.

Loops and function calls in R are (or were, last I checked on R 3.x) yet another order of magnitude slower than CPython.

The flipside is that CPython itself has apparently gotten a lot faster in recent versions. In my unscientific homegrown testing, it beats even LuaJIT on string processing tasks.


It’s not. Mathematica is extremely flexible yes, but it’s not hindering optimization. You can literally parallelize code and compile to c automatically.


Yeah, so I usually consider Mathematica as a fast prototyping tool. It offers some optimization tools(i.e. packed array, compile), but I find myself rewriting a significant portion of the program while trying to apply them. They work, but often not worth the effort.

Still, it offers a very good set of features, and it's cleaner than some popular python libraries.


Was my thought as well. Python is eating Mathematica and Matlab for lunch. I guess the reason is also, that FANG investend heavly in python. Even just by opensourcing tensorflow, pytorch, jax and so on.


"Python" as in "SymPy"? Was the translation actually equivalent? Did you try Compile[]? [1]

[1] https://reference.wolfram.com/language/ref/Compile.html


Sounds like the typical case of someone not understanding Mathematica. The 40min -> 5sec speed up can typically be achieved in Mathematica just by changing 1 to 1. The default is slower but always completely accurate, which is important for math, but less so for most numerical scripts.

If that fails Mathematica can also just compile your script for you.


As a huge FOSS guy, I have to say -- this list is excellent.

I think where this debate/discussion goes off the rails is a lack of appreciation for every aspect of things in their place.

The GPL + Stallman + FOSS et al are absolutely necessary as a sort of extreme visible working model; an endpoint to an Overton Window of this sort of thing and as such I completely support it.

But also, I also do not believe that supporting it requires full and complete buy-in, the way some people do religion. I'm glad it's THERE, and ALSO not everyone has to do it. This is not hypocritical or even conflicting.


I’m sorry to say that I was shocked by this article. I have no objection to Wolfram remaining closed source - if they prefer that model and want to make money from it then it’s up to them.

However, that they feel that they have to justify this by implying that their approach is clearly superior to open source in innovation, long term commitment and user experience I’m afraid leaves me with a rather negative impression (to put it mildly!). A lot of open source is flawed but some disproves these assertions comprehensively.

If they really wanted to ‘unify all of computation into a single coherent language’, which sounds like a mammoth task, they would surely welcome quality contributions - beyond just picking up and using other open source projects - from whoever feels able to make them rather than a small group of individuals working in private.


You might be slightly tardy to the party: https://news.ycombinator.com/item?id=13963287


It would be more interesting to address why they chose a pricing model that guaranteed their products would never be a more mainstream consumer product and pretty much irrelevant for almost all enterprise contexts where a computational or analytical capability is needed.

Because I don't think they are so stupid this wasn't a conscious decision on their part.


I think to make it mainstream would require making it different. The number of people who actually have a use for Mathematica is pretty small. Very few people understand both math and programming. Most people who can program are already employed as programmers. In a larger organization, rather than buying 10 licenses for 200 bucks each, it's better to buy 1 license for 2000 bucks and have everybody bring their math work to the "math person." Organizations see this as a natural division of labor. And it's easy to justify that cost because you can show that the math person is using Mathematica full time.

They would have to add more non-programming and non-math features. And at the end of the day, they'd still be competing with free.

In my own case, I've used Mathematica, and I love it. But the standard arguments in favor of using free tools have all materialized over the span of my career, and I'm happy enough with Python.


Well, let's for arguments sake consider the most important demographic in my mind: me :-). (That's what most people do anyway).

Joking aside. I'd love to make Mathematica part of my toolbox, but the steep pricing makes me think about all the other software I pay license fees on that I depend on, and I need another software expense like I need a third buttock.

If it wasn't a recurring license, or a recurring license at a significantly lowered price, that would make it different.


Indeed, in my case, I've got my basic toolchain installed on more than a half dozen computers. At work, I do hardware related R&D, so I need my tools at multiple workstations in the lab. At home, a work-at-home computer and a personal computer.

If I share something, my victims need to install their own copy of the tools.

Then there's the whole world of code running on microcontrollers, which is how I prototype hardware gadgets, also in multiple locations.

There is one piece of domain specific software that I use, and that is tied to a single computer, but I only use it sporadically when I need to do that particular kind of design work.

I appreciate Wolfram's vision for a universal computing platform, but aside from the problem of getting everybody to agree on what that should look like, it's not a realistic dream unless it addresses things like economics and logistics.


You point out something extremely important here: the ability to share work with other people. Tool-use tends to promote or limit networked effects. If I'm the only one who can afford Mathematica in a given context where I collaborate with other people, then we won't be using Mathematica. Simple as that.

On the flip side: If I introduce a tool in a networked context, my enthusiasm may well end up converting dozens of other people.

I think Wolfram could have built a much broader and more stable revenue base if they'd dropped the professional licenses by roughly 1/10 and gotten a bigger user base.


I tried to do this for a few years. I really tried, I renewed, I did various analysis in it... But it's really hard to make it performant on data processing tasks, learning how to do things efficiently in the language.

The curated data is... honestly a little basic and overrated imo. If you are doing general work, maybe their population info is ok, but you don't really know the source of the data entirely, when it was acquired, etc. If you are doing real research, it's not gonna cut it.

I wanted to do analysis of ethereum, but their blockchain library was incredibly weak. It did not support reading data at given block ids (ie: historical analysis), and when I requested the feature the answer was basically "maybe in the next major revision."

I'm not a fan of python, but I went there. I used typed python, which ultimately I think the best solution moving forward is probably typescript, since typed python has a lot of type holes in it :-/


Mathematica is available as a non-recurring license, though you'll have to pay for upgrades if you want to upgrade in that case.


I don't really know but lets play their advocate.

Probably they are stuck in academia market or really research market because that is who they know and this is their target audience.

Moving to more enterprise context would cost them effort, they would have to hire enterprise sales people and spend money on making new connections.

Then to gain real foothold they would have to implement security/auditing/SSO and other enterprise requirements. Which would be quite heavy investment and quite high risk one, because they will never know if any of it will be useful. Like they get first customer, roll out all of that and then growth stagnates and maybe they are stuck on 2-3 customers who keep making demands, but there is no growth to cover for the "enterprise features" investments.

Keep in mind also that not everyone wants to be a unicorn, if they are happy with what they have and roll with it, it is also fine.


Not sure about that. If Matlab is their main competition, then they are much cheaper and you get tons more (that you may never use but its there...) for the price of just Matlab's base software. The downside is that the engineering community by and large uses Matlab because it's what the legacy code is and it is taught in school. I've used Mathematica and I enjoy using it (and Python) more than Matlab but at the end I have to use Matlab because that's what my colleagues use.


Are they that close now to be often interchangeable? Last I looked, they were as different as Lisp is to C: Mathematica is very strong for symbolic manipulation and discrete simulations and DSLs and can somewhat do numerics, whereas Matlab can get you serious performance in numerics but at the cost of awfully inflexible language.


Wolfram’s suite of software seems like it’d require very specialized support staff. Maybe the higher price point helps keep the customer support side of the business more maintainable?


If he had said "It isn't open source because it's ours and we don't want it to be" that would have much more integrity than this.


Why do you think he is lacking integrity as it stands?


Because he makes hundreds of false statements disparaging open source - and it's contributors - throughout the whole article.


Can you identify some of them?


Yes, I can.


Most of their points are valid for community driven open source projects but the existence of large corporate ones like Chrome, Android, .net, VS Code, Tensorflow and lots more prove that exerting tight central control while being fully open source is very much possible.


>but the existence of large corporate ones like Chrome, Android, .net, VS Code, Tensorflow and lots more prove that exerting tight central control while being fully open source is very much possible.

All of your examples are subsidized by a parent corporate sponsor that makes billions from something else. Chrome can be "free as in beer" and Chromium source can be "free as in libre" because Google/Alphabet make billions in ads from a search engine. It's easy for MS to release VSCode and .NET for free if billions are earned from MS Office, Windows, SQL Server, etc.

Wolfram doesn't have another product that rakes in billions such that any licensing income loss from hypothetically open sourcing Mathematica would be an insignificant rounding error.


> Wolfram doesn't have another product that rakes in billions such that any licensing income loss from hypothetically open sourcing Mathematica would be an insignificant rounding error.

Right - and _that_ is what this post should say, not that it's not possible to have a centralized model of development.


Yes, and I'd also add that being a rounding error probably isn't enough to justify the business decision.

Usually the reason that big companies open source big longstanding projects is to commoditize a complement of their main business:

- Search makes billions of dollars, and you need a web browser to search, so Google should make a fast and secure web browser (not to mention you can fill it with all sorts of dark patterns!)

- Users purchase Windows to run applications like spreadsheets. We should offer a free high quality IDE so that more applications can be made, increasing the value of the ecosystem.

- Java: Sun sells hardware, and software is the complement to hardware, so we should make a new programming language (???). To be honest, this one always seemed suspect, and maybe that explains why Sun went out of business :-/

https://www.gwern.net/Complement

https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/


There are a bunch of smaller companies that open source a community edition and upsell to SaaS. Confluent and elasticsearch are the first that come to mind


It's telling that one of your examples is one that took the step to relicense their product under a not-open-source license.


Take a look at the CNCF, all of those products are open source and many of them are lucrative.

Elasticsearch is still open source they just wanted to buck companies like Amazon from taking advantage of them, which is fine by me


Elastic search is not open source anymore. It's not under an open source license.

I'm all for open source products (I both work on and make large use of such products), but this "just open source it, you can make a business out of it anyways!" without further constraints is IMHO misguided. Open-source business models are challenging, and that needs to be recognized.


This seems too obvious to repeat, but Google and Microsoft fund Chrome and VS Code through the profits from their other products like Search and Windows.

Wolfram doesn't have that, and most businesses don't. It's very easy for us say "just make it open source" if we don't have to come up with a way of paying people! Just come up with a different business that makes hundreds of millions of dollars and use that to pay for Wolfram !


That's fine. The bullets should just read "we can't figure out a FOSS business model" instead of calling it a code quality problem.


Exactly I’ve been building OSS for companies for a long time now, it’s an incredibly viable business model as shown by the boatload of products that do it today


Exactly this.

Oh just be a world beating, industry leading, technical titan of a company with multiple revenue streams and you can afford to give away some code to make us all happy.

Wolfram just has to launch an operating system, a search engine, a line of mobile phones and laptops, a cloud services unit, and sure then they'll give away Mathematica, what the hell why not?


That's the thing, though, you can make money with open source software but only if your business model is not based on selling software. There are some companies for whom dual licensing work (e.g. AdaCore) but these are really the exception. Generally, selling open source software does not work, and not everybody wants to primarily sell server space ("web app" subscriptions), maintenance, troubleshooting and other developer services, SaS, integrated hardware+software solutions, printed documentation, etc. Some people want to sell the software they make without being an employee or contractor or billing for something else than the software.

I believe there is a place for proprietary software. My personal solution is to do both, sell proprietary software and publish some of the libraries involved in it as open source.


> you can make money with open source software but only if your business model is not based on selling software

Depends on the scale you're looking for. We (ardour.org) make money with open source software by encouraging people to pay for our software, though it is GPL'ed. Do we make millions of dollars? no. Does it make money? yes.


I mean, also Blender (written in pure C, Python scripting for UI). Pretty sure it's as complex as Wolfram at that point. Largely financed by private corporations now, still open source.

The irony is that Blender USED to be a proprietary project, the community had to buy back the source code.


I have a friend that uses Mathematica, and I had some symbolic math I wanted to run a solver on last week, so I thought I'd give it a try. It wasn't any better than sympy from what I could tell. I ended up taking a monte carlo approach anyway. Generating the simulations was soooo slow in Mathematica compared to numpy. After that demo, I'll have to say the Python ecosystem is far superior for all it's flaws. Sure the documentation is all over the place, there's no unified design so it all feels different, and lot of choices to do the same thing. But when you need something to work right now, at least I have options to switch things out or even fix the code. Wolfram has a lot of lofty ideas that hasn't been delivered on.

13) Try to do everything, but poorly

But seriously how can you build a unified model of computation, when we're still figuring things out? I just tried jax yesterday, their approach to jit & automatic vectorization is really interesting. Wolfram, do you even have a jit? This article gives me less respect for the Wolfram Tech, they're building off the shoulders of giants trying to package it up in some nice soft serve product--it's not a good look to criticize something your building your empire off of.


Numerical simulations and jit-compiled autodiffed float32 operations are not Mathematica's main purpose.


I think it's disingenuous to say simulations aren't the main purpose when it's built into many places like `NIntegrate[f, ..., Method -> MonteCarlo]`, and calculus definitely a main purpose of Mathematica.

My point with jax wasn't that I want it to be that, but that Wolfram Tech is never going to be able to compete with specialized solutions. Instead what you have is a tool that does a lot of things poorly, and kind of the antithesis to this article--with the main point being Wolfram Tech is built off of open research & open source.


Their more recent post titled "Six Reasons Why the Wolfram Language Is (Like) Open Source"[1] is even more cringey.

Is this directed to managers who need to link to a reasoning against other managers making the claim for open-source alternatives? If so, this assumes those managers aren't that competent, which is insultiong at best.

1: https://blog.wolfram.com/2021/11/30/six-reasons-why-the-wolf...


I laughed so hard at this. It's like "We took all the good parts of being open source, and the good parts of NOT being open source".


Both of the two blogs are very convincible. The only question to me is which one I should share with my friends?


Honestly I feel like Mathematica is one of the better arguments for the quality of proprietary software. After spending time using it, reading their documentation, and interacting with their support staff, its downright painful by comparison using the free alternatives.


I understand Mr. Wolfram's decision to be a billionaire with a small army of brilliant persons at his beck and call. I also understand his desire to keep complete control of what he's built. All that being said, I sincerely hope he makes provisions to make his work Free at some point after his death. Because, if he doesn't, lacking his admittedly ingenius leadership, it will be lost to obscurity at best. That would be a shame for humanity.


don't be too negative, there are lots of alternatives. humanity will lose almost nothing if wolfram cease to exists.


The real reason is very clear to me: Wolfram builds a fairly unique and complicated product. Their advantage comes largely from a very narrow market with few competitors.

Releasing the source would deprive them of that advantage, which has financial implications. The benefits of additional contributors might not outweigh the potential loss from competition.

The article is a typical critique of open source generally, and one can debate how true or false each point is, but it's not relevant to the real reasons. It's just a smokescreen over "we'd think we'll make more money this way".


After purchasing a one month subscription to Wolfram Language Desktop twice before, yesterday I paid for a one year subscription and decided to really explore the language, pre-trained models, and libraries.

The article didn’t come across well. They don’t need to justify being closed source.

What concerns me is that much of my hacking fun projects and also a lot of my work over the last 40 years has been in Common Lisp. I can take very old code that I have written and run it with several good open source systems and two fine closed source systems. I am sure the Wolfram company is not going anywhere, even if the founder is 60 (that is ten years younger than I am). But, if I were younger, could I be sure if being able to run my Wolfram Language code in 40 years? I don’t know.

The support for Wolfram Language is very good. I also pay much more that Wolfram for LispWorks Common Lisp (about $3500 to purchase and about another $600/year maintenance for support and upgrades). There is some pleasure in using well supported tools, and there is pleasure in using open source software. We get to decide individually what we want to use.


> Paid software offers an open quid pro quo

This section points out a valid problem with business models based on open source, but closing the source and requiring payment doesn't inherently solve the problem. In fact, closing the source, which is the usual means of enforcing the paid license, introduces another problem: the developer could be doing something nefarious in addition to requiring payment, and it would be very difficult to find that out because the source is closed. True, reviewing a large open-source codebase is also difficult, but not, I assume, as difficult as reverse-engineering a large blob or set of blobs. Perhaps processor architectures and/or operating systems could impose restrictions to make reverse engineering easier, but that would fundamentally be at odds with license enforcement. If only we could fix our species to guarantee trustworthiness.


In fact it's not about "payment" or "paid". The opposite of opensource is proprietary, not "paid". You can pay for FLOSS.


Almost none of the reasons have anything to do with releasing the source. You can release the source but still maintain central control. They shouldn’t even have posted this. Obviously they want to make money from their products, and that’s fine.


Yea, it's embarrassingly bad.

It sounds like their idea of open source is something along the lines of "slap a MIT license on it, throw it over fence, and hope random nerds on the internet finish it while we wait idly."


[flagged]


I think it's far more likely that he is a better computer scientist, and a better programmer, than the vast majority of people you or I know.


> You can release the source but still maintain central control.

Until someone with a larger budget than you forks it and uses their immense resources to force you out of the market. Then you liquidate your company and someone else gets the rights to maintain your fork.


I think this is an underrated point that has been more noticeable with AWS in particular. Their own CentOS spin, their own ElasticSearch distro, their own elastic cloud, etc.


Even if you’re worried about this, there are source-available licenses like SSPL or Elastic License v2 explicitly designed to prevent this, and which have seemingly been successful at doing so. The exact choice of license would depend on the kind of thing you’re worried about.


I mostly agree, at least in the current day where the powerful companies in context are [x]aaS companies, but now you’re going down a road where people will argue whether OSI/FSF are legitimate gatekeepers of the definition of “Open Source”


That’s exactly why I used the phrase “source-available”, not “open source” - because those licenses aren’t recognized by the OSI. I’m actually of the opinion that if AGPL is open source, SSPL is too, no matter what some dorkwads as the OSI say. But I’m employed by a company that uses the SSPL, so I try to use the generally accepted phrasing to avoid being accused of “sowing confusion”.


There is zero chance that Wolfram's products would be "stolen" in this way. No one is interested in developing them but Stephen Wolfram.


I’m sure some cloud provider would love to slap wolfram features on to their existing service offerings as a value-add.


When people say "I'm sure" I'm always just floored. Why are you so sure? Have you spoken to these supposed cloud providers and had them tell you this?

Here's one I'm sure about: no one cares about Mathematica except a couple of schools, professors, and finance wonks who've clung to it since the early days of CAS. The language is wacky enough that no mainstream user would prefer it (even with all of its built-ins) over Matlab or scipy. And I say this as someone that has developed things in Mathematica.


How about using AGPLv3?


The irony certainly is that wolfram uses open source libraries (and there were some twitter threads that they might be aying a bit fast and loose with the acknowledgement of LGPL licenses)



I think what he has in mind is not "open source" per se, but the way open source projects tend to organize development—distributed development, unpaid volunteers, open communities, etc. He wants the Cathedral, not the Bazaar—and that's fine; there's no reason everything should be developed by a community of volunteers. But, as you say, there's nothing to stop them centralizing development but releasing source code.

(Plus, I think putting Stephen Wolfram at the top of a Linux kernel-type project is unlikely to work well at all.)


The only point here that _may_ be considered valid is #5: Crowd sourced decisions may be bad for you.

The reason one could consider this to be true is that often open source design is hype driven, and not long term benefit driven. Exceptions can be seen in communities like Rust, but there's still lots of issues there (like async). However just because there's lots of hype does _not_ mean you have to bow to it. You can easily commit to a read-only release of the code which obviates all the need to actually participate in the community.

And of course there's successful models like VSCode, which manages to be _mostly_ open, but all the "cool parts" (like Copilot) are still not possible to reproduce with the provided source alone.

Many ways to open source your code and still have people pay for it!


Wolfram isn't open source because Wolfram (the man) is an ego maniac and a control freak. This isn't an adhominem - some men are just that way.


is he the guy who wrote a book to explain everything?


Yes, in "A New Kind of Science" (2002) he uses his cellular automata theory as the basis of explaining all of physics and computation. Very narcissistic if you ask me. Not to mention that it's not a good mathematical model and doesn't really improve on the state of the art.


One argument for Open Source: Stephen is not immortal. While it is vain to expect anything made by humans to last forever, a computer program can definitely outlive its creators if there are enough users and maintainers. Hat tip to Adm.Hopper.


Firstly I think if Wolfram wants to keep Mathematica closed source, that's his choice and I have no problem with it.

But, doesn't this indicate quite a poor architecture? Mathematica appears to be (or should be) composed of many different mathematical modules and capabilities that it can do. It should be possible to develop those separately while retaining a centrally controlled "beautiful" architecture to bind it all together.


>> doesn't this indicate quite a poor architecture

In my opinion (I've used Mathematica heavily), no. My best guess, they are able to develop the modules and capabilities separately, i.e., divided cleanly into multiple teams. Their choice of keeping it closed source is orthogonal and does not indicate a poor architecture.


Well, that's a cancelled subscription from me.

I have no problem with them not being Open Source, but these arguments are all orthogonal to being Open Source.

There is a valid argument for not being Open Source: "We think a proprietary program with a monthly license fee is the best business model for our company and product."

You say that, I respect you. You bring a bunch of bad arguments, I lose trust.


This was written two years ago. Why would you cancel a subscription over it if their software works for you?


Becaue I barely ever used it and I mostly had it to support what I believed to be a cool company.


This is just the usual "proprietary software is higher quality, we swear".

Accurately voicing my thoughts on this would probably go against the HN guidelines, so I'll just let this sentence from the article speak for itself:

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

Well, good luck with that.


I don't think they're wrong. Open source does not work with product management. There will always be friction with what is on the roadmap vs what the community wants to add. Additionally, if Wolfram wants to monetize it somehow, they have to own supporting it--including the contributions that they don't necessarily want. If they anger the community, then the community forks the project and Wolfram loses complete control or is in the same place they were before they open sourced it (but now their IP is gone). I don't see how they (Wolfram) benefit from FOSS at this point.


> There will always be friction with what is on the roadmap vs what the community wants to add.

Open source does not necessitate listening to the community. Ever. Even if they were to release it under an OSS license, they could just turn off PRs. Or if it's "source available", same story.


Then the community forks the OSS project and you lose control/struggle to maintain parity/mindshare. Gogs/Gitea, VIM/Neovim, Bitwarden/Vaultwarden...

The ones that succeed keep the community happy and either focus on adding value on top (open core, don't give away the special sauce) or deliver half assed products (package up the community leftovers and hope support contracts/services fill in the gaps).


> Then the community forks the OSS project and you lose control/struggle to maintain parity/mindshare

That shouldn't matter if you're making a superior product.


Well, yeah. So what's in it for them?


Free QA/testing, a community of users who can submit patches, word-of-mouth marketing, a large install-base, opportunity to sell support to high-value clients.


What's in it for them, if it turns out the community forks their project and do it better than them?

I don't see it as a sound argument.


Correct me if I’m wrong, but aren’t there open source licenses that don’t permit unauthorized distribution? If so, couldn’t they safely release the source code without worrying about competition from forks?


> Correct me if I’m wrong, but aren’t there open source licenses that don’t permit unauthorized distribution? If so, couldn’t they safely release the source code without worrying about competition from forks?

They would still be faced with knock-offs that either copy code or violate the license; Paint.net (https://en.wikipedia.org/wiki/Paint.net#History) is an example of this happening for an open source project.


That would be shared source, not open source. Disallowing unauthorised distribution contradicts the definition of "open source".


Huh? Open source absolutely works with product management, their are tons of companies doing this today. OSS is a great way to market and up sell to SaaS


But then companies that make their money by upselling to SaaS really don't like it when Amazon comes along, takes the software, and undercuts them in the cloud. The company then scrambles to change their license to disallow that.

Wolfram in that sense is just being honest about their motivations by having it be proprietary from the get-go.


There are ways of preventing that like what elastic did. If wolfram honestly wants to be the sole computation language no one is going to pay for that all the time


> open source distributes design over small, self-assembling groups who individually tackle parts of an overall task, but large-scale, unified design needs centralized control and sustained effort.

I actually think at a minimum that this isn't true, but it's also possible that the complete opposite is true.

OSS has maintainers who know what they're doing. Fundamentally, one of their most important jobs is to gatekeep bad code and ideas from their project. It can be distributed, but it's not intrinsic to OSS at all. I find that usually the opposite is the case, and that maintainers leverage the technical controls they have over projects (basically PR's and RFC's) to "anchor" all decisions through them, while still trying to scale the work by having other people do as much of the work as possible.

However, I would say that potentially the even the reverse of what the author is saying is true in same cases.

> design over small, self-assembling groups who individually tackle parts of an overall task

From my perspective in a lot of privately run companies, the design and features that end up making it to production are actually a bunch of little compromises between special interests within a company, who are all vying for control and credit of the product. It's precisely because OSS is free and requires an extremely high degree of skill upon the maintainers that it's able to eschew these kinds of office politics and deliver what they think is the "best" for the software.

Obviously some projects are better than others, but I think there's a reason that OSS almost always tends to be of much higher quality than privately developed software. These "self-assembling" groups that organize along political boundaries of various product owners or managers is probably one thing that doesn't help get the best ideas to find immediate traction.

Am I wrong about this?


Only relevant sentence: "Salaries are a good motivation."

I feel sorry for the schlubs who have to write these corporate blogs.

Also, everyone here over 40 would prefer going back in time to closed-source. Yes, M$ would still reign supreme, but at least the buck you made was an honest quid pro quo, and not accessory to the surveillance economy.


> Also, everyone here over 40 would prefer going back in time to closed-source. Yes, M$ would still reign supreme, but at least the buck you made was an honest quid pro quo, and not accessory to the surveillance economy.

That's a very strong claim. MS sucked without FOSS competition, and is quite happy to drive the surveillance economy.


Classic ignoratio elenchi triggered by emotional response to M$.


Your claim was that

> at least the buck you made was an honest quid pro quo, and not accessory to the surveillance economy.

and I contend that MS would happily run the surveillance economy just as much while leaving everything else worse off. Not ignoratio elenchi at all.


It's the 1990s during the New York Yankees heyday. Performance enhancing drugs now enable lesser teams to end their dynasty.

My point was that I was a happier baseball fan before the steroid era, even if that meant the hated Yankees would remain dominant. That the Yankees would also have cheated if they'd caught on fast enough is irrelevant.


I'm 42 and would rather not go back to closed source.


Perhaps this is irony that's too subtle for me. But I’m way over 40 and the open source movement made everything that I enjoy about computing possible.


Working for money certainly beats working for free.


Quoting from the blog post.

But Wolfram’s vision for computation is much more profound—to unify and automate computation across computational fields, application areas, user types, interfaces and deployments.

The problem with Wolfram Tech is the above objective can be done by doing one thing and is improving developer ergonomics.

I would say that the Wolfram Language would need a complete overhaul. When I was using it was basically combining Lisp (but using the original M-expression syntax), Symbolic computation and an approach to including every possible mathematical field.

These problems are just since Mathematica is so old it didn't need to or even the concepts of what it achieved it is one of the biggest issues. So, if the Wolfram language just made a bunch of non breaking changes and copy Javascript like syntax then it might actually be useful but right now I don't see it achieving anything like that at all.


Heaven forbid more researchers and people fluent in tek took the time to learn to code better rather than moan they can't input maths symbols into the keyboard...

I'd love to see basic computing taught alongside algebra but apparently "thats too difficult"...


I think the question needs to be a bit more well formed for the answer written.

Does he mean "why doesn't Wolfram opensource all its stuff", or "why not opensource and also take contributions from a community", or "why is it that Wolfram is finding itself in a situation where there is no viable opensource competitor", or something else?

I believe there are some Google opensource projects where the source is open (and even a libre license), but it's still presented as-is, with no real way for anyone outside Google to contribute.

There are other projects where there's a clear corporate owner, but outside patches are accepted.

It's not that I disagree with this post, but it's very unclear what this person means by "open source".

So in the most scathing of all critiques, I would summarize this post as "not even wrong".


Claim number 9 might be right for the specific listed cases but it certainly isn't true for all domains. In the browser world, open source has clearly produced better results (chrome, firefox, webkit) than the closed source alternatives (IE before chromuim Edge).

Also, this post is an insult to big projects such as Blender, which have been a terrain for innovation and experimentation for years. Blender is also is an example of long term effort and unified design.

In the software library world, open source clearly wins in terms of market adoption and innovation. If the author has a car, it probably runs linux, sqlite, and many other open source components.

In AI research, the common set of tools used by the community is open source (Tensorflow, Python, etc.)

In conclusion, interesting perspective, but it does not match mine at all.


(2019)

Interesting compared to this recent take: https://blog.wolfram.com/2021/11/30/six-reasons-why-the-wolf...


The only reason not to open source is monetization monopoly. Wolfram could as well be open source and still not be like all those 10 excuses they pose as arguments against open source. They just want to keep their code hidden, and not be re-applied elsewhere.


I really think Wolfram missed a huge opportunity in mid 2000’s. They basically had the best interactive programming experience by far. Mathematica should/could have been an essential tool for all data scientists. I still prefer Mathematica interface over Jupyter.


How is software growth like a plant? What are the nutrients (revenue/volunteers)? The positive feedback loop (commits). The negative feedback loop (deprecations)?

Prusinkiewicz & Lindenmayer modeled the growth of plants[1]. Each has a shape, which evolved to exploit a certain terrain. Mathematica exploits one terrain. Sun Microsystems exploited another terrain with Java.

I wonder if it possible to map these terrains across all the Github projects?

[1] http://algorithmicbotany.org/papers/abop/abop.pdf


"Free by side effect"

This is an important thing idealists need to realize. If someone contributes their time to code for free then something else must be paying for that time. Think about it, if a software engineer contributes 100% his time to open source and gets ZERO income in return... well he's eventually going to starve to death. It's unsustainable...

At Some point in this equation the software engineer must be coding for money and mostly nobody pays money for open source code. So whatever this software engineer is coding for money... likely it's closed source.


Wow, I'm supprised at all the false reasons, that are based on incorrect assumptions. For example, "bad design is expensive", the assumption is that Open Source has bad design. The assumption also is that Closed source is therefore good design. How can you know that a piece of software you can't see the source to has a better design than one you CAN see the source to? Just wow. edit: to add to the expensive note: paying for a license yearly for eternity is supposidly cheaper than free?


Most points are actually about community driven software more than open source. Not all of open source is community driven. Opening the source is just that, making the source code available, you don't have to accept pull requests or let anyone else decide what to do. Qt for instance is not community driven, and because it is dual-licensed, it can't be.

The other arguments are more acceptable: we want to make money and we think opening the source goes in the way. I don't like it but I understand.


It seems like Facebook doesn't have problem with releasing open source project [0] while keeping centralised control over it.

Why not just say they want to monetize it?

Arguably even pure, single monetizing argument can be challanged as their adoption would increase tenfold, if not more and there are tons of ways to monetize popular technology.

[0] https://github.com/facebook/flow


The clear example counter to his argument would be https://www.blender.org/


Releasing an open source doesn't mean you have to accept contributions. You don't have to be an open source project.

And as an open source project it is fair to say you don't want a contribution because, you can't foresee future implications, and you don't think the problem it addresses is something you have time to form an opinion on.


seriously on point 9? "Open source doesn’t bring major tech innovation to market"

I don't know where to begin with this alone let alone the rest of the diatripe.

Closed works for them, their product and their vision, but keep it in scope of what works for you or doesn't, not attack an alternative model because you feel superior...


Multiple comments here talking about releasing the source code, as if it's just throwing it over the wall. Open-sourcing software successfully is a commitment to engage with the community on design and implementation over time. Otherwise at best it will be forked and then then lead by another group.


According to this list, shouldn't Windows Mobile have been the fiercest competitor of iOS and not Android?


all of these points can be just countered by pointing to sqlite.they have a drastically different community philosophy that shows that there is no such thing as THE oss development model. A language without an open source core is hard to take seriously unless maybe it is just part of a proprietary software suite (max/msp,labview etc.) that makes little sense to use without, but i guess this is exactly where wolfram stands. As far as i heard the performance characteristics of wolfram would be not very well suited to general purpose programming or web services anyways. though i am always jealous when there is a new demo from stephen. most demos would not be possible without that super tight integration of the language and the notebook.


Unreal Engine 4 (idk about 5) is not open source, but getting access to the Github repo only takes a few minutes. It is an elegant way of letting people fork some code while making it clear it is a proprietary solution.


Who are Wolfram’s customers? I recall back in 1993 a girl I knew did an internship at Black and Veatch and she enjoyed it, but is B&V really the target market? If so, I don’t see how “math” is the major draw.


Lots of universities and similar research/educational institutes have site licenses.


There's been a slow but noticeable march of open-source things replacing closed-source things over time.

[Open source] software will eat the world, and all that


at this point the ecological niche of open source computation / algorithmic stacks is so well occupied that even if wolfram were to open source their code (as an attempt to remain relevant?), it is unlikely it would change much in the landscape?


Just use (A)GPL. Blender, OBS, and VLC use GPL and stay high quality open source software.


That's all bullshit. React is open source and still own the design and all the development roadmap. I honestly think wolfram is an amazing technology but until it embraces the open-source community it'll stay a language that most company will never want to use.


Wow, this guy like to take a lot of credit for open source work and design - ignoring that so few people have ever even tried Thier bad software. Pathetic.


10 and 11 are really the only reasons.


Why should they need to explain that?


TLDR: some types of software needs more than programming.

omitted TLDR: some of the above can only be done by paying people money to do them. Company needs income for that.

omitted exibit: why haven't Gimp thrown Photoshop, Pixelmater and others from the throne. If programmers were the only people needed, then all those commercial image editors would be gone from the market. (but a unix shell only needs programming by a single person, so there are no commercial successful unix shells)


Blender is a counter example. They prioritized UX and are now eating into commercial use cases.


I love blender. Ironically, I remember when blender was a commercial project and they agreed to open source it if they reached a certain amount of donations.

The quality of it might be because some real company was using the project to do daily work (even before the ui overhaul).


They’re also being subsidized by billion dollar organizations.


> so there are no commercial successful unix shells

The most successful commercial unix shells are graphical shells shipped with operating systems. Most users consider the visual function of these shells to be the actual operating system. I.e. "MacOS now has scrollbars in preferences!"

MacOS, iOS, Android all are good examples.

To build a shell of commercial value you end up having to do a little more that a command line shell does.

BTW, the biggest part of Adobe's value prop is AdobeStock templates, fonts, stock art and stock video. This makes it really easy to start a project and get to done quickly.

It would be interesting to see some of the third party marketplaces like Envato, Issuu and CreativeMarket plugins for open source products... And non-Adobe products, too (Affinity, love the products! Badly need a way to quickly get a few hundred templates in there... Corel, your ecosystem is a dumpster fire)


Blender has thrown other software out the window.


Not very convincing, I'd say.


#13 - Customer support


Needs (2019)


(sorry for the cheap meme, but..)

linux enters the chat


What a jackhole!

A study in basically why open source works and is always better - than crappy corporations that would write a blog like this.

1. "A coherent vision requires centralized design" - BULLSHIT! you can do open source with a centralized or whatever kind of governance you want.

2. "High-level languages need more design than low-level languages" - INSULTING BULLSHIT! maybe true, but who said open source can't handle the "more" design required? I can't think of a single open source design with, say 30 million lines of code, that is "designed" ok.

3. "You need multidisciplinary teams to unify disparate fields" - BULLSHIT! so, open source is never ever multidisiplinary? from disparate fields? This is EXACTLY why it should be open! How do you even presume to do this by excluding all the diverse stakeholders?

4. "Hard cases and boring stuff need to get done too" - BULLSHIT! the only thing harder than getting some dedicated guy working for free doing the hard boring stuff, is to get your management to allocate schedule and budget for it.

5. "Crowd-sourced decisions can be bad for you" - INSULTING BULLSHIT! so unilateral corporate decisions are never bad? And open source necessarily means crowd-sourced governance? And even if the decisions are sometimes bad, couldn't they also more often be good?

6. "Our developers work for you, not just themselves" - TOTAL BULLSHIT! they 100% work for YOU not me. I'd love to help. For free! but I can't because a) I don't work for you and b) if I did, you wouldn't let me do what I want.

7. "Unified computation requires unified design" - INSULTING BULLSHIT! so.. open source can never create a unified design? You could literally change nothing in your governance structure, publish your source, and it'd be exactly as unified (whatever that means) as it already is. But by magic, open sourceness means that the contributors are incapable of creating a unified vision?

8. "Unified representation requires unified design" - BULLSHIT LAZY COPY OF PREVIOUS ARGUMENT!

9. "Open source doesn’t bring major tech innovation to market" - BULLSHIT! WHAT! inovation has always been linked to coloboration and sharing. You can't inovate in an echo chamber. Yes, right, you go on paying your developers to inovate on a fixed schedule and budget...

10. "Paid software offers an open quid pro quo" - LYING BULLSHIT! like because the open-ness of open software is so sneaky that even when it tells you exactly what you get, you can't be sure. And definitely corporate license agreements bring 100% clarity and performance guarantees.

11. "It takes steady income to sustain long-term R&D" - Yes!!! and that is why companies should exist. Open source does not mean that wolfram won't sell licenses and make money $$$. In fact, the author has already assured us that wolfram developers are the best, the most unified, hard-boring-working, coherent, inovative people to be found. So regardless of the sourcing, they'd be dominant in the market, right? So what's the problem?

12. "Bad design is expensive" - INSULTING BULLSHIT! Soooo... open source == bad design and you == good design? ya... And designs hidden behind a closed source wall are never, ever bad, right?


“given enough eyeballs, all exploits are shallow.”

- Raymond Eric


Java is open source yet maintained centrally. I think the fact that tens of thousands of security patches were deployed this past week attests to the success of Java.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: