Before Sun Microsystems got very into GPLing their entire estate, Scott McNealy had a phrase that free software was “free as in puppies” in that you might get them for free but you’re paying every day after. Our author here doubles down on free as in puppies.
This is absolutely my experience. For example, you'd think that the message passing space is completely owned by FOSS at this point. But, a while back, I worked at a shop that used a commercial library for building APIs, and I was genuinely impressed at how nice it was to work with. It would be difficult or impossible to do a proper analysis on this point, but I wouldn't be at all surprised if that package paid for itself many times over in annual labor cost savings.
It's more like free as in a car. Puppies don't generally provide significant utility as such, even though dogs are adorable, have great intangible benefits, etc.
A car requires maintenance, upkeep, fuel, insurance, certification (a license), registration, and other things. But a free car has a lot of value assuming it works. Even then, some people can't afford even a free car.
I'm sorry to say this but you are uninformed. Dogs have immense utility! These days yes they are generally house pets but they greatly improve mental health and love you unconditionally.
Dogs are also used as ratters, herders, and as protection for livestock from predators like foxes or lions (depending on where you live...). So much so, some working dogs can go for 50k in Australia!
Dogs require upkeep in the form of food, water, vaccinations, training and toileting.
As such the description "free as in puppies" is apt.
For the purposes of communicating with larger audiences, I'm assuming the general experience with dogs, which is typically as a house pet. You're correct that a free working dog is a different scenario, but qualifying the idiom loses something. I don't see "free as in puppies suitable for work you can make practical use of" catching on.
Yeah but if you pay for puppies you also have to pay for puppies forever after that? So isn't that the same thing, except you saved a bit at the start?
The problem with the analogy is that with paid software you are also in the same position of paying to feed the puppies but you also paid up front for the puppies and signed a contract to buy the food from the seller.
There are an infinite number of projects on the Internet. There are an infinite number of open source projects on the Net. No developer owes anyone else anything that they have not promised. So: this developer does not want to see bug reports or support requests from anyone who has not paid him. That's fine.
Open source means that you have options. The options include paying the developer, starting your own support community with other users, paying some other developer to work on it, starting your own fork... and complaining on the Net. Any or all of those are available to everyone, all the time.
Thanks for putting your software out on the Net with an open source license. It makes the whole world a little better.
"This is… you get to keep booth pieces" was the actual license text of something I ported to linux late in 1992 or early in 1993. (The middle bit was something about free software, I think.) Can't remember what software that was though.
I'll have a bit of a contrarian opinion here: if you publish some software there is at least an implied notion that it allows to solve some problem (license terms notwithstanding). For example if you go to the home page for this blog then you will find a rather well made page that might get you the impression that you can find here some piece of software that allows to download APKs. Now, if it actually does not quite work because of bugs that you refuse to even list somewhere because that would be "work", then you take the responsibility to mislead people and make them lose their time based on incomplete information. Yes your time is important, but other people's too. When you unleash something upon the world, then you have some responsibility for it, at least morally. For context I do have some minor open source projects that very few people use and I allow bug reports but I just ignore them until I have the time and motivation to get back to it in an hypothetical future. In the meantime it serves as information for others.
Thousands of companies release open source stuff in the hope of selling support for it. It's a commercial bait, a perfectly fine strategy. The author does nothing more, why should we expect anything more ?
The headline is obviously true; nobody should expect unlimited free support from any free software maintainer. But the author goes a step further, and refuses to even look at or read a bug report, unless they’re paid to do so. This is certainly their prerogative, but it is a bit more extreme than what is the current norm. They also do not want to provide a user forum for users to help each other, which is also the author’s prerogative, but it works against the author’s putative goal of being bothered less about problems with the software.
Being this far from the normal software maintainer behavior is of course permitted, but common courtesy demands that these deviations be clearly specified to users. There should be a “I DO NOT ACCEPT, READ OR LOOK AT ANY BUG REPORTS UNLESS YOU PAY ME” warning label on the project page.
It literally says it there, in big capital letters in the Apache used on the Racoon software:
> software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Or the very common MIT license:
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED
Is that not enough? Developers providing support is a nice touch on top of what the license says, and I'd argue that even if it's normalized it should not be assumed, and we should do a better job to make sure that users of open source software know that any support provided is indeed an extra, super nice plus, not something to expect/demand.
As someone that ran a fairly intense open-source infrastructure for a decade (before it was taken off my hands, and is now a community effort), I can say that I don't mind bug reports, and I may choose to fix them, but being a whiny little snot gets you nothing from me.
Also -and this is my fave-, people reporting "features I want" as bugs; followed by increasingly shrill demands that I "fix" their "bug."
As an aside this is a huge area that non-programmers can support a project - learn enough to filter bug reports help free up developer time for other things.
One problem that I see is that conventionally developers will at least look over reports, so this goes against cultural norms. If you don’t know you need to pay, you might expect some initial feedback. Personally, I wouldn’t, as I think most projects absolutely suck at providing support.
I also have to wonder how badly this affects his sales funnel? Seems like a good way to make potential clients look for another project or developer to work with. This kind of attitude would be an instant turn off for me.
Warranty is something other than support. And regardless of what the license text says, this is not usual behavior, and users deserve adequate notice of it.
It seems to me that the only way we can do a better job is by encouraging developers who choose not to offer support to make that explicit. Establishing a norm among the small set of people who read abstract discussions on open source principles isn't going to accomplish much.
I thought the phrase "COMES WITH ABSOLUTELY NO WARRANTY" in most open-source licenses would make it clear. But obviously no one reads licenses or EULAs.
However, I would let people file issues and would just let them sit there if they are not a paying for it. This way at least the known issues are documented and there would be less duplication.
Letting people fix their own problems is a good strategy. However, if you are encouraging people to send PRs, then there is a maintenance problem. Especially if some eager people decide to add major feature or refactor the code.
In fact, open source means free support, in the sense that independent and libre support can form around such a product. This may not be free of charge, if that is what is meant.
> open source means free support, in the sense that independent and libre support can form around such a product.
"Means" and "can" are incompatible. Either free software may mean free support, or independent and libre support always forms around free software projects.
It happens, but outside of the really big projects, it usually seems like there's one or two people doing all the maintenance. The more technical the project (e.g. algorithms, image codecs) the worse the problem is.
I was fortunate enough once that a big company used an algo I wrote and contributed a performance improvement in an area I'd had writers block on, but that was the exception.
You're presenting a false dichotomy. There are plenty of open source products that also have paid support options. That's becoming quite the norm in fact.
But even still, I've had to use plenty of paid/closed source proprietary solutions that sucked up a ton of our time. At one point the company was paying more than $10,000 per month for IBM Rational Clear Case and it was a hunk of shit that routinely lost source code. We had to hire a small team just to "administer" it (aka try to help us work around bugs and become experts in the CLI options and recovery logs so they could help others).
There are "open source" options that are half baked and buggy, but there are plenty more that are great polished products. The goodness of software is often not dependent on source availability.
Any software you adopt has a risk of requiring work/effort to use. At least with open source you have options.
I strongly advocate for open source in the company. I only consider proprietary when there isn't a suitable open source option.
Companies that go under don't take their products down with them though, that's a common misunderstanding. If there are paying customers, someone will buy the company's assets and support contracts.
That's far from guaranteed. + it might easily be a competitor that's now going to migrate everyone on their solution that "of course does everything $oldProduct did... on paper... on days with a full moon... if you pay us to develop it..."
"Free for noncommercial use" is a legitimate point of view and you can license your software that way if you want, but other projects chose "free to do whatever you want" and that's just as legitimate.
There is Ployform Project[1] that provides licenses that include free for noncommercial use. I'm currently having a custom license created so I can release my project for free for non-commercial and commercial orgs with under than $50,000 a year revenue. I want to only charge companies that can afford to pay and help people get off the ground.
50 000 of revenue sounds way too low to me. In many countries your average sole-proprietor makes more than that. That is anyone seriously full time should have more revenue...
50,000 revenue just means you can easily afford paying me some money. Also, it all depends on what country you're in and what model you're in. Bootstrappers for example, 60k is a major milestone - 5K MRR. It's not that they're making lots of money, it's that they're making enough to pay me.
A bit of context, my software is what I call a product framework, it provides the user system, payment system, admin system, etc that can be used for SaaS by Bootstrappers. Others may say it's a SaaS bootstrap, but I feel like it's more than that.
The ability for you or another company to fork and continue a product can be sold to other businesses. Even some closed source companies do this through source code escrow; if the company goes bankrupt, customers get the source code. For proprietary software, this involves a significant fee, of course, but when a product is essential for business continuity, such a system can be considered crucial. Products like SaaS company back offices are given the escrow treatment, for example.
Are you claiming companies cannot use open source software unless they contribute? If so, that's preposterous. If the author of the product has released it under a license that doesn't make that stipulation, then where does this strange constraint come from?
Don't moralize. If you want something, put it in the license.
I had similar experience in past. I submitted a bug report in a small library, the author/owner just rudely talked about that I should not expect him to work for free, and closed the bug. I would have been happy if it was tagged as non priority bug and did not get resolved in near future, but the already existing open bug report accepts the validity of bug and is an invitation for any willingful contributor.
I believe submitting a bugreport itself is a contribution. I know it does not mean that the developer is liable for fixing it or improving it, but if it's a valid bug at least they should politely refuse to fix or even just ignore it and let it be open.
The author responded to a similar argument in a follow-up post:
> Your bug doesn’t bother me (or my paying users). If it did, I’d have fixed it myself. When submitting a bug report, you are not working for me, you are working for yourself and the user community. The same way I was, when making the original software available free of charge (whether or not you want to do it is entirely your choice, I’m not asking you to). Does your bug report include a patch? If yes, then the problem’s solved for you, if not, then you are expecting me to come up with a fix. That’s a work order, here’s my bill.
------
I'm personally in the middle; if the bug is posted on an open bug tracker, it can be a good way to coordinate the community to find workarounds and get a patch started. Also triaging a bug is work, so it could be considered helpful to say "I've tracked the cause down to this module/function/line" even without a patch.
OTOH, a Github issues is also a great gathering place for entitled jerks. and many an issue thread has become the HN/Reddit/4Chan punching bag of the day and now the project maintainer is expected to both write a patch for free and moderate / lock and clean up an impromptu internet complaining situation, so IDK. Open source is a mess sometimes.
Yes, I agree sometimes Open Source is a mess. I also accept that I always use Open Source projects and rarely contribute. But I do file bug when I feel it is appropriate. If ever I see a person struggling with something(on reddit,forums,hn or even quora) and asking genuine/silly question, I will help them up to my knowledge, it can be small tweaking, small steps by step instruction, introducing them to how it works(you may call it mini on-boarding checklist) or even an implementation suggestion of feature if the person is a developer. I do consider it a community contribution.
Accepting/Ignoring a valid bug is just not too much of task, rather it is more work to file the reply as what you got. Just accept/ignore the bug report and forget, don't be rude.
I can understand not promising to fix bugs (in fact, I'd say that's the default), but not wanting to even find out about them seems very strange. It must be someone who doesn't like their own software.
Kills me how obvious this should be. It's free as in "library." You may go to the library and learn all you want. Check out them books and do all the projects in them. That's it.
I'd really like the ability to lock down issues and pull requests to only trusted collaborators to avoid support requests and all the low information bug reports, complaints and showerthoughts about features that would take 1,000s of hours to fulfill.
I'm completely in support of what they're saying (and wish more open source devs adopted it).
However, the tone of the article somehow went gradually from "straightforward and honest" to "actually toxic" towards the end, and left me somewhat disinclined to choose any of this author's products.
He has no obligation to do anything about bugs, but open source projects whose developers listen to bug reports is so common that if he doesn't, he should explicitly say "I don't take bug reports" in a reasonably obvious place, out of common courtesy. Failing to do so is the equivalent of having a deliberately misleading user interface.
This attitude is why I don’t share much software anymore, even if I spent a lot of time developing it and someone else might find it useful. All it takes is someone claiming I’m being “deliberately misleading” (even though the license explicitly says “this software is provided as is without warranty of any kind, express or implied”) and for that someone to hire a lawyer. At that point I’ve lost. It doesn’t matter that the claim is baseless.
This only saddens me a bit because there are so many people out there sharing software that nowadays my meager contributions won’t be missed. However I do wonder how much truly useful software does not get shared due to these liability concerns. A corporation has to weigh the goodwill they get from sharing software versus the potential ire of angry self-entitled people who think they are entitled to free support and extra disclaimers beyond those in the license. Why bother?
When I embarked on my 3rd party application for Elite: Dangerous, I made the decision very early on, not to open source it, even though I use Python libraries etc. which are. It also uses PySide under the LGPL.
The reason I did that was because I did not want the extra overhead which comes with "running a software project".
I do, however, run a Discord "server" which serves as both a news channel and a bug reporting and support channel. However, that has actually helped control the amount of demands I receive and by now users are aware that "I wrote Captain's Log for myself. It's useful to me and I package it for others to download and use too if they want to." - and that's the basis on which I release that application.
I'll also take note of suggestions on the "#wishlist" channel and if I agree that a particular "wish" is something I'd like to see in the application then it may eventually get added.
All the above, including the time I spend on looking at the Discord stuff, I provide on my time. I receive very little donations and only on a once in a blue moon basis.
All I said is that, since most projects accept bug reports, if you don't, you should say "this project doesn't accept bug reports" rather than complaining that people have expectations that after all, are correct for the vast majority of projects. Is that really so hard?
I went to his download page. It doesn't say "we don't take bug reports".
If he only wants to prevent bug reports from people who read his blog, saying it in the blog may be useful. But he probably wants to prevent bug reports from everyone who downloads it, in which case common sense says to put it on the downloads page.
>The software license also states that there is no warranty implied etc. etc.
The vast majority of open source projects have this in their license and they still take bug reports.
The point is that his project is different from the default way in which most open source projects behave. People are inherently going to assume his project is typical, because most projects are typical. The fact that people do this doesn't mean they're clueless; it means that he isn't communicating well. He shouldn't expect other people to treat his project like an atypical one unless he says, front and center, that it's atypical.
The issue seems to be, these aren't true bug reports but support tickets pretending to be otherwise. The creator also mentions docs. If people try to save time (i.e., time is money) and don't read the docs but they want support. Well, there should be a fee for that. As we all know, ultimately, nothing is free.
Maybe the default, or at least a common mode, for open source should be user pays for support time.
This includes lodging a ticket at $50 or whatever (for time for triage) - and then developers can add a price to action a ticket if they choose. The developer could also refund the ticket fee if it's a truly valuable bug reports. Github UI should make this as frictionless as possible.
This would make it alright for users wanting support rather that adding bug reports, plus provide the much lamented missing income stream for open source. It would also have the effect of winnowing the incredible bulk of open source to emphasize truly useful projects, that people are willing to pay some dollars for.
Obviously there's issues, such as not all economic level countries could participate, and surely others. Yet it seems to be a solution for multiple of of the commonly expressed pain points around open source.
Unfortunately this sounds like a bug report. If you could read the post you would discover the maintainer has no interest in such information from non customers.
It would be fun if this could be fixed. Create a protocol for free support.
1) Developers should be presented with a refined list of support requests relevant to development in a format that they can act upon.
2) It should be made convenient for users to interact and discuss the software. If numbers are not sufficient to build a community the chat channel can be bundled with that of similar software.
3) The discussion should produce wiki format q&a, draft-bug reports and feature requests that may start out as copy past chat logs.
It seems by definition only developers should be working on the software? Financially motivated efforts have many useful occupations that don't work on the software but bring competitive advantage.
Imagine someone who designs cars. He could answer questions from those learning how to drive but it would be pretty uninteresting. He would have to do a lot of it until something related to design would come along.
Users driving the application can learn interesting things from the discussion about it and may enjoy selfless acts of helping others. We know how to do forums, wiki and IRC if the community is willing and big enough. Smaller projects sometimes have barely populated mostly silent IRC channels. It should, at least in theory, be possible to combine those categorically.
Developers can already set all of these up but doing the whole list and maintaining it takes a lot of effort and it is a waste of time if there are 3 and a half users.
There is plenty of low hanging fruit. If there are enough low effort participants someone will properly fill the bug if the issue is worthy.
It is also motivating to be able to see users when a developer doubts the value of his effort.
Excellent read. I agree 100%. I wish all Open Source projects operated this way. It would dramatically improve the number of Open Source developers who could make a living doing it, and massively reduce the burnouts and depressions.
The problem is, many open-source maintainers DO provide free support, so people come to expect it. Some even get confused and angry when they meet a maintainer who does not.
Bottom line: User beware --- you get what you pay for.
Pay now or pay later. If you can't support it yourself or hire/pay someone to support it, it's basically unsupported and probably should not be used for any critical function.
From a business perspective, it's sort of unintentional malware. It invades your systems and is just waiting for the right set of circumstances to bring them crashing down --- with the developer denying all responsibility.
If you can't write it or pay for it, and it's providing a critical function, you only have a business because someone gave their product away for free.
That was solely, completely brought on by the owner class.
When it was made a managerial decision to pay 20% more to a new non-experienced hire than your experienced developer, it makes 0 sense to not jump ship for your own 20% or more gain.
Or at my previous job, management hired a headhunting firm. Contacted our developers at our company for a job at the same company. Paid $30k more. You can imagine just how fast devs were triaging from there. They lost hundreds of person-years of experience with that. Still are, too.
Loyalty is punished. Why would anyone be loyal? I'm definitely in it for the money and benefits. The moment you screw me, I'm gone.
But I stayed at a company for 27 years, and never regretted it. This was because of the company, and what I got from the job (and also, what I didn't get).
What I don't like, however, is people treating me with scorn, because of my loyalty, and personal ethics.
I have lived a lifetime of the very highest Personal Integrity and Honor. It's not been easy, and I have definitely made many personal sacrifices, in order to stay true to my Principles. Anyone that has worked with me, is very much aware of my principles, and also my strong backbone. Being principled should, in no way, be mistaken for weakness, or lack of character.
Just because the management are a bunch of dishonorable bastards, is no excuse -whatsoever- for becoming one, ourselves.
In the end, employment is selling my time (which I cannot ever get back), for a pile of money. This pile of money, according to Marxian theory, is always less than the total value I bring. The owners keep the surplus, which is a massive amount above my pay.
I will maximize my pile of money. You speak of ethics - and I will not engage in jobs which I believe are unethical. But it too is unethical to grossly underpay the people in your employ. But in corporations, ethics are downgraded to the minimum law in the jurisdiction. As for me, I am not a slave to a job. I show up and do work because there was an agreed-upon value for that work. The money buys my loyalty in the allotted blocks of time. No more, no less. When that agreement is no longer good, I renegotiate or look elsewhere. I am in an at-will state. They too can provide 0 notice to change the terms as well.
Maybe in yesteryear, when long careers at a single company were common, that worked. I've heard the anecdotal Dickensian rags-to-riches stories of "Internal mail delivery guy becomes CEO". Those days, along with proper promotions, commensurate significant pay and benefit increases, and title are effectively gone. (I'm sure there's rare places that do that. Again, anecdotal and exceedingly rare.) My, my colleagues, and those around me MUST job-hop to get those raises and benefits. Not doing so is leaving massive piles of money to burn.
And ethically speaking, making sure I assist in keeping my family in a good financial condition is of utmost ethics. Here in the US, the "social net" is abject from decades of hatred, ignorance, and utter lack of funding. The only social net I can count on is the one I create. As a white guy, there is no net if I fall. And there is no depth I stop at if in free-fall. I know that well. I see the homeless I used to live with when I go in town. And I'm intimately aware how easy my job can go poof and end up destitute.
So yes, I see the landscape. I know the rules. And I will job-hop and will min-max my time and money. I create my own safety-net. I live significantly beneath my means to create a buffer. My loyalty is currently purchased in blocks of time 1/2 month long. Unethical behavior will be responded to by aggressively looking elsewhere for a different neofeudal lord in which I can sell them my blocks of time. There is nothing unethical in any of this.
This is the system I am subject to. And I'm better off than many. Would I change it to be more respectful to humans? Absolutely. But in the end, I'm only 1 voice in 350m. And I can only do the rational thing for me and my family.
You brought your ethics in the discussion. At a fair reading of that, was an implicit comparison of your ethics to others. Else, why would you bring it up?