For example 'Bad design is expensive' - how releasing your source lead to bad design? That's a complete non-sequitur.
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.
“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.
> 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.
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"
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.
>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.
> 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:
Only 2 is open source (but the no-commercial condition means this it is not), while only 1 is not open source.
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’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.
What? OSI disagrees with you.
"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.
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.
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 and the FSF 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.
 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.
 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.
> 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".
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
... 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"
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.
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.
OSS GUIs are exactly what you get if you leave it completely up to an army of pure programmers (whether well-paid or not).
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?
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.
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?
The four essential freedoms 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.
 gnu.org The Free Software Definition: The four essential freedoms.
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.
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.
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.
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.
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).
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.
> 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) ?
It the reason why, VSCode, for example, runs your editor locally even if it's running the compilers and stuff remotely.
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:
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 firstname.lastname@example.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...
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.
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.
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.
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.
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.
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.
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.
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.
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 :)
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.
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.
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.
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.
That's how some people define open source. Other people use it to mean being able to see the source.
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.
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.
Lol how is it 'official'? Who officiated it?
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.
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.
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?
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!
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.
“Open source” has older non-software uses, most notably in the intelligence context, where it picks up sharply in the 1980s:
I'm a suspicious, cynical person, so I think that's deliberate.
Conflation is a very useful rhetorical trick.
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.
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.
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 ultimately kept their declining hardware and operating systems afloat for longer than they would have been otherwise.
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.
The fact that Java remains at all today is a testament to the power of open sourcing something.
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.
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.
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:
> 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.)
 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.
I can't help but think of Linux when you say this, and Linux is strictly centrally controlled
But the opinion on that has changed I guess?
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.
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  for the proper definition)
Nonfree software = source code not released under such a license
> 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?
Then some people wants to add some romance around it but that is just their own opinion.
I wanted to correct your statement without getting into an argument. I view an attempt to differentiate as a type of reaction.
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
this is commonly referred to as "source available".
TL;DR - development model != license
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).
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.
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.
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.
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.
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.
Numeric age for D: Mir GLAS is faster than OpenBLAS and Eigen:
If a Matlab user don't need Simulink or one of it's numerous costly toolboxes, this user should give Julia a try.
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.
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?
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.
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.
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.
Still, it offers a very good set of features, and it's cleaner than some popular python libraries.
If that fails Mathematica can also just compile your script for you.
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.
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.
Because I don't think they are so stupid this wasn't a conscious decision on their part.
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.
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.
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.
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.
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 :-/
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.
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.
Right - and _that_ is what this post should say, not that it's not possible to have a centralized model of development.
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 :-/
Elasticsearch is still open source they just wanted to buck companies like Amazon from taking advantage of them, which is fine by me
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.
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 !
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?
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.
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.
The irony is that Blender USED to be a proprietary project, the community had to buy back the source code.
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.
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.
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.
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".
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.
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.
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."
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.
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.
(Plus, I think putting Stephen Wolfram at the top of a Linux kernel-type project is unlikely to work well at all.)
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!
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.
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.
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.
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.
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.
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).
That shouldn't matter if you're making a superior product.
I don't see it as a sound argument.
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.
Wolfram in that sense is just being honest about their motivations by having it be proprietary from the get-go.
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?
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.
That's a very strong claim. MS sucked without FOSS competition, and is quite happy to drive the surveillance economy.
> 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.
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.