I agree with your sentiment of "Unless that guy specifically says he's going to maintain it for free you are entitled to exactly absolutely nothing"
That works both ways though, a maintainer cannot expect users to not complain (so they have to develop management strategies where they ignore the noise, rather than try to engage/capitulate). A maintainer can also not lament when users do not feel the desire to contribute monetarily.
>so they have to develop management strategies where they ignore the noise
I believe this is called “please use the template when submitting an issue” and we all know how that goes.
I’ve honestly found myself laughing like a madman at GitHub issues where the maintainer calmly and repeatedly tries to explain to the increasingly disgruntled reporter to UTFT (use the fine template)
> That works both ways though, a maintainer cannot expect users to not complain (so they have to develop management strategies where they ignore the noise, rather than try to engage/capitulate). A maintainer can also not lament when users do not feel the desire to contribute monetarily.
The solution is quite simple really.
1) have your repo private and release only tarball files or have a read only repo with no pull/merge request functionnality
2) do not use an issue tracker
Basically, do not use a forge such as github/gitlab, at least not publicly. Problem solved.
This is right, but maintainers themselves often forget. They don't enforce this. Their little thing became very important and they became a rock star, so they carry the world on their shoulders. They respond to feature requests that are out of scope originally. They let any and every PR in. Maintainers often manage to do things with their project that turn them into bahemoths and support large industry and find themselves stuck.
More maintainers need to take the "no guarantee of fitness for purpose" part of their license more seriously. Don't fall for the temptation to be everything for everyone. Don't cave to social pressure.
> More maintainers need to take the "no guarantee of fitness for purpose" part of their license more seriously.
I get this, as a very bottom line. But a lot of great projects are great because the developers consciously want people to use and depend on their work.
Their is a living changing informal social bargain, unique to each project, along with licensing, economic and other concerns.
You’re in the majority. But look through any issue list of popular(ish) oss projects and there’s a small but very vocal minority just sucking up the maintainers’ energies like vampires.
Just look around forums and socials like Reddit. I see people bitching how OBS Studio doesn't work for them the exact way they want it while contributing nothing to the project almost daily.
This happens less where the FOSS choice is a drop in a sea of established proprietary packages (FreeCAD, KiCad, Godot) but way way more when they have already established themselves as the popular pick (OBS Studio, Blender) so they get flooded by less tech-savy, more casual users that don't really see the value of open source other than they don't pay for it.
"Normal" people have always had stuff given to them for "free" (either "you are the product" or built-in licenses like Windows) so they don't realize the goodwill and sacrifices that FOSS goes through.
One example I noticed recently is when YouTube stopped allowing ad-blockers. You should have seen the people posting on the uBlock subreddit demanding it being fixed, it was kind of crazy.
However, there are entire industries that leverage open-source / free software, and put unreasonable, uncompensated demands on it.
At the end of the day though, I don't see the problem. As a maintainer of open-source, gratis, software, just don't do the work. It isn't like it is a job. If you don't do the work, they can't fire you.
Is that good for the community? Surely not, but who is asking whether the status quo is working for the developers? Nobody but them. So look out for yourself, and scratch your own itch, but don't treat open source as a job.
People will spend $10 on a coffee drink at Starbucks without blinking. Suggest that they spend $10 on a piece of software and they’ll throw a fit and claim you are taking away their rights.
it gets complicated when the project is intentionally marketed, and users deliberately attracted. i think at that point it ceases being purely source available and burdens the creator/marketer with support duties. unfortunately at the moment, most open source projects are actively marketed, including fringe and poorly thought out products.
I don't actually think that's a problem with capitalism (though it has many problems).
I've always seen this as the markets reflecting what we collectively actually prioritize. Sure we want to be safe and educated, but damn it if we don't really get enjoyment out of fancy new toys, vacations, and new cloths.
In this case capitalism doesn't seem to be holding down salaries of the careers you listed. Its noteworthy that most of those industries are unionized, but if the unions are worth anything at all they should be pushing salaries higher than the market would have otherwise paid.
A maintainer position for a software project is like any position or role, in say, a charity. You aren’t technically forced to do the work, but the charity announces publicly (on its web site, for instance) that the work will be done, and people expect it to be done. If you do not feel up to doing it anymore, you owe it to other people (who expect the work to be done) to announce your retirement and hand the position over to new people.
Any project which is not a going concern should:
A: Not, IMHO, be called a ”project”
B: Be clearly labelled, in its public-facing information, as being offered as-is, without any implied updates or future development.
> B: Be clearly labelled, in its public-facing information, as being offered as-is, without any implied updates or future development.
So if I had a text file in the root of my repo that said:
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
This is ridiculous because there is no legal or moral obligation from the creator to say anything except maybe adding the license. You as a user can use the given software and probably modify yourself at will due to the permissive license which is the main advantage of OSS. When I get stuff from the charity I do not expect them to provide a return policy and customer service, your analogy is moronic because the thing was done already and you can come back and get a newer thing if it is ready.
The problem is that the barrier to use any software is so low that it attracts people who have no clue and demand support. I am not talking about you, even the larger companies always mention a wish to force smaller developers to patch security issues for free, this is an issue in supply chain security at the moment.
The feeling of entitlement people have around open source is unsustainable.
Do you have standards? It doesn't sound like you do.
People with healthy boundaries set standards for themselves as far as what they give to others and what treatment they accept in return.
I think the fallacy in your argument is that you're blaming contributors for noticing that they aren't being compensated for the work they've done, rather than blaming others for using that work without giving anything in return. I see your sentiment reflected in society in the way we treat low-wage workers with disdain for not doing more lucrative work. You're applying the principle of rugged individualism to a systems-level problem.
A healthier way to approach this would be to list a number of possible solutions and debate them in an open forum like this. When we find solutions but fail to adopt them, then that's a criticism of our agency. We are all failing ourselves by failing open source contributors. Then we can look beyond that to find the reasons why. Which are obvious because they are the same as with any other power imbalance. The fault lies with the wealthy and powerful people and corporations who profit from free and low-wage labor. The solution is to organize labor into a unified front so that exploitation can no longer happen.
Our failure to solve open source compensation is analogous to failing to stop suffering in developing nations which provide labor and resources for wealthy ones. Your argument places guilt and shame on workers instead of identifying exploitation by the wealthy, which might be better spent on something like an open source endowment or UBI more generally.
I dont think that is what the person you were replying to is saying.
> I think the fallacy in your argument is that you're blaming contributors for noticing that they aren't being compensated for the work they've done, rather than blaming others for using that work without giving anything in return.
Is anyone being forced to work on open source software? Unlike low wage jobs, where you could be forced in order to pay bills, eat, nobody is forcing anyone to work on open source ventures.
Just because you do something useful does not mean you are inherently entitled to compensation in the form you want.
If you are being forced to do something against your will that is bad. If it is some hobby you happen to like doing that is totally ok.
> The solution is to organize labor into a unified front so that exploitation can no longer happen.
Lol. What type of leverage do you think open source devs have to form a union? Open source in many ways is designed to remove all economic leverage from source code. Its not a bug its a feature.
> I think the fallacy in your argument is that you're blaming contributors for noticing that they aren't being compensated for the work they've done, rather than blaming others for using that work
That's the exact opposite of what they are doing. They are blaming the users for expecting more than they should. They should expect nothing more than literally just the current version of the code, as is.
The annoying part in this debate is people spending their lives on a project and demanding to be paid for it.
Don’t do it! Who’s asking you to work on it?
I say this as a minor OSS developer who receives some donations. I love the money, but it would be pretty dumb for me to say they oughta pay me, because the only reason I work on it is addiction/compulsion/procrastination of real work.
If it bothered me that people use it for free, then I could just stop working on it and let it rot, just like lodash’ maintainer did for a few years. You always have the option.
I keep reading from project leaders like ESLint’s things like “if only they paid $1 each…” as if that made any economic sense at all. If they paid $1 each, you would not hand thousands let alone millions of users.
> I keep reading from project leaders like ESLint’s things like “if only they paid $1 each…” as if that made any economic sense at all. If they paid $1 each, you would not hand thousands let alone millions of users.
From another angle, if I gave a dollar a month to every Free Software program or library I used that month, it would cost me thousands of dollars a month. Obviously that isn't realistic. I have donated to projects before but those products need to individually make the case to me that my donation is needed. Expecting users to donate to every project they use by default just isn't realistic. Most projects won't get donations from most people most of the time; that's just the way it is. Developers should be at peace with this before they decide to personally commit themself to a project.
I don't think anyone is expecting you to donate to literally every project you use. However, say your business is to build and sell a product done in JS. You already have a bunch of JS devs, whom you may have even bought those sweet MacBooks. Let's also say, you're invested in keeping the code quality high, which you boast about in your product web page. Why not donate a $100/month to the JSLint project which is part of your toolchain anyway and helps you achieve your goals? The annual cost is probably less then you'd spend on the toilet paper for the office. You get a maintained product, they get some money to support their efforts. It's clearly a win win.
Welcome to the pre-2000's, when it was possible to actually make a living from selling software, without having to bundle it behind a SaaS paywall, hardware devices,...
> The annoying part in this debate is people spending their lives on a project and demanding to be paid for it.
> Don’t do it! Who’s asking you to work on it?
I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
The value we get from OSS compared to the monetary compensation for that work is disproportionately small.
OSS generally doesn't depend on an army of people paid to make you buy shit you don't need or want.
> I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
We do. You work for a company that needs software X, and you contribute patches and fixes to X from your paid time. Software X is essentially a collab between different companies then.
The Linux base (kernel, libc and compilers) basically works that way.
> I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
As is true for many (most?) crafts.
If I am an artist (e.g. painting, digital art, etc). and give my work away for free, my fellow artists are not going to sympathize with my inability to make a living.
Ditto photography ("look at all these companies taking my free stock photos and not giving me any money!") Ditto music. Ditto writing. Ditto anything that involves a significant amount of creativity.
Where is it written that being an OSS contributor should be a sustainable career? Just go write software for a company if that’s what you want to do. But why there’s an expectation that “open” source software should pay anyone is beyond me.
> I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
Why should it be? Most OSS authors get paid to work on their stuff by some company who wants it. If there's no one willing to hire you, then your software is not worth it. I don't mean this negatively. I have lots of open source projects that are not worth it. I have one that I've been hired to work on before, but am no longer working on it anymore
You can say that for a whole host of things people volunteer to do with their time. They still volunteer that time often knowing it comes with no compensation at all. There’s this idea of altruism and greater good that drives a lot of people beyond money.
This! Its always the same. When volunteers start to complain they aren't compensated for their work, things start to smell fishy. And this kind of behaviour seems to have increased lately. Rather sad. Either I do something for the love of it, or I am going for a paying job. Sometimes people are lucky and these two are the same, but that is very much the exception.
Sometimes it's that devs still like the project, but more often it's probably just the fame/exposure that they don't want to lose. If you have no compassion for a project and the demand is high, it's still your decision to invest your time for no money exchange. You can just ignore the demands, if you can accept that your project might eventually fold.
This is additionally supported by the point that only few maintainers will hand out commit rights to other devs. They rather complain about all the workload and demands than give up some of all of their control, so others with more passion or who are even paid can continue working on the project.
If you want to be paid for your code, then pick a license model that matches it, but it will mean that you won't rise to the top, as only a limited amount of people will use it.
> Either I do something for the love of it, or I am going for a paying job. Sometimes people are lucky and these two are the same, but that is very much the exception.
Why should that be the exception? Why shouldn't people's passions, especially when they are widely useful to others, not be encouraged and turned into paying jobs? Everyone wins. The passionate can keep doing what they're passionate about without having to split their attention to a job to pay the bills, and in exchange everyone else gets better quality output.
I build stuff because I love it. But why should I publish it? If I publish it, why should I release it under a permissive license?
I think people get pissed off because they're working out of a spirit of generosity, and the users who they interact with most are definitely not.
Suppose my neighborhood regularly throws a block party, and everyone makes and shares some food, because they enjoy making and sharing food. Great! But suppose one neighbor grabs portions of everyone's freely shared dishes, packages them up, and begins selling your freely-shared food as plate lunches to others, and pocketing the proceeds. They come back and ask that you use more spice, and by the way, do you have any napkins and plastic cutlery? Is the right response here "well, if you don't love making and sharing food for the love of it, you should stop?" Or is it reasonable to want to share with people who are willing to engage in the same spirit of mutual benefit?
I build stuff and keep my projects to myself. I would happily share with other people who are building hobby projects for the love of it. I would happily let almost any non-profit use my work for free (perhaps excluding some political or aggressively religious organizations). I have zero desire to gift anything to anyone's for-profit company. But for some reason, there's a strong stigma against sharing source code but not allowing a total free-for-all of what it's published for. "That's not open source," I'm told. So I don't publish at all, but that has nothing to do with not loving what I build.
Meanwhile, a hobbyist makes music, and publishes some recordings with a CC non-commercial license, people get it. No one says, "oh if you object to companies using your recording as background in their ads, it must be because you don't love making music."
> I keep reading from project leaders like ESLint’s things like “if only they paid $1 each…” as if that made any economic sense at all. If they paid $1 each, you would not [have] thousands let alone millions of users.
The dirty secret of the GitHub era of open source is that many developers and open source codebases would be better off if such a thing happened.
A lot of stuff associated with the development processes that are fashionable with GitHub and programmer Twitter provide net negative value (e.g. issue close bots) or neutral value at best (because they solve a problem that really exists but not at the scale that most downstream projects that opt in are actually at). If it suddenly became necessary or even just strongly encouraged for programmers to pay a dollar a month for things that are only as pervasive as they are because they are free and give the false sense of productivity, then we'd see a huge dropoff in the adoption and use of lots of things that are of dubious value to begin with.
It goes both ways. Crowd blame the maintainer if they change the license for the future updates. So it makes sense to blame the crowd if they want the updates for free.
But I agree with you. Open source projects shouldn't have any obligation to listen to the people if they change the license. Even if they intentionally bait and switch, the users should only expect the current version to be open source and shouldn't expect free updates for life.
Yes, if it's open source then users don't have any right to expect that it'll be maintained by someone, but if a project deliberately uses the bait and switch trick to get people to start using the project when it's open source in the hope of trapping them, then that's clearly manipulative and ruins trust in other open source projects.
I think the general pattern is that someone releases something for free, then people start using it, and start depending on it, and then start opening PRs and issues, and then the person who did it for free in their spare time is expected to respond to those issues, etc. Now other people are making money from your work, but demanding that you work on it for free.
Mostly this is the point where people start thinking about how to monetize it -- and they should! Your time is valuable, you should get paid for it. If you don't figure out how to get in the middle of the cash flows that are happening _because of your work_, someone else will do it.
The book shareware heroes discusses this at length through the various solutions shareware developers came up with on how to monetize software written and given out for free.
As long as it's some hobby thing where you don't make any promises. If people start expecting stuff, they should start paying for it.
I suppose projects can get so big that developers literally don't have enough free time to fulfill people's expectations even if they wanted to do it. At that point they should get sponsored so that it become possible for them to devote more time to their projects. Sponsorships seem like a perfectly ethical way to make money to me. With enough sponsors people can afford to quit their jobs and work on their own thing full time. I've seen news of developers who did just that when they got enough support. I hope they're doing well.
Exactly. Open source has always meant exactly that and _only_ that. Support has always been (and should always be) on a best-effort basis. If you absolutely need the support, pay for it! If you can't or don't want to and need to fix it now, fork it!
(I maintained a small OSS project for a few years. I loved the folks that would get all mad when it didn't do x even though the code should theoretically be able to do it and "it's not that hard!". If only they submitted pull requests with their issues...)
All of the people who demand things from the maintainers are. Very few of them are willing to sponsor or pay consulting fees. If you give up they complain loudly, and then often pay a contractor to do the work they wanted.
If they paid $1 each, you would not hand thousands let alone millions of users.
You could though, if the mindset of open source software consumers were to shift to 'pay for things you get value from'. Even if it was $1000 and only companies that paid, the landscape would shift dramatically.
> You could though, if the mindset of open source software consumers were to shift to 'pay for things you get value from'
What if the mindset of producers were to shift? What if people only worked for free on things that they want to work on? Isn't that both more realistic and better for everyone?
>You could though, if the mindset of open source software consumers were to shift to 'pay for things you get value from'. Even if it was $1000 and only companies that paid, the landscape would shift dramatically.
Any solution to a problem that relies on humans becoming more ethical is not, in fact, a solution.
Knowing most large corps, they would rather pay a contractor $175/hr for two months than sign a $20/month license. Also, you usually cannot hire the open-source maintainer as the contractor, you have to use some company with insider relationships.
It isnt the engineering manager's fault at any large company. The policies make no sense, but there may be a larger wisdom that I do not understand.
If an individual were not the maintainer for a project, they would not be receiving demands from users of that project. The only reason they receive those demands is because they choose to be the maintainer. If they step down from that roll, all of the expectations go away.
If the reason you're doing something is for money, and you're not getting money, then stop doing it. It's that simple.
> All of the people who demand things from the maintainers are. Very few of them are willing to sponsor or pay consulting fees. If you give up they complain loudly, and then often pay a contractor to do the work they wanted.
Ignore them. I mean, it's not like they're paying you. Scratch your own itch instead.
I'm probably being dense, but I'm still not seeing a problem. I think if we dig, we'll find non-monetary incentives that open source authors are a bit shy about admitting to. Otherwise why hold on to the project at all? If you're not being paid, and you think you should be, and that's the only reason you're building the thing, just stop building it.
Open source isn't unsustainable. We've got decades of evidence of that.
I have never understood this "I have an open source project and it eats all of my time, and I must scream".
Just stop. It's a hobby. As in life in general, don't have hobbies you don't enjoy. That's weird. Give your project to someone else - if this is you, skip to the bottom for my advice on how to do this.
I maintain a couple popular open source libraries, and a ton of unpopular libraries. At least two of the popular ones are way more popular than this guy says his is. For the most part they maintain themselves via pull requests. A good test suite, static analyzer and code standards validator go a long way towards making this possible with far less intervention. If you don't have those, that is where you should put your time.
When someone does open an issue, you look at it for 2 seconds, make a judgment call. Either label it wontfix, or ask them directly if they think they can handle fixing it.
If they can't fix it, you again make a judgment call about if it's worth your time or if you want to slap "Help Wanted" on it. And that's it, go eat dinner with your family. That's all you needed to do. Takes 30 seconds.
Once in a blue moon there's a hotfix that demands immediate attention, but it should be rare if you're building good software. If it's not rare, I'm sorry, I have bad news. Every once in a while a platform change requires some refactoring, but even that will often get PR'd by someone in the community who enjoys living on the edge.
At the end of the day, if you don't enjoy it, don't do it. If the library is truly popular just hand the reigns off to someone else. Forcefully if need be.
And don't just post a vague "maintainers wanted" somewhere. No one will see it. Scan your contributions for quality PRs and actually reach out to those people who are clearly invested in your code enough to understand how it works.
One of the projects I maintain, the original author literally just threw maintainer rights at me after having opened a handful of quality PRs myself. Didn't even ask. It worked :shrug: but YMMV.
But why should they, if they can turn their hobby into a job -- there are many very valuable companies that have been built on top of open source projects.
I think donations is a bad way to handle it though. If you don't want to do the full SaaS model, another tried and true way is consulting and training.
One of the problems I found with this is that actually taking donations is hard work.
I live in a country completely unsuited to making money from a hobby project on the side. To take donations I'd need to register as self-employed, and pay monthly for social security as long as I'm registered, even if I make no revenue whatsoever in that month. That's an absolutely awful idea for a project just getting started. I'd be losing a very appreciable amount of money, regularly. It'd take lots of effort to have enough support that I'm back to zero, and still not making anything. This is because this is a system made for plumbers, not for people doing rare jobs on the side which might some day grow into something serious.
Apparently the government sort of looks the other way until you start making minimum wage, but that's not a bet I'm comfortable making.
But finally, we (https://overte.org/overte_ev.html) managed. It took us a long time and a lot of effort to get a non-profit registered, and it absolutely required the participation of multiple knowledgeable people. This couldn't have been done as a lone wolf effort.
And after that hurdle of course you have to somehow get people to notice you exist, and convince them to donate. This is unfortunately a tough job for people whose main passion is software development and who threw all their effort into that. Going out there and figuring out how to advertise yourself and how to ask for money is a whole new skill to learn, and a big time and effort investment.
I highly suspect that the reason why libcurl shows up here every week or so is because Steinberg spends about as much time marketing it as writing code and it's clearly working. That project appears to be quite successful in getting donations.
GitHub Sponsors directs individuals to Open Collective https://opencollective.com/ , which can serve as a "fiscal host." The advantage here is that the default rule at law for how a group of developers working together will be treated is partnership, which means joint and several liability. Working with a fiscal host partitions individual liability from group liability.
But there are still open questions. I don't know all the details of how Open Collective works from a corporate law perspective. How do they partition the liability of different collectives that are hosted by the same fiscal host? That is important to understand because otherwise, the collectives that share a fiscal host are partners. This is better than all of the individuals who contribute to each and all of the collectives being partners (because there's still a partition between individual and group liability), but worse than if each collective's liability was partitioned from the other collectives' liability (and the fiscal host itself's liability).
This seems like an active area for legal innovation. No jurisdiction I know of is optimizing to maximize speed and minimize cost of setting up corporations. Yet without the ability to shield the contributors of capital and labor from individual liability, there isn't much a group of individuals can do in our modern economy. The problems that many DAOs have had is a case study in this.
People who care about open source should also care about scaling up the speed and minimizing the cost of incorporating. Stripe Atlas and similar services are underrated sources of economic growth for this reason, IMHO.
> I live in a country completely unsuited to making money from a hobby project on the side. To take donations I'd need to register as self-employed, and pay monthly for social security as long as I'm registered, even if I make no revenue whatsoever in that month. That's an absolutely awful idea for a project just getting started. I'd be losing a very appreciable amount of money, regularly. It'd take lots of effort to have enough support that I'm back to zero, and still not making anything. This is because this is a system made for plumbers, not for people doing rare jobs on the side which might some day grow into something serious.
We need to keep in mind systems can be changed. You've set a very clear example that can be understood and communicated. Legislators should get to know this. Receiving donations for community work should be possible without hurdle (at least until it reaches a very high level) everywhere.
I call the idea that we spontaneously support what is right for all of us a Donation Economy. If most people are ethical, this would work well.
---
Furthermore, I think we should also fight, in the long term, for organizations (collectively supported) that provide this function (supporting community work). Like pollution is a negative externality, where the act of someone is (an unpriced) bad for everyone, contributing to OSS is a positive externality, where the work of someone is (again unpriced) good for everyone. I propose creating distributed institutions for identifying and pricing those externalities (positive and negative), evaluating and rewarding (or pricing) them accordingly. What is the metric for externalities? Collective meaning and wellbeing of everyone.[1]
There are foundations like NLNet[2] that do this for OSS. I think we should donate to them in the meantime.
not to mention some countries requirements around running a non-profit would mean you couldn't keep control of your own project if you did get it created as a non-profit or add others to the project without risking that they used the rules to take over ownership when it was advantageous to do so.
And what about when you want to spend that money? At some point you have to declare that income and be taxed and the government doesn't care if you were paid in euros, bitcoin or seashells.
> One of the problems I found with this is that actually taking donations is hard work.
As many problems as there are with GitHub (social lock-in, Copilot laundering Open Source license violations), GitHub Sponsors is incredibly valuable and substantially reduces the friction for getting support for an Open Source project.
I don't think he is speaking about the ability to get donations. Rather about the tax consequences. It doesn't matter to governments how you got money, you have to declare it, even if it is GitHub Sponsors.
He did not say which country, but my guess would be Germany. You have to declare every penny here.
As far as I can tell, the problem lies not with the payment processing, but rather with the bureaucracy around receiving money in OP's country of residence.
Unfortunately, a system can be individually unsustainable while being globally sustainable.
That is, maintainer burnout rate can be high, but a continuous influx of new maintainers could compensate.
In fact, a lot of industries work like that, and numerous examples regularly appear on HN. Video game companies are notoriously full of super bright young developers, which are squeezed until burnout, just to be replaced by a new ones.
As for the compensation bit, although I agree with the principle, I tend to disagree that it would solve the problem as a whole. Sure, some maintainers would be more willing to spend time on their OSS projects if they were paid, some might even quit their job and work full time on their OSS. But my personal experience is that money is but a short term replacement for passion. Once you reach the point where you're not willingly working on a project, additional money can give you a boost of motivation, but ultimately you will tend to procrastinate to work on it, until you just won't be able to force yourself to touch it.
It shows that the sustainability is not intended for humans, but for the entity they serve. When we talk about things being "sustainable" it's sustainable for the business, not for the people working in it.
It's easy to forget, due to the vast wealth of genuinely great volunteer-driven projects out there, that an overwhelming share of open source contributions are actually funded by capital. It's hard to imagine the Linux kernel, or llvm, or even projects like React ever fizzling out due to maintainer burnout or disinterest.
This is fascinating, in my opinion, because our systems of accounting and economical analysis are by design terrible at keeping track of externalities. They are not good at analyzing the potentially holistic value of mutualist projects. Largely speaking whatever cannot fit on a balance sheet becomes the province of philosophy and culture.
Despite all that, in the modern culture of tech companies, the value of FLOSS seems to be understood and the companies that recognize it genuinely seem to out-compete those that don't. They recognize the value it creates for them, even if it's very difficult to estimate the costs that are avoided by using a FLOSS system that would otherwise need to be licensed or built. Even if the completely optional act of using one's own resources to contribute to open source software does not easily map to an equivalent or greater return in accounts receivable or company valuation.
What I mean by this is that the sustainability of "open source" broadly speaking is already demonstrated and I don't see that changing any time soon. What's not demonstrated however is the sustainability of OP's project. I think this is a challenge that they and their users should tackle without implicating the entirety of open source software as a culture, or attempting to impose any responsibilities upon users of open source software that don't already exist.
IMO a huge problem is that extremely permissive licenses have totally devalued software development as the software you release gives everyone the opportunity to infinitely exploit it. What did people think was going to happen?
I find it especially funny when people complain "that they can't use the software 'at work'" when you release something as GPL.
Completely agree. The only licenses that make any sort of sense are AGPLv3 and proprietary all rights reserved. Permissive can easily end up being just free labor for trillion dollar corporations.
> the software you release gives everyone the opportunity to infinitely exploit it
How is that exploitation if you write some software for yourself, think it's useful for others, release it and then someone else uses it? If the software wasn't released, then others may have the same need and thus similar software may be written multiple times in a huge waste of time and effort.
To my mind, open source software is returning to the basics of human society - helping each other where we can. If you only ever do things with the intention of getting paid to do them, then you live a sad life.
Ok I make a really nice server and give it away for free. Some guy making 300k a year uses it to build something else and gets a promotion so now he makes 400k a year and his company is now making millions. They've exploited my freely available software to acheive this goal. Sure they could have invested to build it again (perhaps by paying me to build it? or by licensing my software from me?) but instead they get this at the cost of 0 and the result that they make is under no obligation to be free. This is a problem because when you assume that it's free you whole business model is based around exploiting the free to build the proprietary. This is the business model of almost every software company in operation and why the OS authors are broke and the software is devalued. A lot of the times if you're working at one of these companies that operate under this business model you are even discouraged from writing anything serious yourself or to do "overengineering". That's because the overengineering is being done by unpaid open source contributors.
> To my mind, open source software is returning to the basics of human society - helping each other where we can. If you only ever do things with the intention of getting paid to do them, then you live a sad life.
This honestly is horseshit because we wouldn't have this conversation if the profit of off open source was being distributed in any way fairly (or to put it patronisingly: used to help the contributors). By releasing your software under a license that permits this type of exploatation you are putting yourself in a precarious position of being at the mercy of whoever exploits it for commercial gain.
So as I am not misunderstood, I am not against open source in general or say GPL, but against using licenses like MIT/BSD by default.
I'm going to go out on a limb here and say it's perfectly ok to charge folks for software and if you're OSS project isn't motivating you like it used to, it's perfectly ok to charge users for support/updates/bugfixes.
Yes, the main reason why people don't do this is because they aren't psychologically ready to find out that the thing which cost them a lot of effort has very little monetary value.
A lot of people think open source is about not paying for software, even some open source devs think this.
You are allowed to sell your software even if its GPL'd or whatever. You are not obligated to give the source away for free, you can charge people for the source and for binaries, you just have to provide the source when someone does buy it. I would like to see more people try this out.
The most common counterargument here is that someone can pay for your source code, and then upload it to github, or even sell it themselves, allowing people to circumvent paying (you) for it. This is true, but most software needs to be maintained in order to be useful, and you are not obligated to provide the updates to people who haven't paid you, and I think you could charge for access to the updates, even for people who have purchased your software before.
You can also use trademarks, anyone who would attempt to resell it would not be able to use your "marks", which could be the project name or logo for example.
Maybe there are reasons nobody is doing this, maybe its not viable, but I haven't seen any cases where someone has at least tried this.
I agree with the sentiment. But if anyone has ever contributed now you're in a bad place because you are making money off their work which they probably didn't consent to.
This is psychological problem you cannot solve by technological means. As a wee lad I actually made some pocket money from a GPL-licensed software I maintained. That part was surprisingly easy, the skill is highly valued. But I avoided making it a career, it all felt so overwhelming (how to balance fun, demands from customers and contributions???), inappropriate("you must not be doing money from GPL!!!!11"), weird (even harder to explain what I'm doing than typical IT job) and lonely.
The article doesn't make any argument why the current situation is unsustainable - it does point out some problems, but as far as we can see, there's no reason why current situation, with all its drawbacks and limitations, couldn't go on for ever, i.e. be sustainably sustained.
Some contributors will quit, but that doesn't imply that the system is unsustainable, as long as some more people will temporarily make some contributions, and we're not seeing an imminent collapse where people will stop scratching their itches and publishing the resulting code as open source.
Your web site said “[CLAPPING HANDS SIGN] 3 claps”. Since I didn’t know what that meant, I clicked on it. It changed to say “[CLAPPING HANDS SIGN] 4 claps”. Now I feel like the person in that old joke about someone standing by a well or a cliff, repeating a number out loud.
There are many reasons for doing OSS. Perhaps the company you work for pays you to (the author mentions the many contributors to K8s at Red Hat et al). Perhaps you are building your resume, a student learning to program and interested in feedback, or you’ve built something for yourself and generously sharing with others, giving back to the community from which you in turn are getting valuable software. Or maybe it’s a passion project. Unless you are paid to, perhaps not even then, nothing obligates you to maintain the project, to offer free support. Consider a crude analogy: you are passionate about music, you practice, then start playing in the park (with or without your guitar case open accepting contributions). You’re good, people gather to listen to you. Perhaps a record producer will stop by and offer you a big contract. Unlikely. If you find you tire of playing in the park, it is taking away time from your job and your family, you are not obligated to continue playing…no matter how much your fans love your playing. And an essay “The Lack of Compensation in Busking is unsustainable” would be unlikely to gain you much sympathy.
The last time I checked the statistics, approximately 75% of the industry's codebase was open source—a significant portion! However, when it comes to the earnings of open-source developers, it's almost negligible.
I strongly believe that open-source contributors should be compensated for their work. So, in my opinion, there's a real need to establish an open-source economy where contributors can be fairly compensated for their work without compromising open-source principles.
I'm currently working on finding a compensation solution for OSS contributors. If you're interested in learning more, please don't hesitate to get in touch with me (see my profile).
To be fair a huge portion of the open source code being used by industry comes from industry.
Don't get me wrong though I love me a good open source project. I think the idea of being compensated might increase the quality, but let's point fingers at github. It would be as simple as adding a "support contributors" button on repos.
I don't know how divide the winnings fairly. But it should be possible.
The sustainable route for open source projects is individuals being paid by an company to implement functionality that the employer wants in a given project, and then being obligated under the license to share those changes. Those individuals could be employees of the company, or contractors, including the person who wrote the software in the first place.
I think in the minds of many, software patents are the means of getting people to disclose their source. But they currently don't work that way anywhere.
(edit: actually IIRC it's fine to sometimes promote what you're doing on HN, so long as it's not Every Single Post) . Can you tell us a bit more?
Open Source Projects should take inspiration from how companies pay people. There are some very good ideas in how companies distribute revenues and compensate individuals. We just need to take the best parts of this approach and blend them with our open-source principles, and we will have the best of both worlds.
The problem is that you ask for money on OSS. Companies use OSS because it is free. If you try to force them to contribute or pay money, there will always be someone who has more passion than you to do it for free. At this point, just pass on your OSS project that is highly demanded but you have no passion for.
The main benefit of using open source in a corporate environment is that there is usually zero paperwork involved. As long as the licence is approved, have at it! As soon as you pay money for something, either a fee or a donation, you've got to email someone. Almost certainly someone outside your team.
Companies don't make decisions on individual OSS dependencies. Individual engineers and engineering teams do. That's if anyone actually spares a thought at all (eek)!
This does not matter in the slightest; your only obligations to other entities are self-imposed. Using a developer's piece of code does not confer an additional right to that developer's time.
> The bad parts are that there’s a dozen issues that I haven’t even reviewed much less triaged, investigated, and fixed
If those 3/4 million downloaders really found it that useful, aren't there code contributions?
> time = passion + money
I didn't _start_ writing code because of money, and I'd still be writing code on my own even if I weren't being paid to do it. I know this because I code on my own without being paid to do it, only work on things that are interesting to me, and I don't have a problem dropping a project if I'm no longer interested in it.
> Those companies in that list are contributing to the success of those projects
Go work for one of those companies then? Seems like a win-win.
I wonder if the promise of a couple hundred bucks would really be all that motivating at 11:43 pm, with your new baby sleeping nearby, after a full day working at your software engineering job?
You have a new son and a partner that need a lot of you right now. Those PRs and bug reports can wait. The time you have all to yourself right now is extraordinarily rare. Use it for you.
That said, I do agree with the premise of the post.
Probably a majority. There are some that have no kids, but birth rates are around 2 in the US, and 1.5 in europe. Some people have multiple kids, so we can't do math, but on average everyone has a kid anyway.
You can use MIT/BSD/Apache/GPL3 dependencies without issue; never need to worry about derivative works or anything like that, just set it and forget it, and because corporations avoid you like the plague you can code away without a care in the world for backwards compatibility.
The BSD/MIT license is free as in free tech support, always has been.
“It’s too hard for dev teams to fund open source”: yes, it is; but we’re not going to fix that by giving them the code for free. If businesses really want something, they’ll pay. What’s missing are better ways for commercial entities-and dev teams therein- to monetarily support devs when they need to use a licence for commercial purposes because clearly the current parasitic economic model isn’t working.
I don't know if this is the author's first child, but I'm going to assume for now that it is.
As a similar sort of person, now on my second child, with the first now 4yo, my advice is this;
Focus on yourself and your family. Get that rest, when the baby is sleeping, get some sleep, it gets harder before it gets easier.
Presumably paternity has finished now, and your partner (again I'm going to make an assumption) may be able to do much of the heavy lifted on maternity, but that'll end; at that point you'll both be working, you'll both have a massive sleep deficit, and in all likelihood (in my experience) you'll have a ~1yo who doesn't sleep through the night yet.
There were times where it got really difficult for me, and the passion projects became a source of depression because family life just didn't allow them to happen. Different people work differently, but for me, it took a while for me to realise that my priorities have changed, looking after and enjoying my life and my family became passion projects of a significantly higher priority than anything I build in software or hardware. The time will come (I assume, too early yet) when my children can take part in those with me.
The projects people are using to keep their companies running, on the back of your work, without paying for it, fuck them, let them be someone else's problem for a while.
IMO Posts like this always basically boil down to "Hey, I did follow every best practice and did everything as I was told and yet it's not working out like how it was promised"
This is because the core premise is simply wrong. Sites such as opensource.guide are not written for you. They're written for people profiting from you thinking they're written for you.
If you follow their guidance, you'll end up unhappy and writing posts like that.
The only way to escape this is to ignore that con and instead pick a sustainable business model. That can mean not open-sourcing at all, but I'd wager that most of the time, it just means saying no, setting boundaries and knowing your worth + the value you provide.
Tyler the Creator famously tweeted "Hahahahahahahaha How The F* Is Cyber Bullying Real Hahahaha ** Just Walk Away From The Screen Like ** Close Your Eyes Haha."
Seems like a ridiculous statement (and definitely doesn't address the real issue of cyberbullying)...
_but_ when it comes to open-source, that's my exact attitude. Notifications off, users opening issues and pull requests? May as well not exist. I'll occasionally check but that's it.
The easiest answer is that deep down you need to accept that you can only be "tortured" by the incessant, needy, unfair demands of your users if you choose to. If you can't handle it, disable it, archive your project, walk away.
I understand this is a jaded take, but it's not wrong.
Open source entered a bubble because companies started requiring active open source contributions to staff+ engineering requirements. The model was never sustainable. A select few contribute to open source out of sheer passion, but the majority are/were using it as a career advancement mechanism or network effect.
The result is that major companies were able to advance their technology and profits rapidly off of people's free work. The result is better products, services, and tooling for everyone, but let's not kid ourselves about who benefits most from open source: large companies.
This is what I dislike about OSI. It feels like their mission is specifically to provide free labor to megacorps. The FSF has (IMO) goals that have a more tangible benefit to society, and while megacorps can and do use free software without contributing anything, that feels like more of a side effect than the primary goal of the movement.
If you know that someone is going to take your code and make money off of it anyways (which is almost guaranteed whether you pick an FSF or OSI license), then you might as well make it so that society can benefit from this too. GPL/AGPL do this, MIT/BSD/etc do not.
And as an aside, I feel like it should be easier to profit from open source if you pick a license like AGPL. Companies that want to use it can pay you (the sole rights holder) for a commercial friendly license, while everyone else can use the free license. This is the same model for Qt/KDE.
You don't even need to sell support, and could probably even throw up a self service checkout page for commercial licenses. Thats minimal effort for maximizing profit lol.
Maybe I'm naive but I get the feeling open source is more about convincing the megacorps that they can get better, cheaper and higher quality software without vendor lock-in by cooperating with the other megacorps. Not so much as convincing volunteers that doing open source in their time off is some great idea or that they can make a living off it.
> who benefits most from open source: large companies.
Maybe in absolute terms but because of FOSS software I have been made free from the shackles of the windows ecosystem and liberated from the prison of Apple lock in to be free forever in the fields of the Linux and that alone has been invaluable to me.
This is essentially realizing that free markets don't pay proportionally to value created, but according to the marginal value created by paying more.
Compensation according to value created is fair. It's a goal we should strive for, but it requires either not going through free markets, or it requires empowering market participants to generate fairer outcomes.
This is pure fantasy, for many reasons: But if there was a union of OSS developers that would negotiate corporate open source users contribution to open source, and that would have the power to withhold license rights, compensation would probably be fairer overall.
Essentially a code collective rather than decentral anything goes open source ala GPL. I wonder if that would be attractive to some open source developers?
I think there sometimes is a strong aversion to get organized. "I just want to code!". But the idea that we can do without actively organizing society is naive, and if the outcomes don't suite us it's because those that actively organize (e.g. corporations) hold the power to shape the world in their interests.
If you want be compensated for your project, license your project appropriately and sell licenses/corporate support. Nobody's going to throw money at you out of the goodness of their heart, that's not how the world works.
If you burn yourself out on serving your entitled users for free, that's on you, not on them. You've created that sense of entitlement. You're an adult capable of saying "no" or "pay me."
easy to say - hard to do. corporates have the money to sustain an accounting department, random devs from developing countries don't. And nobody cares about them
this single-point-of-view analysis fails to account for market dynamics over time, adoption of innovation, commodity markets, disruptive inventions.. and many, many other things that someone with experience and real critical thinking skills would discover quickly with any research on the topic.
> Open source software developers should have compensation that follows this:
money = contributions * usage
This seems wrong. Typically opensource that gets compensation is for support. That's active ongoing work. Past contributions or usage thereof isn't material. That's the beauty of opensource, it keeps on giving to the original work, and derived works.
yeah, seems like the author came up with this formular to cope with the fact that others are making way more money off his software because they found a way to utilize their oss software to make profit. Author should do the same or not ask for money.
I'm a junior so please take this with a pinch of salt, but yeah this is what I intend to do when I do open source too.
Once I've finished scratching my itch, I will only spend T hours per week on the project:
T = patron_weekly_income / 20
Where:
1 <= T <= 40
Where the min of 1 hour is intended to "get the project off the ground", and the max is for work life balance (any additional income is then either profits, or to be reinvested in other contributors).
I develop some open source software that I created. It's not very popular, maybe few use cases currently + my services hosted by me. But I still have an userbase and that userbase demands features from me. I tell them that the source code is open, you are free to create pull requests for me to review, but 95% of these people are no developers so they cannot do that. So now I have users who I care about, but who also demand me to develop the systems further. I don't know, I have mixed feelings about this situation, but in the end I drove myself in this dead-end, so it's my fault.
Charge a consulting fee to implement those new features? If a single user cannot afford it, then start a crowd funding campaign. If the crowd funding campaign fails, then say there wasn't enough interest. Let your users vote with their wallet.
Many open-source developers just want to code and get paid. But do they pay open-source developers to do the same? Or do they pay companies to sell them a product or service? In that case, they should build a product or service, not a tool or a library.
I have written and maintained dozens of open-source project [1], but I have only managed to make one sustainable open-source project [2]. It's also the only project for which I did all the things necessary to build a business (documentation, payment, invoicing, marketing, content, support, design, product management, tax fillings, legal, finance, etc).
I encourage everyone to open-source their code. But if you want to make a living out of it, you must also be an entrepreneur.
I think one of the side effects of Open Source has been the devaluation of source code. Many decades ago, Microsoft destroyed the IBM PC by licensing their source code to other hardware manufacturers. Not only did that destroyed the power of IBM hardware, but it also allowed smaller hardware players like Dell to enter the hardware market and defeat hardware giants like IBM.
Move on to the present day and software is no longer the king it once was, only because the major players like Microsoft, Google, IBM, Amazon etc now all tend to use the same Open Source software.
However, they now run that common code on proprietary hardware systems meaning we have come full circle where hardware is once again the king of the castle, and the real money is the hardware and not the software.
And the real problem is, unlike earlier times when a small players like Dell could take on massive players like IBM, these days with hardware once again king, it now requires high levels of capital to compete.
> Quick, name all the dependencies of Kubernetes. You can’t, and I can’t either. There’s just too many. It shouldn’t be only end user facing products that get appropriate compensation. It should be these products that send a portion of their contributions (money and developer time) down to these dependencies in a big happy tree of contributions.
- Used in 18k other repositories and 317 packages.
=> People use it.
But!
- 365 open issues
- 25 pull request
that hang for years
Only one sponsor.
And this is fine. People use the result of our work, but we do not feel that we are entitled / deserve / [some other vomit words] of more support.
In the beginning, we decided that we would do it:
- only for fan
- when and how we want it
- if some user is unhappy with our commitment or decisions
=> feel free to fork.
But!
We do enjoy when people thank us, create pull requests (we do review and merge them, although it could take time), or create feature requests or bug reports.
I can see open source as a great pet project that you do for fun and to improve your skills, but unless it is an OpenCore business or another setup where maintainers are financially compensated, all whiners and complainers can go and fuck themselves.
I would not recommend maintainers of the open source software even notice them.
If working on OSS is not fun - do not do it. Life is too short for unnecessary stress.
I think an open source compensation system could work similar to how artists are payed when their song is played on the radio.
Radio stations in Sweden pay a fee to an organisation which distributes the money to artists in proportion to the amount of playtime.
Imagine a new type of open source license that mandated paying a membership fee to a global foundation to use the code commercially. Non-commersial use would still be free.
Companies would have to pay royalty to this organisation in proportion to their size or some other metric. The organisation would distribute the money to projects according to some usage criteria such a download count or similar.
For it to work there would have to be one or very few such organizations to that it is easy for the companies to handle. It should also not be very expensive for the companies. But even if it gets every company to contribute just a few thousands to open source it would still inject a lot more money into the system.
Such a system has been proposed for copyrighted works in general. The general idea is that you change copyright law so that making copies does not require permission of the copyright holder, but you also put a tax on something that correlates somewhat with copying. The government would then distribute that tax money to copyright owners in some manner dependent on how much their work was copied.
Even Stallman has suggested such a system [1], with the amount a given copyright owner gets for a work being proportional to the cube root of how much it is copied.
A common suggestion for the tax is a tax on internet access.
For entertainment such as movies and music and games that could probably work well. Probably also for closed source software. For open source software it might be too difficult to figure out how to allocate the money.
Yes I think it needs to be centralized and aggregated.
I am sure many companies realize that they gain value from open source. Thus they are willing to pay something. However they do not want to handle transactions with every transitive dependency they use. Just like a radio station doesnt want a contract with every artist. This is why isolated commersial licenses wouldnt work for anything but the very largest projecys.
I would not care so much about the definition of open source.
My ideal scenario is that code is open, can be improved and reused among commercial and non-commercial endeavors. I also would like that some of the value created by users of the open code flows back to the creators.
Individual commercial licenses do not create this ideal as they are monolithic and does not reflect that open source is a network of many dependencies.
Companies would be willing to pay for open source but they do not want to manage each node in their dependency graph individually. Thus the need for some centralized tax and redistribution system.
I don't agree with this formulation of the problem nor the proposed solution space. The cost/price angle might be useful to solve other problems though.
Publishing opensource to a package repository should have higher hurdles than picking a LICENSE file and pushing code to Github. Java/Maven repos typically have higher quality because to get code there, you have to have a domain, register it and get through the packaging requirements/bureaucracy. The use of packages from Github with merely a repo/git-hash is a bad trend. On the other side, if everything had a visible price/cost, then we might not end up with simple functions being overused and compromise a library ecosystem.
There we go again. It seems only yesterday we had the same thread.
I choose an unusual hobby, that other people seems to find useful. Hence people should give me money.
I don't get it, I really don't.
If you enjoy working for free, by all means continue doing it. If you don't then stop. Nobody is forcing you. If you think your time and effort is worth more then you get now, go closed source, paid-support or whatever and see how much value you really bring to the market.
(I'm taking a -4 karma hit for this post, I know. I got it last time, do your worst)
For what little it's worth, I fully agree with you. This _should_ be so blindingly obvious that I have yet to wrap my head around how one could think differently.
Maybe it's a clout thing? That some people really want to make a living _selling_ software, but at the same time do not want to miss out on the cachet of "I'm doing open source"?
Whatever the reason, there is some amount of cognitive dissonance involved.
I’m curious if it makes sense to have a distinction between source code existing for the purpose of discovery versus software for fitness of purpose.
In other words this is similar to the Cathedral and the Bazaar as OSS used as a tool by users compared to the Bazaar where the focus is on displaying the source code.
Much of my interest in contributing to OSS is more about offering examples and ideas via source code and not if the utility of the software fits specific users’ purposes.
Why don't you pass over the maintainer role to some of the users of the project?
Or share the maintainer role with some other users. Just select one, two, or three people who seem to be responsible and give them all the necessary write access.
Or maybe configure the repo in a way that all PRs need at least two (or so) reviewers from a selected group of reviewers.
Then this would greatly reduce the effort on your side, and development should continue on its own.
The issue isn't lack of compensation necessarily, it's lack of societal support.
Here in America I cannot work on OSS because if I tried to make that my main form of contribution, I would not survive due to healthcare costs, living costs etc. Companies being made to pay more or subsidize OSS I believe would have a detrimental effect on the system, because then it warps OSS to serve the desires of big companies in order for its contributors to survive.
The actual solution to this problem would be things like socialized healthcare detached from work. This isn't to say I think companies shouldn't pay for OSS (they absolutely should be funding and contributing to work that underpins their software) but rather that we need to reduce the reliance on corporate funding for people to be full time contributors.
Most complex, unique, value producing things have a path to monetization for the builder of the thing. If the money isn’t there for the builder they are either not leveraging their relationship to the thing correctly, or the thing does not have the value the builder may think it has.
> Most complex, unique, value producing things have a path to monetization for the builder of the thing.
I don't think this is true. You need an extra condition 'that few people want to produce'.
There is lots of good free art. Why? Because lots of people want to be artists and make art. There is tons of good free writing. Why? Because lots of people want to write. There is masses of good free music. Why? Because many, many people enjoy making music.
There aren't people who collect garbage, clean toilets, dig holes in the ground, or work in oil refineries for free. But there are people publishing science, doing research, writing philosophy, producing erotic material, designing things, putting on theatre, producing textbooks and teaching people things, making clothes, thinking of jokes, answering questions, providing peer support to addicts, playing music, making games, making animations, all without monetary compensation. This is because the people doing these things want to do them.
This isn't a failure of our economic system. It's a great thing - it makes the products better, the producers happier (provided they have the economic freedom to spend time on these projects) and the consumers better off.
First of all, it's obvious that in the vast majority of cases, writing free software falls into the 'amateur art' category not the 'dirty, boring and necessary job' category. Many, many people enjoy the time spent on writing and maintaining software, are motivated to solve their and other people's problems, and take pride in doing so well. You might expect that only games, intellectual toys or fanciful projects would motivate people to work on them in their free time. The reality is that software projects which could be seen as dry and boring to non-technical people (OS kernel design, file transfer protocols, laptop power management support, database and webserver stability, document rendering) attract many very talented people to work on them.
Secondly, if we think that there's some deep inequality or instability in our society because (for example) critical Internet infrastructure depends on hobbyists and volunteers, doesn't it make more sense to try and improve the conditions for hobbyists and volunteers, and make it possible for there to be more of them? The alternative put forward seems to be to turn them into more of the people who both don't enjoy the time spent on what they do, nor produce the best product that they can.
The existence of the path to monetization is entirely outside their control though. Millions of people make viral videos, very few have benefited from it. The financial system disincentivizes or outright bans open-product monetization.
My sense of entitlement related to open source is honestly more specific and, in my mind, not related to specific compensation, but definitely related to the cost of utilizing and maintaining software. I feel entitled to a discipline of semantic versioning in open source ecosystems -- a consciousness where open source developers understand how flippant changes within software libraries can have ripple-effect maintenance costs. I feel entitled to software with appropriately pinned dependencies such that upstream changes will not divert software consumers resources to otherwise needless fixes. I often deride ecosystems where these values are often not shared (Javascript, Python, Ruby), and laud those that adhere more often (Java, Clojure).
I have published a project to interact with house alarm systems manufactured by a local company [1]. It is a hobby project, I have it for my own use, don't expect it becomes a money printing machine.
Yet, since many users request features well outside my use cases, and I have only one sample of the many alarm models that use the same protocol, I thought I'd be successful in getting some help from the manufacturer, from lent hardware (at pessimist side) to some small monetary contribution (optimist side). I got no response at all...
People are also fast to point things that are "wrong" but don't want to submit a PR at all.
I get the feeling that FLOSS holds the niche that software patents were supposed to hold. To wit, it publicly discloses methods of the art to a practitioner in such a way that (s)he can fully implement it.
Software patents don't actually do this to a sufficient granularity (at least imao) , but get paid for; while floss does this to sufficient granularity that a compiler actually can implement it.
Basically we seem to have a collection of loose bits that variously ensures we have a public foundation for software development, and other loose bits that ensure people get paid for disclosing things.
The thing we don't have is one single cohesive system where people get paid to disclose the state of the art as a public foundation for software development.
I really don't get it. People build open source projects because it gives them unlimited freedom to build what they want. Open source was never about money. If you care about that there's far easier ways to get paid (and disclaimer: they're usually boring AF.)
You don't have to try turn every project into a business... There's also a pretty big catch-22 here in that most of these projects are only widely useful precisely because they are free. With that came the users, the plugins, bug fixes, and features. Take that away and many projects will have never became popular and then you'll have solved the issue of not being paid for your work (because no users will exist to buy your software.)
0. Don't give away something and expect tips, donations, or anything else because it will only lead to resentment. If you voluntarily give something away, you basically lose all control of how it's used in the real world. If someone intends to make money from code, then OSS is probably the wrong approach.
The challenges from the user side are:
1. Donate time, money, and effort based on utility and necessity to support what's vital.
2. Be a proactive self-starter whenever possible rather than depend on others for support.
3. Some maintainers and communities turn out to have an un{cool,professional} culture of hostility, uncooperativeness, or unhelpfulness. Don't waste time with that.
The feeling of entitlement of some developers is sometimes baffling. They have a position of authority in a project, and got that authority based on their demonstrated trustworthiness and ability to deliver useful software. Now they don’t feel like doing that anymore, but instead of resigning their position in the project like a responsible person, they want to use their earned trust to be paid for software development. Congratulations, you’ve come up with a business model. It might work, or it might fail. But it has nothing to with the software project. Open Source is not a business model. It is a development process.
Side note: donations are kind of difficult in a cooperate environment. Once I request that the department donates a modest amount to an OS project. We had to call it a 'license fee' internally. Paying it fine - donating is not :)
You, along with the original author, are selectively framing the issue. The original author's words:
> This all boils down to a situation where you have many profit-generating companies using software that some programmer volunteered to write. That software contributes to that company making even more money. But the developer sees none
Which developer? Because what I see going on matches what Stringer actually says earlier in the post: "There are lots of users, many in a corporate sense using my software to further progress their organization."
So you have at least two persons here; there is no "the" developer.
First, you have a company trying to make money. And then you have a developer trying to get money from their company (and not just that, but getting it, and generally trying to get more). Let's call this a type-1 developer. On top of that, you have a developer upstream writing the software in question that "contributes to that company making even more money". Let's call this a type-2 developer.
What we're neglecting to acknowledge here, and what most conversations like these fail to acknowledge , is that it's not merely "the company" that is benefiting from the work of the upstream developer. It's the type-1 developer, too.
If type-1 developers are effective at converting the labor from type-2 developers into personal enrichment, internal accolades from their employer, general career trajectory, &c, then type-1 developers really ought to acknowledge their culpability in the system that leaves type-2 developers undercompensated. This doesn't really happen, though. Most developers with a type-1 role wrt some money-earning scheme (i.e. the ones employed at a company) seem to treat their TCP, which is on average includes a salary alone that is well above the combined income of a typical household, as a sacrosanct natural right that should not be examined at this level.
I don't agree with the author on how financial compensation should be structured or where does it have to come from.
My idea about what's currently in open-source domain is that it can be split into two categories: infrastructure projects that enable users to use their computers at the basic level, enable networking communication and maintain state-provided services land in "category A", while "category B" can be roughly described as interesting hobbies, leisure, entertainment etc.
What needs to happen, in my mind is that we need (international) organizations like eg. WHO to take care of the "category A" projects, where governments would have to allocate resources to finance and oversee these projects. Much in the same way how governments spend money on postal service or regulate / oversee banking. So, projects like Linux or OpenStack need to be under such international umbrella. This would require a bureaucratic process of examining such projects, estimating their usefulness, budgeting them etc.
On the other hand, non-essential projects, or projects that explicitly don't want government oversight / intervention could still work on the currently employed scheme: donations, sponsorship, volunteering.
In other words, I believe that some people working on open-source projects today ought to be paid. We just need a framework which establishes how much and how many such people can be employed for how long etc. It's prudent to make them (international) government employees to avoid playing into interests of sponsors who might not act in the interest of anyone but themselves.
For me, this would also solve a situation whereas employees of private companies are told / paid to work with open-source technology, but are powerless against the maintainers of such technology, while having no plausible alternatives. A lot of such projects succeed based solely on the good will of the open-source maintainers, but some fail due to the lack of, or deliver lower quality products. Having essential services covered by a government entity, and, by extension, being open to citizen complaints and wishes would make it possible to fight back against maintainers lacking the said good will.
The EU has an elaborate system of VAT taxation. It is an accounting nightmare, but it is fair tax: every part of the chain is paying according to their value-add. Whole of the EU has it. If EU wasn't so anachronistic, the accounting for it could be completely automated.
But nobody ever thought to make a similar system to pay people for the value they add to the chain. On the internet it's possible, and many blockchain systems promise something similar. But big tech wants all the profits, from everyone's creations, all for itself. And governments are silently guilty standing in the background
> nobody ever thought to make a similar system to pay people for the value they add to the chain
of course, you are joking! look in the USENET news archives.. from the early 1990s.. you will see many proposals like "micropayments" .. later, even standards proposed. Also see the importance of "ad free Internet" and how certain govt-company groups try to add their own "ID" to people and machines.
I think there should be some serious changes about this. Github already knows which software packages a company uses. They could facilitate this. For example if the OSS maintainer asks for it, any company more than say three members should pay a monthly fee per package. Even 1 USD per package per month would make a huge difference for OSS. So if your javascript package.json has 20 dependencies, and you are actively developing, every month you should expect to pay 20USDfor that package.json.
I know the math above can be challenged from multiple aspects. But we need to start from somewhere.
Then suddenly a company paying more will feel like their demands are worth more than random Joey’s demands, and soon the backlog of the project is the company’s backlog and the maintainer will be treated as an employee with nonsensical deadlines and fixed long hours.
> 1 USD per package per month would make a huge difference for OSS. So if your javascript package.json has 20 dependencies, and you are actively developing, every month you should expect to pay 20USD
The proliferation of tiny NPM packages is bad enough already. It will only be made worse by the cobra effect.
It's not just open source, it's open everything. You either work for bigTech or you work for free. Entire generations of people have been conditioned to create content for free and behemoths monetize it. It feels like a 21st century Marx hasn't been born yet
Maybe someone should build ecosystem with payments for this type of work. You pay for package and it comes with warranty, guarantees, fit for purpose and so on.
It notices the upstream dependencies and bills you accordingly.
This is consistent with our findings in the OneBusAway project, an open source real time transit app that is hugely popular in Seattle, and used across the world, including in San Diego, Washington DC, Boston, Tampa, and New York.
"My choice of license allows you to hire a contractor and fix or change the code in the way you seem fit for your purposes".
There's user entitlement, but there's also lack of dev entitlement toward the license terms they themselves chose.
This should be a template response in GitHub issues by default:
> Remember that this project is:
> * PROVIDED “AS IS”
> * FREE OF CHARGE
> * WITHOUT WARRANTY OF ANY KIND
> * WITHOUT PROMISE OF FITNESS FOR YOUR USE CASE
> * WITHOUT LIMITS FOR YOU TO USE OR EDIT
- Your company's perspective: Pay for the software to receive reliable products from trusted vendors
Business receives reliable open source software that is maintained on a daily basis, features are constantly developed and they receive a support from open source creators
- Why?
It's cheaper to pay a few (dozens / hundreds / thousands) bucks each year for a library, tool, component, etc instead of build it on your own, maintain, test, take care of security updates, do customer support
- Yours (open source developer's) perspective: Get paid to build, maintain and support your software
You as a developer make money by selling licenses to your open source software
- Why not free open source?
Because you still need a day job and do your open source after hours. Thousands (millions?) of companies make millions (billions?) dollars each year by incorporating your software in their products or using your software in their ecosystem, but you are left with $0 profit from it
- But I want my open source to be available to regular people for free
With poss market license it remains free for non-profit/personal/scientific users, if you choose to. It's just MIT License slightly modified
I'd like to see some form system where you keep track of what you actually use. Apportion money appropriately and you can make an annual / monthly / weekly payment and it gets distributed in a somewhat sensible way.
Yes there's edge cases, but at the moment there isn't really a good way to spread my money around.
IMO, OSS works because it is open and free. Most OSS projects use each other. If you are building some OSS project then are you not using other OSS projects? Many contributors will not be able to build if it requires/expects money to use other OSS projects.
I wonder if, society-wide, the best way to allocate resources to free/open source software would be just reducing mandatory work hours. Say, if the average ~ 8h per day were reduced to 7h or 6h, how many of those freed millions of person-hours would be redirected to hobby software projects?
You’re suggesting we reduce the work day just for software engineers (many of whom probably work longer than 8 hours) but not other engineers, teachers, autoworkers? Or for everyone, just so people have more time to work on OSS? I’m all in favor of a shorter work week, but this seems a fringe motivation
Society-wide, for everyone. Most people would use those extra hours for things unrelated to software, like, spend more time with their children. But if even 0.1% of that goes to software, it still would be a huge amount of extra manpower. It's unfortunate despite all the productivity gains from technological advances in the last 60 years or so, the work week stayed the same size, roughly. Workers didn't earn a fair share of productivity gains.
I’d be pretty surprised if that increase averaged more than 15 seconds per person per day and shocked if the increase was more than 3 minutes on average.
Python 3.11.6 (main, Oct 3 2023, 00:00:00) [GCC 13.2.1 20230728 (Red Hat 13.2.1-1)] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> population_base = [100_000_000, 1_000_000_000, 8_000_000_000]
>>> for population in population_base:
... print('15s/day for',population, 'people equals:', round((15*population)/3600), 'man-hours/day')
...
...
15s/day for 100000000 people equals: 416667 man-hours/day
15s/day for 1000000000 people equals: 4166667 man-hours/day
15s/day for 8000000000 people equals: 33333333 man-hours/day
From all the discussion here and previous it seems OSS is unsustainable.
People pay for software, notably Office, IntelliJ, OS, Adobe, video games, enterprise s/w and many more. For normal consumer products things are simple you pay some money for product and can have simple expectations that s/w will work. Every once a decade the direction a s/w takes major change, and you have to decide if you want to stay with it or move to something else.
Now with OSS both sides expectations have become implicit and ambiguous. In letter they come with no warranty but in spirit it does. No sane person would depend on database/compiler which can stop working or won't fix bugs without recourse. It may be OSS but I don't have time/skills to fix myself, so implicit understanding is that community at large will fix it.
Next is the issue of payment to the community. how much should be the payment, who should be paying and should be paid? No payment was discussed up-front, but it is expected implicitly. Should I review all s/w I use to understand the payment I should have been making. Maybe I should stick to only commercial s/w as expectation of payment is clear or maybe s/w being free but created by large corporates are ok as no payment is expected. Is making s/w in NodeJS / Python risky, as I don't know if community is paying for all the libraries I am using and how much I should be paying?
It’s important to set an example to avoid being dismissed as a hypocrite. This author should post the inventory of all the dependencies their projects use across the board along with how much the author contributes to each of them monthly.
That would absolutely get people off the fence and to start agreeing.
"Unsustainable" might not be the exact right word for it. I mean, it's software - if you can compile it, and run it, it's not like age will actively deteriorate it like a physical good. (Bit rot is definitely a concern, but far less of one than e.g. salt corrosion.)
My company uses lots of libraries from different sources. They are considering on allocating money for most of them. We'll start small but the idea is to keep funding those projects since we use them as part of our core products. We hope others step up too.
If you want to get paid maybe don't give away your software for free? This comes across as major sour grapes. "I made this free thing for people to use and they don't pay me for it!!" Ok, then maybe don't give it away?
Last time this was brought up someone said, well yeah it's a resume builder. And get a job with it, then work on it at work. That's why they hired you, you're the xxxx guy.
> It is quite literally a free lunch at the expense of hard-working individuals.
Yes! This. That's the point.
I'm a Free software developer and that's why I give my code away: to solve someone's problems with software. I can do that. I'm not particularly good at most things, but when it comes to writing software I'm very capable. In other words, I am a "free lunch" generator.
To me the entire point of computers and software (where these intersect with economics) is to change the structure of the economic system itself to a more humane system (that works in harmony with the global ecology, but that's a tangent to my main point today.) "Let the robots do the work and we'll take their pay."
Science and technology have won the day. We have the knowledge and resources to take care of everybody on Earth without "disadvantaging anybody" (as Bucky Fuller liked to say.) You don't have to "earn a living" anymore. We won history.
Software is just the clearest, cleanest example of the general phenomenon of science and technology obviating the physical bounds that held us back until now.
Getting back to software development: technology should be deployed so that folks only have to work a few hours a week to pay for their living expenses (e.g. $300 per month should cover food, housing, clothing, health care, etc., and over time that number should decrease!)
In that milieu people can develop software and give it away without the extra constraints of having to make it profitable in and of itself.
This is the whole point of technology in general and computers and software in particular: change the structure of the economy so that we can all "live happily ever after".
(And get on with space exploration and mitigating climate change.)
I'll tell you what so many tech bros tell artists upset about AI - you should be working for passion and love of the craft, instead of profit. Compensation only corrupts the dignity of the soul and results in terrible software, and programmers who only care about the paycheck.
Maybe you can find a second job, and focus on creating software as a hobby.
This is a complicated problem I see pop up on HN every once in a while, in different forms. I think there is neither an easy solution, nor a simple one.
Each culture is different, but many people now see 'free' and don't think of how that product is getting created.
For Open Source the problem is even worse. As a project becomes more popular there are more demands on a maintainer's time, which is in short supply for most good senior devs. They have a demanding job, they have a wife, they have children, they have other family, they have friends, they have their own self-learning. This doesn't count the lucky ones whose employers pay them to work on Open Source software. Once a FOSS project gets to a certain adoption level it becomes a supply & demand problem where the demand quickly outstrips the supply.
How do we fix this? Well, we can either reduce the demand (PRs, issues, etc on a single project) or increase the supply (hours of dev time).
One way of reducing the demand is to have many projects that do similar small things, splitting users across the ecosystem. The NodeJS NPM system is like that. I think that leads to problems with reliability, technology selection choices, and vulnerability finding/fixing. Then again, NodeJS is still going strong.
Increasing the supply from one person is hard. For most the supply spent on personal relationships (family, friends) should not change, except to go up. That leaves the supply spent on work. This is a hard problem too. Most devs work a minimum of a 40 hour week. The only possibilities are going freelance, so you can choose your own hours if you can financially justify it (many freelancers work more than a 40 hr week though), or going part-time (which is not an option for many). Let's say a senior engineer makes $160k salary (not looking at options, etc in this math). For him to go freelance he would need to cover family health insurance and life insurance, say $2000 per month, $24k total [1]. Taxes will be around $60k [2]. These are both much more than he'd pay working for a company. To get the same spending power freelance as he did at a company, he's going to need to make about 40% more (16% for FICA taxes, 24% for insurance), or around $200k. That's not doable from donations, for any other than a select few maybe.
What about around half? He can make $100k from freelancing, $104k from Open Source donations. For Patreon the average backer pledges $6 per month [3], or $1.50 per week. You'd also need to figure out what pledger rewards were. You would need around 1800 backers to do that. As a project rises in popularity you will also have an opportunity to get a co-maintainer or two who helps oversee PRs, etc. The pledges should be split among the co-maintainers, which means more pledges needed. The co-maintainers can also start to have some of their freelancing be consulting on using the project. JBoss is a great example of that, so are a number of other projects. When you get to enough consulting on it, with 2-4 other maintainers, you might save each other costs by incorporating as an S-Corp.
Ok, so if that works, why isn't everyone doing it?
There are a number of reasons.
First, security & stability. Some people need the stability, structure, and security that comes from working in a company. Freelancing is a lot of work, across a diverse set of skills, and there are no guarantees of a next paycheck. You might make $10k one month and $1k the next (an outlier, but it happens). So you have to be very budgeted, with a nice safety net in your account for dry spells.
Next, skill set & capabilities. Some people just are not good at marketing, or working with people. I think you cannot be successful in freelancing without having some skill at marketing and at working with people. I also think you can't really be successful as a software engineer without those skills either,but that's a different topic.
Finally, risk. I touched on this in the first point above, but it's worth touching on again. Freelancing is high risk. Your work could hit a dry spell. You could get sued (you did get liability insurance right?). Some people, or their family, find it unhealthy to have to deal with that level of risk.
Are there other solutions? Probably. Better ones? Possibly. Dev collectives, bounties, FOSS organization grants, FOSS organization patronage (Google Summer of Code is an example) are all other ideas that come to mind.
As always, I am a dev - I am neither a lawyer, nor an accountant, so do not take the above as legal or financial advice.
I agree, however, compensation in general is reaching a point where rational value calculations are fraying. I can't explain why an engineer, though well paid, is making .01% of the CEO's salary, nor can I explain why an engineer doing the same work but in the Philippines is making 40% of the salary of the one in the USA.
I was very inspired by "Walkaway" by Cory Doctorow. It involves a world where people detach themselves from "Default" (global capitalist society) by living in abandoned towns, building the tooling they need to re-establish a modern quality of life. He pulled a great deal on the open source movement in his speculations of how this might look. What I didn't realize at the time is it is essentially an anarchist proposition of community self-reliance. In the novel, there's no point in seeking compensation for your work, because your basic needs are already met by a share-and-share-alike society, and therefore everything you do fulfills either a very clear personal or community need (building a tractor, a house, software to manage a farm, a public spa, or repair schedules), or, is purely for pleasure.
My friend that's sticking it out in the USA is doing the "correct" path for an engineer: First gig in our hometown, transitioned to NYC, did a 4 year tour there saving a couple hundred K, house upstate, still working and saving for retirement but also farming ants and doing his other odd projects for his pleasure. In a recent conversation he mentioned frustration at the poor retirement opportunities for most of our generation. You gamble your life saving's on the stock market, or, do something that doesn't really benefit the world like flipping properties, if you can afford it. If your interest is self fulfillment, community fulfillment, and financial fulfillment as we grow older, that doesn't really exist, at least not in any combination that we've been able to figure out. He's thinking about some kind of ethical business venture, or maybe just a fun thing he can kick off that he can hire his non-engineering friends into like a cute little sandwich shop or something, but as he enters that world he's realizing all his competition is hyper-capitalized businesses or people that he can't possibly compete with if he doesn't do the same shit they're doing, such as filling their kitchens with undocumented immigrants. Basically, if he wants to do good and get paid for it, the opportunities just don't seem to be there.
So therefore, long term what I want to strive for as I build out open source software is actions that "break us out of the box." I and my like minded friends don't really think capitalism is going to cut it in terms of actually rewarding with money our efforts to do good in the world; after all, an investment banker makes more than a teacher and firefighter combined, and does functionally nothing useful. Therefore I'm interested in building things that free people from a financial burden. Every little financial burden I can free people from is a success. I love when I read stories about people building out little GPT programs that can automatically negotiate parking bills or whatever. Or scan your email to automatically apply for rebates and coupons. Or, outside of actual coding, helping people find out that their library has a streaming app they can use for free, so they don't have to pay netflix anymore. Or helping people turn their lawns into gardens, to reduce their food bills.
From a software standpoint, the "Awesome Selfhosted" project is very inspiring in this vein: https://github.com/awesome-selfhosted/awesome-selfhosted Lots of tools that many people pay for that you can instead deploy on your own and use for free in a way you control.
That's the kind of open source software I want to build. Trying to get paid to build FOSS is a distraction, instead I want to build things that will help people not have to pay for other stuff. I make plenty of money in my day job, I'm good on that front. Pipe dream, we do enough of it, and the question of "getting paid" becomes moot.
Even in this thread we can see the toxicity around trying to get paid to do good in the world. "What, you did something good for free and expected to get paid for it, what are you, an entitled moron?" vs "FOSS software is the backbone of your organization, if you don't pay for it, you are evil." I think it's just so frustrating how twisted up things are. Normally you get paid to do engineering, but if you build something genuinely useful for people, now you don't get paid, but somehow you're an asshole for asking to get paid, and also you're naive for thinking any organization would ever pay for something they don't have to pay for... what a mess. What a rats nest of competing values and accusations. It's not worth trying to fit what imo often inspires FOSS, namely "fixing a problem in our society," into the capitalist mode of thinking, "and getting rewarded for it." If you want to fix things in society, build FOSS, if you want to get rich, take contracts, charge your clients 200/hr for engineering time, put Indian engineers on it, and pay them 10/hr. There, now you're rich. So what?
Edit: on reflection I think basically our efforts to do good for people by writing foss will simply be exploited for profit by corporations, so better to walk into this understanding that, and for those that aren't happy with that state of affairs, try writing foss that can help other people escape these kinds of exploitation.
>> I can't explain why an engineer, though well paid, is making .01% of the CEO's salary, nor can I explain why an engineer doing the same work but in the Philippines is making 40% of the salary of the one in the USA.
That's economics 101 and not the problem of a particular profession
Fantastic post. Your logic is a perfectly hermetic circle.
I'm sure the OP can competently explain all of these things. What they can't do is justify them, or reconcile them with the principles that their society has instilled in them.
It's really interesting to me how the vibes have shifted against open source in recent years. I remember when open source came out, it seemed like an implicit critique of proprietary software as stuffy and corporate. But proprietary software has an advantage: The devs get paid.
If you want to get paid for your work, why are you choosing to give it away for free? I'm not judging, I'm genuinely curious. Are there any open source boosters left, and if so how would they make the case for open source at this point?
Maybe what's needed is a "for-profit open source" license, where the code is free for anyone to read, but it's illegal to use for commercial purposes without paying. I'm guessing this approach is already being explored?
I do free open-source work because I want to reshape the world, and this is somewhere I have leverage. If I was paid to do the work, then I would have to deliver what the customer wants, which is not always aligned with how I see things.
It’s pure ego, but I hope it benefits the world too :)
Thanks for replying. Yeah that seems like a decent model -- it starts as a passion project, then acquires users, then the dev stops having as much fun and starts feeling a sense of responsibility.
One solution is to announce that you're abandoning the project and suggest that its users make a plan to fork it / take over maintenance. Instead of adding a social norm that open source devs should get paid, we could drop the norm that open source devs should feel obligated to maintain projects for free. Maybe every README could have info about the primary maintainers and how enthusiastic they think they're going to be about the project going forward, so people can make informed technology choices. That way no one complains about a bait and switch.
Another idea is for the dev to respond to issues on Github by saying things like "I can fix this if you pay $X"
>Maybe what's needed is a "for-profit open source" license, where the code is free for anyone to read, but it's illegal to use for commercial purposes without paying. I'm guessing this approach is already being explored?
Nonfree and proprietary licenses have always been an option. The problem is developers want the convenience that FOSS culture provides without actually making the sacrifice of putting end-user rights before their own profit. Coding (specifically web dev) has turned into a money train and FOSS devs want on board.
FOSS licensing is an ethical stance. That ownership of software, (nonfree) copyright and intellectual property is fundamentally immoral, and authorship doesn't grant you privilege over the code you write. And that stance has a cost. If developers want to get paid, get a job writing code and a paycheck, or use a nonfree license. Otherwise, stop being hypocritical. You chose this path.
>Are there any open source boosters left, and if so how would they make the case for open source at this point?
I consider the way I publish MIT projects to be mostly in good faith. I put it out there because I like having my name associated with useful implementations of things. If my code, worked on with my own hands, is spread via unattributed copy-pasting? Good. Even if I don't know about it, somewhere out there my code is powering something.
I started this mindset when I was a new grad, and to achieve a task I would first look at a bunch of different open-source projects to get a sense of how they were approaching the problem domain.
The feeling of entitlement people have around open source is unsustainable.
If someone releases code then that's it. You have it. Do what you want with it (within it's licence). Be thankful.
Unless that guy specifically says he's going to maintain it for free you are entitled to exactly absolutely nothing more you ungrateful little git.
If you add this code to your project, you should fix and share any problems you encounter as a token of gratitude.
I agree with your sentiment of "Unless that guy specifically says he's going to maintain it for free you are entitled to exactly absolutely nothing"
That works both ways though, a maintainer cannot expect users to not complain (so they have to develop management strategies where they ignore the noise, rather than try to engage/capitulate). A maintainer can also not lament when users do not feel the desire to contribute monetarily.
>so they have to develop management strategies where they ignore the noise
I believe this is called “please use the template when submitting an issue” and we all know how that goes.
I’ve honestly found myself laughing like a madman at GitHub issues where the maintainer calmly and repeatedly tries to explain to the increasingly disgruntled reporter to UTFT (use the fine template)
6 replies →
> a maintainer cannot expect users to not complain
Eh… Isn’t that fairly close to the definition of entitlement (i.e. you complain when you have no reason to)?
5 replies →
> That works both ways though, a maintainer cannot expect users to not complain (so they have to develop management strategies where they ignore the noise, rather than try to engage/capitulate). A maintainer can also not lament when users do not feel the desire to contribute monetarily.
The solution is quite simple really.
1) have your repo private and release only tarball files or have a read only repo with no pull/merge request functionnality 2) do not use an issue tracker
Basically, do not use a forge such as github/gitlab, at least not publicly. Problem solved.
1 reply →
This is right, but maintainers themselves often forget. They don't enforce this. Their little thing became very important and they became a rock star, so they carry the world on their shoulders. They respond to feature requests that are out of scope originally. They let any and every PR in. Maintainers often manage to do things with their project that turn them into bahemoths and support large industry and find themselves stuck.
More maintainers need to take the "no guarantee of fitness for purpose" part of their license more seriously. Don't fall for the temptation to be everything for everyone. Don't cave to social pressure.
> More maintainers need to take the "no guarantee of fitness for purpose" part of their license more seriously.
I get this, as a very bottom line. But a lot of great projects are great because the developers consciously want people to use and depend on their work.
Their is a living changing informal social bargain, unique to each project, along with licensing, economic and other concerns.
1 reply →
What is the evidence for this feeling of entitlement?
I use tons of free software. I've never either demanded that anyone work on it for free, nor have I expressed any sense of entitlement or expectation.
You’re in the majority. But look through any issue list of popular(ish) oss projects and there’s a small but very vocal minority just sucking up the maintainers’ energies like vampires.
24 replies →
Just look around forums and socials like Reddit. I see people bitching how OBS Studio doesn't work for them the exact way they want it while contributing nothing to the project almost daily.
This happens less where the FOSS choice is a drop in a sea of established proprietary packages (FreeCAD, KiCad, Godot) but way way more when they have already established themselves as the popular pick (OBS Studio, Blender) so they get flooded by less tech-savy, more casual users that don't really see the value of open source other than they don't pay for it.
"Normal" people have always had stuff given to them for "free" (either "you are the product" or built-in licenses like Windows) so they don't realize the goodwill and sacrifices that FOSS goes through.
2 replies →
One example I noticed recently is when YouTube stopped allowing ad-blockers. You should have seen the people posting on the uBlock subreddit demanding it being fixed, it was kind of crazy.
1 reply →
You may not be part of the problem.
However, there are entire industries that leverage open-source / free software, and put unreasonable, uncompensated demands on it.
At the end of the day though, I don't see the problem. As a maintainer of open-source, gratis, software, just don't do the work. It isn't like it is a job. If you don't do the work, they can't fire you.
Is that good for the community? Surely not, but who is asking whether the status quo is working for the developers? Nobody but them. So look out for yourself, and scratch your own itch, but don't treat open source as a job.
He didnt mean you specifically. But there are lots of people demanding fixes like its their birthright.
1 reply →
I maintain some popular packages. It's not often, but it's far from never. Some people are really nasty, I've yet to figure out why.
1 reply →
If you've maintained an OSS project and managed the tickets raised, you'd know.
> The feeling of entitlement people have around open source is unsustainable.
Free-rider problem [1].
[1] https://en.wikipedia.org/wiki/Free-rider_problem
Haha I was just thinking about something similar recently.
Imagine visiting a coffee shop and telling the barista: "hey, by the way, I can make my own coffee at home for free, you know?"
People seem somehow OK with thinking this way when it comes to software.
Those two things are connected.
People will spend $10 on a coffee drink at Starbucks without blinking. Suggest that they spend $10 on a piece of software and they’ll throw a fit and claim you are taking away their rights.
Some people. There are people who think Starbucks is too expensive. There are people who donate to open source.
15 replies →
People will spend hundreds of thousands of dollars on proprietary software.
Most of those people won’t spend $100 on open source software.
6 replies →
Hm, why do you think that is? Do programmers just respect each other less than they respect baristas?
2 replies →
Overwhelming majority of people don't buy 10$ coffee. They just don't do it.
Telling people to have gratitude isn't going to fix a logistical problem or social phenomenon.
It's like telling people not to be Christian/Buddhist/muslim because religion is just a bunch of fantasy stories.
it gets complicated when the project is intentionally marketed, and users deliberately attracted. i think at that point it ceases being purely source available and burdens the creator/marketer with support duties. unfortunately at the moment, most open source projects are actively marketed, including fringe and poorly thought out products.
> you should fix and share any problems you encounter as a token of gratitude.
The whole point of the GPL is to change "should" into "must" for these fixes. That makes it a two-way street.
The entitlement and ranting is a direct consequence of the recent GPL-hating campaign.
[flagged]
It still beats having a central planner from the politburo tell you to work in the mines for zero compensation.
27 replies →
I don't actually think that's a problem with capitalism (though it has many problems).
I've always seen this as the markets reflecting what we collectively actually prioritize. Sure we want to be safe and educated, but damn it if we don't really get enjoyment out of fancy new toys, vacations, and new cloths.
In this case capitalism doesn't seem to be holding down salaries of the careers you listed. Its noteworthy that most of those industries are unionized, but if the unions are worth anything at all they should be pushing salaries higher than the market would have otherwise paid.
3 replies →
So the end result is that you live in a society where the average quality of education and health care slowly plummets to zero?
That is not a sustainable solution for society.
2 replies →
A maintainer position for a software project is like any position or role, in say, a charity. You aren’t technically forced to do the work, but the charity announces publicly (on its web site, for instance) that the work will be done, and people expect it to be done. If you do not feel up to doing it anymore, you owe it to other people (who expect the work to be done) to announce your retirement and hand the position over to new people.
Any project which is not a going concern should:
A: Not, IMHO, be called a ”project”
B: Be clearly labelled, in its public-facing information, as being offered as-is, without any implied updates or future development.
> B: Be clearly labelled, in its public-facing information, as being offered as-is, without any implied updates or future development.
So if I had a text file in the root of my repo that said:
Would that be sufficient?
12 replies →
> B: Be clearly labelled, in its public-facing information, as being offered as-is, without any implied updates or future development.
Pretty sure every open source license includes this in the warranty line...
12 replies →
> Be clearly labelled, in its public-facing information, as being offered as-is
If you read the license (for most licenses anyway), that info is clearly right there.
This is ridiculous because there is no legal or moral obligation from the creator to say anything except maybe adding the license. You as a user can use the given software and probably modify yourself at will due to the permissive license which is the main advantage of OSS. When I get stuff from the charity I do not expect them to provide a return policy and customer service, your analogy is moronic because the thing was done already and you can come back and get a newer thing if it is ready.
The problem is that the barrier to use any software is so low that it attracts people who have no clue and demand support. I am not talking about you, even the larger companies always mention a wish to force smaller developers to patch security issues for free, this is an issue in supply chain security at the moment.
The gist is that you can fix it yourself.
1 reply →
The feeling of entitlement people have around open source is unsustainable.
Do you have standards? It doesn't sound like you do.
People with healthy boundaries set standards for themselves as far as what they give to others and what treatment they accept in return.
I think the fallacy in your argument is that you're blaming contributors for noticing that they aren't being compensated for the work they've done, rather than blaming others for using that work without giving anything in return. I see your sentiment reflected in society in the way we treat low-wage workers with disdain for not doing more lucrative work. You're applying the principle of rugged individualism to a systems-level problem.
A healthier way to approach this would be to list a number of possible solutions and debate them in an open forum like this. When we find solutions but fail to adopt them, then that's a criticism of our agency. We are all failing ourselves by failing open source contributors. Then we can look beyond that to find the reasons why. Which are obvious because they are the same as with any other power imbalance. The fault lies with the wealthy and powerful people and corporations who profit from free and low-wage labor. The solution is to organize labor into a unified front so that exploitation can no longer happen.
Our failure to solve open source compensation is analogous to failing to stop suffering in developing nations which provide labor and resources for wealthy ones. Your argument places guilt and shame on workers instead of identifying exploitation by the wealthy, which might be better spent on something like an open source endowment or UBI more generally.
I dont think that is what the person you were replying to is saying.
> I think the fallacy in your argument is that you're blaming contributors for noticing that they aren't being compensated for the work they've done, rather than blaming others for using that work without giving anything in return.
Is anyone being forced to work on open source software? Unlike low wage jobs, where you could be forced in order to pay bills, eat, nobody is forcing anyone to work on open source ventures.
Just because you do something useful does not mean you are inherently entitled to compensation in the form you want.
If you are being forced to do something against your will that is bad. If it is some hobby you happen to like doing that is totally ok.
> The solution is to organize labor into a unified front so that exploitation can no longer happen.
Lol. What type of leverage do you think open source devs have to form a union? Open source in many ways is designed to remove all economic leverage from source code. Its not a bug its a feature.
3 replies →
> I think the fallacy in your argument is that you're blaming contributors for noticing that they aren't being compensated for the work they've done, rather than blaming others for using that work
That's the exact opposite of what they are doing. They are blaming the users for expecting more than they should. They should expect nothing more than literally just the current version of the code, as is.
1 reply →
[dead]
The annoying part in this debate is people spending their lives on a project and demanding to be paid for it.
Don’t do it! Who’s asking you to work on it?
I say this as a minor OSS developer who receives some donations. I love the money, but it would be pretty dumb for me to say they oughta pay me, because the only reason I work on it is addiction/compulsion/procrastination of real work.
If it bothered me that people use it for free, then I could just stop working on it and let it rot, just like lodash’ maintainer did for a few years. You always have the option.
I keep reading from project leaders like ESLint’s things like “if only they paid $1 each…” as if that made any economic sense at all. If they paid $1 each, you would not hand thousands let alone millions of users.
> I keep reading from project leaders like ESLint’s things like “if only they paid $1 each…” as if that made any economic sense at all. If they paid $1 each, you would not hand thousands let alone millions of users.
From another angle, if I gave a dollar a month to every Free Software program or library I used that month, it would cost me thousands of dollars a month. Obviously that isn't realistic. I have donated to projects before but those products need to individually make the case to me that my donation is needed. Expecting users to donate to every project they use by default just isn't realistic. Most projects won't get donations from most people most of the time; that's just the way it is. Developers should be at peace with this before they decide to personally commit themself to a project.
I don't think anyone is expecting you to donate to literally every project you use. However, say your business is to build and sell a product done in JS. You already have a bunch of JS devs, whom you may have even bought those sweet MacBooks. Let's also say, you're invested in keeping the code quality high, which you boast about in your product web page. Why not donate a $100/month to the JSLint project which is part of your toolchain anyway and helps you achieve your goals? The annual cost is probably less then you'd spend on the toilet paper for the office. You get a maintained product, they get some money to support their efforts. It's clearly a win win.
2 replies →
Welcome to the pre-2000's, when it was possible to actually make a living from selling software, without having to bundle it behind a SaaS paywall, hardware devices,...
2 replies →
> The annoying part in this debate is people spending their lives on a project and demanding to be paid for it. > Don’t do it! Who’s asking you to work on it?
I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
The value we get from OSS compared to the monetary compensation for that work is disproportionately small.
OSS generally doesn't depend on an army of people paid to make you buy shit you don't need or want.
> I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
We do. You work for a company that needs software X, and you contribute patches and fixes to X from your paid time. Software X is essentially a collab between different companies then.
The Linux base (kernel, libc and compilers) basically works that way.
> I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
As is true for many (most?) crafts.
If I am an artist (e.g. painting, digital art, etc). and give my work away for free, my fellow artists are not going to sympathize with my inability to make a living.
Ditto photography ("look at all these companies taking my free stock photos and not giving me any money!") Ditto music. Ditto writing. Ditto anything that involves a significant amount of creativity.
It's silly to expect SW to be any different.
8 replies →
Where is it written that being an OSS contributor should be a sustainable career? Just go write software for a company if that’s what you want to do. But why there’s an expectation that “open” source software should pay anyone is beyond me.
3 replies →
>I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
They knew that before they started.
4 replies →
> I think the issue here is that we don't have a system where being an OSS contributor is a sustainable career path.
Why should it be? Most OSS authors get paid to work on their stuff by some company who wants it. If there's no one willing to hire you, then your software is not worth it. I don't mean this negatively. I have lots of open source projects that are not worth it. I have one that I've been hired to work on before, but am no longer working on it anymore
You can say that for a whole host of things people volunteer to do with their time. They still volunteer that time often knowing it comes with no compensation at all. There’s this idea of altruism and greater good that drives a lot of people beyond money.
1 reply →
This! Its always the same. When volunteers start to complain they aren't compensated for their work, things start to smell fishy. And this kind of behaviour seems to have increased lately. Rather sad. Either I do something for the love of it, or I am going for a paying job. Sometimes people are lucky and these two are the same, but that is very much the exception.
Sometimes it's that devs still like the project, but more often it's probably just the fame/exposure that they don't want to lose. If you have no compassion for a project and the demand is high, it's still your decision to invest your time for no money exchange. You can just ignore the demands, if you can accept that your project might eventually fold.
This is additionally supported by the point that only few maintainers will hand out commit rights to other devs. They rather complain about all the workload and demands than give up some of all of their control, so others with more passion or who are even paid can continue working on the project.
If you want to be paid for your code, then pick a license model that matches it, but it will mean that you won't rise to the top, as only a limited amount of people will use it.
I wrote some more thoughts on this, during the "Moq incident" earlier this year: https://duerrenberger.dev/blog/2023/09/23/foss-funding/
> Either I do something for the love of it, or I am going for a paying job. Sometimes people are lucky and these two are the same, but that is very much the exception.
Why should that be the exception? Why shouldn't people's passions, especially when they are widely useful to others, not be encouraged and turned into paying jobs? Everyone wins. The passionate can keep doing what they're passionate about without having to split their attention to a job to pay the bills, and in exchange everyone else gets better quality output.
2 replies →
I build stuff because I love it. But why should I publish it? If I publish it, why should I release it under a permissive license?
I think people get pissed off because they're working out of a spirit of generosity, and the users who they interact with most are definitely not.
Suppose my neighborhood regularly throws a block party, and everyone makes and shares some food, because they enjoy making and sharing food. Great! But suppose one neighbor grabs portions of everyone's freely shared dishes, packages them up, and begins selling your freely-shared food as plate lunches to others, and pocketing the proceeds. They come back and ask that you use more spice, and by the way, do you have any napkins and plastic cutlery? Is the right response here "well, if you don't love making and sharing food for the love of it, you should stop?" Or is it reasonable to want to share with people who are willing to engage in the same spirit of mutual benefit?
I build stuff and keep my projects to myself. I would happily share with other people who are building hobby projects for the love of it. I would happily let almost any non-profit use my work for free (perhaps excluding some political or aggressively religious organizations). I have zero desire to gift anything to anyone's for-profit company. But for some reason, there's a strong stigma against sharing source code but not allowing a total free-for-all of what it's published for. "That's not open source," I'm told. So I don't publish at all, but that has nothing to do with not loving what I build.
Meanwhile, a hobbyist makes music, and publishes some recordings with a CC non-commercial license, people get it. No one says, "oh if you object to companies using your recording as background in their ads, it must be because you don't love making music."
> I keep reading from project leaders like ESLint’s things like “if only they paid $1 each…” as if that made any economic sense at all. If they paid $1 each, you would not [have] thousands let alone millions of users.
The dirty secret of the GitHub era of open source is that many developers and open source codebases would be better off if such a thing happened.
A lot of stuff associated with the development processes that are fashionable with GitHub and programmer Twitter provide net negative value (e.g. issue close bots) or neutral value at best (because they solve a problem that really exists but not at the scale that most downstream projects that opt in are actually at). If it suddenly became necessary or even just strongly encouraged for programmers to pay a dollar a month for things that are only as pervasive as they are because they are free and give the false sense of productivity, then we'd see a huge dropoff in the adoption and use of lots of things that are of dubious value to begin with.
I could see it now, every time you run yarn install it charges you $1 USD per dependency.
It goes both ways. Crowd blame the maintainer if they change the license for the future updates. So it makes sense to blame the crowd if they want the updates for free.
But I agree with you. Open source projects shouldn't have any obligation to listen to the people if they change the license. Even if they intentionally bait and switch, the users should only expect the current version to be open source and shouldn't expect free updates for life.
Yes, if it's open source then users don't have any right to expect that it'll be maintained by someone, but if a project deliberately uses the bait and switch trick to get people to start using the project when it's open source in the hope of trapping them, then that's clearly manipulative and ruins trust in other open source projects.
5 replies →
I think the general pattern is that someone releases something for free, then people start using it, and start depending on it, and then start opening PRs and issues, and then the person who did it for free in their spare time is expected to respond to those issues, etc. Now other people are making money from your work, but demanding that you work on it for free.
Mostly this is the point where people start thinking about how to monetize it -- and they should! Your time is valuable, you should get paid for it. If you don't figure out how to get in the middle of the cash flows that are happening _because of your work_, someone else will do it.
The book shareware heroes discusses this at length through the various solutions shareware developers came up with on how to monetize software written and given out for free.
As long as it's some hobby thing where you don't make any promises. If people start expecting stuff, they should start paying for it.
I suppose projects can get so big that developers literally don't have enough free time to fulfill people's expectations even if they wanted to do it. At that point they should get sponsored so that it become possible for them to devote more time to their projects. Sponsorships seem like a perfectly ethical way to make money to me. With enough sponsors people can afford to quit their jobs and work on their own thing full time. I've seen news of developers who did just that when they got enough support. I hope they're doing well.
Exactly. Open source has always meant exactly that and _only_ that. Support has always been (and should always be) on a best-effort basis. If you absolutely need the support, pay for it! If you can't or don't want to and need to fix it now, fork it!
(I maintained a small OSS project for a few years. I loved the folks that would get all mad when it didn't do x even though the code should theoretically be able to do it and "it's not that hard!". If only they submitted pull requests with their issues...)
Who’s asking you to work on it?
All of the people who demand things from the maintainers are. Very few of them are willing to sponsor or pay consulting fees. If you give up they complain loudly, and then often pay a contractor to do the work they wanted.
If they paid $1 each, you would not hand thousands let alone millions of users.
You could though, if the mindset of open source software consumers were to shift to 'pay for things you get value from'. Even if it was $1000 and only companies that paid, the landscape would shift dramatically.
> All of the people who demand things from the maintainers are.
I think OP's point is that the maintainer is under no obligation to deliver on these demands.
> You could though, if the mindset of open source software consumers were to shift to 'pay for things you get value from'
What if the mindset of producers were to shift? What if people only worked for free on things that they want to work on? Isn't that both more realistic and better for everyone?
>You could though, if the mindset of open source software consumers were to shift to 'pay for things you get value from'. Even if it was $1000 and only companies that paid, the landscape would shift dramatically.
Any solution to a problem that relies on humans becoming more ethical is not, in fact, a solution.
Knowing most large corps, they would rather pay a contractor $175/hr for two months than sign a $20/month license. Also, you usually cannot hire the open-source maintainer as the contractor, you have to use some company with insider relationships.
It isnt the engineering manager's fault at any large company. The policies make no sense, but there may be a larger wisdom that I do not understand.
2 replies →
If an individual were not the maintainer for a project, they would not be receiving demands from users of that project. The only reason they receive those demands is because they choose to be the maintainer. If they step down from that roll, all of the expectations go away.
If the reason you're doing something is for money, and you're not getting money, then stop doing it. It's that simple.
> All of the people who demand things from the maintainers are. Very few of them are willing to sponsor or pay consulting fees. If you give up they complain loudly, and then often pay a contractor to do the work they wanted.
Ignore them. I mean, it's not like they're paying you. Scratch your own itch instead.
I'm probably being dense, but I'm still not seeing a problem. I think if we dig, we'll find non-monetary incentives that open source authors are a bit shy about admitting to. Otherwise why hold on to the project at all? If you're not being paid, and you think you should be, and that's the only reason you're building the thing, just stop building it.
Open source isn't unsustainable. We've got decades of evidence of that.
You mean you would write your own leftpad function instead of pulling in a $1 npm dependency
That is crazy. /s
It would actually be amazing if you could do that—somehow stub dependencies with your own libraries.
Because the number of times I’ve needed a left pad lib is literally 0, but other, more useful libraries always have it as a dependency.
I have never understood this "I have an open source project and it eats all of my time, and I must scream".
Just stop. It's a hobby. As in life in general, don't have hobbies you don't enjoy. That's weird. Give your project to someone else - if this is you, skip to the bottom for my advice on how to do this.
I maintain a couple popular open source libraries, and a ton of unpopular libraries. At least two of the popular ones are way more popular than this guy says his is. For the most part they maintain themselves via pull requests. A good test suite, static analyzer and code standards validator go a long way towards making this possible with far less intervention. If you don't have those, that is where you should put your time.
When someone does open an issue, you look at it for 2 seconds, make a judgment call. Either label it wontfix, or ask them directly if they think they can handle fixing it.
If they can't fix it, you again make a judgment call about if it's worth your time or if you want to slap "Help Wanted" on it. And that's it, go eat dinner with your family. That's all you needed to do. Takes 30 seconds.
Once in a blue moon there's a hotfix that demands immediate attention, but it should be rare if you're building good software. If it's not rare, I'm sorry, I have bad news. Every once in a while a platform change requires some refactoring, but even that will often get PR'd by someone in the community who enjoys living on the edge.
At the end of the day, if you don't enjoy it, don't do it. If the library is truly popular just hand the reigns off to someone else. Forcefully if need be.
And don't just post a vague "maintainers wanted" somewhere. No one will see it. Scan your contributions for quality PRs and actually reach out to those people who are clearly invested in your code enough to understand how it works.
One of the projects I maintain, the original author literally just threw maintainer rights at me after having opened a handful of quality PRs myself. Didn't even ask. It worked :shrug: but YMMV.
> Just stop. It's a hobby.
But why should they, if they can turn their hobby into a job -- there are many very valuable companies that have been built on top of open source projects.
I think donations is a bad way to handle it though. If you don't want to do the full SaaS model, another tried and true way is consulting and training.
One of the problems I found with this is that actually taking donations is hard work.
I live in a country completely unsuited to making money from a hobby project on the side. To take donations I'd need to register as self-employed, and pay monthly for social security as long as I'm registered, even if I make no revenue whatsoever in that month. That's an absolutely awful idea for a project just getting started. I'd be losing a very appreciable amount of money, regularly. It'd take lots of effort to have enough support that I'm back to zero, and still not making anything. This is because this is a system made for plumbers, not for people doing rare jobs on the side which might some day grow into something serious.
Apparently the government sort of looks the other way until you start making minimum wage, but that's not a bet I'm comfortable making.
But finally, we (https://overte.org/overte_ev.html) managed. It took us a long time and a lot of effort to get a non-profit registered, and it absolutely required the participation of multiple knowledgeable people. This couldn't have been done as a lone wolf effort.
And after that hurdle of course you have to somehow get people to notice you exist, and convince them to donate. This is unfortunately a tough job for people whose main passion is software development and who threw all their effort into that. Going out there and figuring out how to advertise yourself and how to ask for money is a whole new skill to learn, and a big time and effort investment.
I highly suspect that the reason why libcurl shows up here every week or so is because Steinberg spends about as much time marketing it as writing code and it's clearly working. That project appears to be quite successful in getting donations.
There have been steps forward in the direction of making donation easier:
https://github.com/sponsors
GitHub Sponsors directs individuals to Open Collective https://opencollective.com/ , which can serve as a "fiscal host." The advantage here is that the default rule at law for how a group of developers working together will be treated is partnership, which means joint and several liability. Working with a fiscal host partitions individual liability from group liability.
But there are still open questions. I don't know all the details of how Open Collective works from a corporate law perspective. How do they partition the liability of different collectives that are hosted by the same fiscal host? That is important to understand because otherwise, the collectives that share a fiscal host are partners. This is better than all of the individuals who contribute to each and all of the collectives being partners (because there's still a partition between individual and group liability), but worse than if each collective's liability was partitioned from the other collectives' liability (and the fiscal host itself's liability).
This seems like an active area for legal innovation. No jurisdiction I know of is optimizing to maximize speed and minimize cost of setting up corporations. Yet without the ability to shield the contributors of capital and labor from individual liability, there isn't much a group of individuals can do in our modern economy. The problems that many DAOs have had is a case study in this.
People who care about open source should also care about scaling up the speed and minimizing the cost of incorporating. Stripe Atlas and similar services are underrated sources of economic growth for this reason, IMHO.
> I live in a country completely unsuited to making money from a hobby project on the side. To take donations I'd need to register as self-employed, and pay monthly for social security as long as I'm registered, even if I make no revenue whatsoever in that month. That's an absolutely awful idea for a project just getting started. I'd be losing a very appreciable amount of money, regularly. It'd take lots of effort to have enough support that I'm back to zero, and still not making anything. This is because this is a system made for plumbers, not for people doing rare jobs on the side which might some day grow into something serious.
We need to keep in mind systems can be changed. You've set a very clear example that can be understood and communicated. Legislators should get to know this. Receiving donations for community work should be possible without hurdle (at least until it reaches a very high level) everywhere.
I call the idea that we spontaneously support what is right for all of us a Donation Economy. If most people are ethical, this would work well.
---
Furthermore, I think we should also fight, in the long term, for organizations (collectively supported) that provide this function (supporting community work). Like pollution is a negative externality, where the act of someone is (an unpriced) bad for everyone, contributing to OSS is a positive externality, where the work of someone is (again unpriced) good for everyone. I propose creating distributed institutions for identifying and pricing those externalities (positive and negative), evaluating and rewarding (or pricing) them accordingly. What is the metric for externalities? Collective meaning and wellbeing of everyone.[1]
There are foundations like NLNet[2] that do this for OSS. I think we should donate to them in the meantime.
[1] More about this here: https://nlnet.nl/
not to mention some countries requirements around running a non-profit would mean you couldn't keep control of your own project if you did get it created as a non-profit or add others to the project without risking that they used the rules to take over ownership when it was advantageous to do so.
This is one area where cryptocurrencies are useful. Don't need anything other than a wallet address.
You don't need cryptocurrencies to commit tax fraud. The problem isn't being technically unable to get the money.
2 replies →
ORLY? That's your plan? Tax evasion?
And what about when you want to spend that money? At some point you have to declare that income and be taxed and the government doesn't care if you were paid in euros, bitcoin or seashells.
> One of the problems I found with this is that actually taking donations is hard work.
As many problems as there are with GitHub (social lock-in, Copilot laundering Open Source license violations), GitHub Sponsors is incredibly valuable and substantially reduces the friction for getting support for an Open Source project.
I don't think he is speaking about the ability to get donations. Rather about the tax consequences. It doesn't matter to governments how you got money, you have to declare it, even if it is GitHub Sponsors.
He did not say which country, but my guess would be Germany. You have to declare every penny here.
2 replies →
As far as I can tell, the problem lies not with the payment processing, but rather with the bureaucracy around receiving money in OP's country of residence.
Unfortunately, a system can be individually unsustainable while being globally sustainable.
That is, maintainer burnout rate can be high, but a continuous influx of new maintainers could compensate.
In fact, a lot of industries work like that, and numerous examples regularly appear on HN. Video game companies are notoriously full of super bright young developers, which are squeezed until burnout, just to be replaced by a new ones.
As for the compensation bit, although I agree with the principle, I tend to disagree that it would solve the problem as a whole. Sure, some maintainers would be more willing to spend time on their OSS projects if they were paid, some might even quit their job and work full time on their OSS. But my personal experience is that money is but a short term replacement for passion. Once you reach the point where you're not willingly working on a project, additional money can give you a boost of motivation, but ultimately you will tend to procrastinate to work on it, until you just won't be able to force yourself to touch it.
> Unfortunately, a system can be individually unsustainable while being globally sustainable.
Wow this is such a great description of the arts, fashion, Hollywood, game development, startups (?), …
It shows that the sustainability is not intended for humans, but for the entity they serve. When we talk about things being "sustainable" it's sustainable for the business, not for the people working in it.
I have one major objection.
It's easy to forget, due to the vast wealth of genuinely great volunteer-driven projects out there, that an overwhelming share of open source contributions are actually funded by capital. It's hard to imagine the Linux kernel, or llvm, or even projects like React ever fizzling out due to maintainer burnout or disinterest.
This is fascinating, in my opinion, because our systems of accounting and economical analysis are by design terrible at keeping track of externalities. They are not good at analyzing the potentially holistic value of mutualist projects. Largely speaking whatever cannot fit on a balance sheet becomes the province of philosophy and culture.
Despite all that, in the modern culture of tech companies, the value of FLOSS seems to be understood and the companies that recognize it genuinely seem to out-compete those that don't. They recognize the value it creates for them, even if it's very difficult to estimate the costs that are avoided by using a FLOSS system that would otherwise need to be licensed or built. Even if the completely optional act of using one's own resources to contribute to open source software does not easily map to an equivalent or greater return in accounts receivable or company valuation.
What I mean by this is that the sustainability of "open source" broadly speaking is already demonstrated and I don't see that changing any time soon. What's not demonstrated however is the sustainability of OP's project. I think this is a challenge that they and their users should tackle without implicating the entirety of open source software as a culture, or attempting to impose any responsibilities upon users of open source software that don't already exist.
IMO a huge problem is that extremely permissive licenses have totally devalued software development as the software you release gives everyone the opportunity to infinitely exploit it. What did people think was going to happen?
I find it especially funny when people complain "that they can't use the software 'at work'" when you release something as GPL.
Completely agree. The only licenses that make any sort of sense are AGPLv3 and proprietary all rights reserved. Permissive can easily end up being just free labor for trillion dollar corporations.
> the software you release gives everyone the opportunity to infinitely exploit it
How is that exploitation if you write some software for yourself, think it's useful for others, release it and then someone else uses it? If the software wasn't released, then others may have the same need and thus similar software may be written multiple times in a huge waste of time and effort.
To my mind, open source software is returning to the basics of human society - helping each other where we can. If you only ever do things with the intention of getting paid to do them, then you live a sad life.
Ok I make a really nice server and give it away for free. Some guy making 300k a year uses it to build something else and gets a promotion so now he makes 400k a year and his company is now making millions. They've exploited my freely available software to acheive this goal. Sure they could have invested to build it again (perhaps by paying me to build it? or by licensing my software from me?) but instead they get this at the cost of 0 and the result that they make is under no obligation to be free. This is a problem because when you assume that it's free you whole business model is based around exploiting the free to build the proprietary. This is the business model of almost every software company in operation and why the OS authors are broke and the software is devalued. A lot of the times if you're working at one of these companies that operate under this business model you are even discouraged from writing anything serious yourself or to do "overengineering". That's because the overengineering is being done by unpaid open source contributors.
> To my mind, open source software is returning to the basics of human society - helping each other where we can. If you only ever do things with the intention of getting paid to do them, then you live a sad life.
This honestly is horseshit because we wouldn't have this conversation if the profit of off open source was being distributed in any way fairly (or to put it patronisingly: used to help the contributors). By releasing your software under a license that permits this type of exploatation you are putting yourself in a precarious position of being at the mercy of whoever exploits it for commercial gain.
So as I am not misunderstood, I am not against open source in general or say GPL, but against using licenses like MIT/BSD by default.
3 replies →
I'm going to go out on a limb here and say it's perfectly ok to charge folks for software and if you're OSS project isn't motivating you like it used to, it's perfectly ok to charge users for support/updates/bugfixes.
Yes, the main reason why people don't do this is because they aren't psychologically ready to find out that the thing which cost them a lot of effort has very little monetary value.
This is really important.
A lot of people think open source is about not paying for software, even some open source devs think this.
You are allowed to sell your software even if its GPL'd or whatever. You are not obligated to give the source away for free, you can charge people for the source and for binaries, you just have to provide the source when someone does buy it. I would like to see more people try this out.
The most common counterargument here is that someone can pay for your source code, and then upload it to github, or even sell it themselves, allowing people to circumvent paying (you) for it. This is true, but most software needs to be maintained in order to be useful, and you are not obligated to provide the updates to people who haven't paid you, and I think you could charge for access to the updates, even for people who have purchased your software before.
You can also use trademarks, anyone who would attempt to resell it would not be able to use your "marks", which could be the project name or logo for example.
Maybe there are reasons nobody is doing this, maybe its not viable, but I haven't seen any cases where someone has at least tried this.
I expect quite a few people do this, or a variation on this.
Yes exactly. You can say "I don't have much time to work on this project I'm afraid, but I am available for consulting if you really need this fixed."
I agree with the sentiment. But if anyone has ever contributed now you're in a bad place because you are making money off their work which they probably didn't consent to.
Only if you change the license and you don't need to do that to charge for support, etc.
A CLA could fix that, but that should be done early, and you need to be prepared to ignore people that try to pressure you into not doing it.
This is psychological problem you cannot solve by technological means. As a wee lad I actually made some pocket money from a GPL-licensed software I maintained. That part was surprisingly easy, the skill is highly valued. But I avoided making it a career, it all felt so overwhelming (how to balance fun, demands from customers and contributions???), inappropriate("you must not be doing money from GPL!!!!11"), weird (even harder to explain what I'm doing than typical IT job) and lonely.
The article doesn't make any argument why the current situation is unsustainable - it does point out some problems, but as far as we can see, there's no reason why current situation, with all its drawbacks and limitations, couldn't go on for ever, i.e. be sustainably sustained.
Some contributors will quit, but that doesn't imply that the system is unsustainable, as long as some more people will temporarily make some contributions, and we're not seeing an imminent collapse where people will stop scratching their itches and publishing the resulting code as open source.
100% agreed. I've had my response to this sitting in my drafts folder for years now. Finally published it now after reading this thing.
https://news.ycombinator.com/item?id=38302122)
Your web site said “[CLAPPING HANDS SIGN] 3 claps”. Since I didn’t know what that meant, I clicked on it. It changed to say “[CLAPPING HANDS SIGN] 4 claps”. Now I feel like the person in that old joke about someone standing by a well or a cliff, repeating a number out loud.
1 reply →
There are many reasons for doing OSS. Perhaps the company you work for pays you to (the author mentions the many contributors to K8s at Red Hat et al). Perhaps you are building your resume, a student learning to program and interested in feedback, or you’ve built something for yourself and generously sharing with others, giving back to the community from which you in turn are getting valuable software. Or maybe it’s a passion project. Unless you are paid to, perhaps not even then, nothing obligates you to maintain the project, to offer free support. Consider a crude analogy: you are passionate about music, you practice, then start playing in the park (with or without your guitar case open accepting contributions). You’re good, people gather to listen to you. Perhaps a record producer will stop by and offer you a big contract. Unlikely. If you find you tire of playing in the park, it is taking away time from your job and your family, you are not obligated to continue playing…no matter how much your fans love your playing. And an essay “The Lack of Compensation in Busking is unsustainable” would be unlikely to gain you much sympathy.
The last time I checked the statistics, approximately 75% of the industry's codebase was open source—a significant portion! However, when it comes to the earnings of open-source developers, it's almost negligible.
I strongly believe that open-source contributors should be compensated for their work. So, in my opinion, there's a real need to establish an open-source economy where contributors can be fairly compensated for their work without compromising open-source principles.
I'm currently working on finding a compensation solution for OSS contributors. If you're interested in learning more, please don't hesitate to get in touch with me (see my profile).
To be fair a huge portion of the open source code being used by industry comes from industry.
Don't get me wrong though I love me a good open source project. I think the idea of being compensated might increase the quality, but let's point fingers at github. It would be as simple as adding a "support contributors" button on repos.
I don't know how divide the winnings fairly. But it should be possible.
The sustainable route for open source projects is individuals being paid by an company to implement functionality that the employer wants in a given project, and then being obligated under the license to share those changes. Those individuals could be employees of the company, or contractors, including the person who wrote the software in the first place.
I think in the minds of many, software patents are the means of getting people to disclose their source. But they currently don't work that way anywhere.
(edit: actually IIRC it's fine to sometimes promote what you're doing on HN, so long as it's not Every Single Post) . Can you tell us a bit more?
Open Source Projects should take inspiration from how companies pay people. There are some very good ideas in how companies distribute revenues and compensate individuals. We just need to take the best parts of this approach and blend them with our open-source principles, and we will have the best of both worlds.
Wait a second, where is it said that those 75% were made by volunteers and not by for example the many companies contributing to the Linux kernel?
The problem is that you ask for money on OSS. Companies use OSS because it is free. If you try to force them to contribute or pay money, there will always be someone who has more passion than you to do it for free. At this point, just pass on your OSS project that is highly demanded but you have no passion for.
Do companies use open source because it's free?
Cost may be a component. But not the only component, and cost doesn't have to be binary. You can charge and still be less than the alternatives.
The main benefit of using open source in a corporate environment is that there is usually zero paperwork involved. As long as the licence is approved, have at it! As soon as you pay money for something, either a fee or a donation, you've got to email someone. Almost certainly someone outside your team.
Companies don't make decisions on individual OSS dependencies. Individual engineers and engineering teams do. That's if anyone actually spares a thought at all (eek)!
6 replies →
> One happens to be heavily used
This does not matter in the slightest; your only obligations to other entities are self-imposed. Using a developer's piece of code does not confer an additional right to that developer's time.
> The bad parts are that there’s a dozen issues that I haven’t even reviewed much less triaged, investigated, and fixed
If those 3/4 million downloaders really found it that useful, aren't there code contributions?
> time = passion + money
I didn't _start_ writing code because of money, and I'd still be writing code on my own even if I weren't being paid to do it. I know this because I code on my own without being paid to do it, only work on things that are interesting to me, and I don't have a problem dropping a project if I'm no longer interested in it.
> Those companies in that list are contributing to the success of those projects
Go work for one of those companies then? Seems like a win-win.
I wonder if the promise of a couple hundred bucks would really be all that motivating at 11:43 pm, with your new baby sleeping nearby, after a full day working at your software engineering job?
You have a new son and a partner that need a lot of you right now. Those PRs and bug reports can wait. The time you have all to yourself right now is extraordinarily rare. Use it for you.
That said, I do agree with the premise of the post.
Given the current state of birth rates is that even a normal state for most developers how many developers have children or even desire children
Probably a majority. There are some that have no kids, but birth rates are around 2 in the US, and 1.5 in europe. Some people have multiple kids, so we can't do math, but on average everyone has a kid anyway.
Not RMS!
http://www.art.net/studios/hackers/hopkins/Don/text/rms-vs-d...
1 reply →
This is why everyone should switch to AGPL3.
You can use MIT/BSD/Apache/GPL3 dependencies without issue; never need to worry about derivative works or anything like that, just set it and forget it, and because corporations avoid you like the plague you can code away without a care in the world for backwards compatibility.
The BSD/MIT license is free as in free tech support, always has been.
Agreed.
“It’s too hard for dev teams to fund open source”: yes, it is; but we’re not going to fix that by giving them the code for free. If businesses really want something, they’ll pay. What’s missing are better ways for commercial entities-and dev teams therein- to monetarily support devs when they need to use a licence for commercial purposes because clearly the current parasitic economic model isn’t working.
>free tech support
Like, what, open-source police are going to arrest you for not addressing support questions?
MIT/BSD is "free as in the maintainer is free to ignore any and all tech support requests."
I don't know if this is the author's first child, but I'm going to assume for now that it is.
As a similar sort of person, now on my second child, with the first now 4yo, my advice is this;
Focus on yourself and your family. Get that rest, when the baby is sleeping, get some sleep, it gets harder before it gets easier.
Presumably paternity has finished now, and your partner (again I'm going to make an assumption) may be able to do much of the heavy lifted on maternity, but that'll end; at that point you'll both be working, you'll both have a massive sleep deficit, and in all likelihood (in my experience) you'll have a ~1yo who doesn't sleep through the night yet.
There were times where it got really difficult for me, and the passion projects became a source of depression because family life just didn't allow them to happen. Different people work differently, but for me, it took a while for me to realise that my priorities have changed, looking after and enjoying my life and my family became passion projects of a significantly higher priority than anything I build in software or hardware. The time will come (I assume, too early yet) when my children can take part in those with me.
The projects people are using to keep their companies running, on the back of your work, without paying for it, fuck them, let them be someone else's problem for a while.
IMO Posts like this always basically boil down to "Hey, I did follow every best practice and did everything as I was told and yet it's not working out like how it was promised"
This is because the core premise is simply wrong. Sites such as opensource.guide are not written for you. They're written for people profiting from you thinking they're written for you. If you follow their guidance, you'll end up unhappy and writing posts like that.
The only way to escape this is to ignore that con and instead pick a sustainable business model. That can mean not open-sourcing at all, but I'd wager that most of the time, it just means saying no, setting boundaries and knowing your worth + the value you provide.
Open Source is a development process. It is not a business model.
Tyler the Creator famously tweeted "Hahahahahahahaha How The F* Is Cyber Bullying Real Hahahaha ** Just Walk Away From The Screen Like ** Close Your Eyes Haha."
Seems like a ridiculous statement (and definitely doesn't address the real issue of cyberbullying)...
_but_ when it comes to open-source, that's my exact attitude. Notifications off, users opening issues and pull requests? May as well not exist. I'll occasionally check but that's it.
The easiest answer is that deep down you need to accept that you can only be "tortured" by the incessant, needy, unfair demands of your users if you choose to. If you can't handle it, disable it, archive your project, walk away.
I understand this is a jaded take, but it's not wrong.
Open source entered a bubble because companies started requiring active open source contributions to staff+ engineering requirements. The model was never sustainable. A select few contribute to open source out of sheer passion, but the majority are/were using it as a career advancement mechanism or network effect.
The result is that major companies were able to advance their technology and profits rapidly off of people's free work. The result is better products, services, and tooling for everyone, but let's not kid ourselves about who benefits most from open source: large companies.
This is what I dislike about OSI. It feels like their mission is specifically to provide free labor to megacorps. The FSF has (IMO) goals that have a more tangible benefit to society, and while megacorps can and do use free software without contributing anything, that feels like more of a side effect than the primary goal of the movement.
If you know that someone is going to take your code and make money off of it anyways (which is almost guaranteed whether you pick an FSF or OSI license), then you might as well make it so that society can benefit from this too. GPL/AGPL do this, MIT/BSD/etc do not.
And as an aside, I feel like it should be easier to profit from open source if you pick a license like AGPL. Companies that want to use it can pay you (the sole rights holder) for a commercial friendly license, while everyone else can use the free license. This is the same model for Qt/KDE.
You don't even need to sell support, and could probably even throw up a self service checkout page for commercial licenses. Thats minimal effort for maximizing profit lol.
Maybe I'm naive but I get the feeling open source is more about convincing the megacorps that they can get better, cheaper and higher quality software without vendor lock-in by cooperating with the other megacorps. Not so much as convincing volunteers that doing open source in their time off is some great idea or that they can make a living off it.
> who benefits most from open source: large companies.
Maybe in absolute terms but because of FOSS software I have been made free from the shackles of the windows ecosystem and liberated from the prison of Apple lock in to be free forever in the fields of the Linux and that alone has been invaluable to me.
This is essentially realizing that free markets don't pay proportionally to value created, but according to the marginal value created by paying more.
Compensation according to value created is fair. It's a goal we should strive for, but it requires either not going through free markets, or it requires empowering market participants to generate fairer outcomes.
This is pure fantasy, for many reasons: But if there was a union of OSS developers that would negotiate corporate open source users contribution to open source, and that would have the power to withhold license rights, compensation would probably be fairer overall.
Essentially a code collective rather than decentral anything goes open source ala GPL. I wonder if that would be attractive to some open source developers?
I think there sometimes is a strong aversion to get organized. "I just want to code!". But the idea that we can do without actively organizing society is naive, and if the outcomes don't suite us it's because those that actively organize (e.g. corporations) hold the power to shape the world in their interests.
If you want be compensated for your project, license your project appropriately and sell licenses/corporate support. Nobody's going to throw money at you out of the goodness of their heart, that's not how the world works.
If you burn yourself out on serving your entitled users for free, that's on you, not on them. You've created that sense of entitlement. You're an adult capable of saying "no" or "pay me."
easy to say - hard to do. corporates have the money to sustain an accounting department, random devs from developing countries don't. And nobody cares about them
Many of those complexities come with accepting donations too.
this single-point-of-view analysis fails to account for market dynamics over time, adoption of innovation, commodity markets, disruptive inventions.. and many, many other things that someone with experience and real critical thinking skills would discover quickly with any research on the topic.
> Open source software developers should have compensation that follows this:
This seems wrong. Typically opensource that gets compensation is for support. That's active ongoing work. Past contributions or usage thereof isn't material. That's the beauty of opensource, it keeps on giving to the original work, and derived works.
yeah, seems like the author came up with this formular to cope with the fact that others are making way more money off his software because they found a way to utilize their oss software to make profit. Author should do the same or not ask for money.
A more accurate and sane formular would be
I'm a junior so please take this with a pinch of salt, but yeah this is what I intend to do when I do open source too.
Once I've finished scratching my itch, I will only spend T hours per week on the project:
Where:
Where the min of 1 hour is intended to "get the project off the ground", and the max is for work life balance (any additional income is then either profits, or to be reinvested in other contributors).
I develop some open source software that I created. It's not very popular, maybe few use cases currently + my services hosted by me. But I still have an userbase and that userbase demands features from me. I tell them that the source code is open, you are free to create pull requests for me to review, but 95% of these people are no developers so they cannot do that. So now I have users who I care about, but who also demand me to develop the systems further. I don't know, I have mixed feelings about this situation, but in the end I drove myself in this dead-end, so it's my fault.
Charge a consulting fee to implement those new features? If a single user cannot afford it, then start a crowd funding campaign. If the crowd funding campaign fails, then say there wasn't enough interest. Let your users vote with their wallet.
Many open-source developers just want to code and get paid. But do they pay open-source developers to do the same? Or do they pay companies to sell them a product or service? In that case, they should build a product or service, not a tool or a library.
I have written and maintained dozens of open-source project [1], but I have only managed to make one sustainable open-source project [2]. It's also the only project for which I did all the things necessary to build a business (documentation, payment, invoicing, marketing, content, support, design, product management, tax fillings, legal, finance, etc).
I encourage everyone to open-source their code. But if you want to make a living out of it, you must also be an entrepreneur.
[1]: https://github.com/fzaninotto [2]: https://marmelab.com/blog/2023/11/13/open-source-profit-2.ht...
I think one of the side effects of Open Source has been the devaluation of source code. Many decades ago, Microsoft destroyed the IBM PC by licensing their source code to other hardware manufacturers. Not only did that destroyed the power of IBM hardware, but it also allowed smaller hardware players like Dell to enter the hardware market and defeat hardware giants like IBM. Move on to the present day and software is no longer the king it once was, only because the major players like Microsoft, Google, IBM, Amazon etc now all tend to use the same Open Source software. However, they now run that common code on proprietary hardware systems meaning we have come full circle where hardware is once again the king of the castle, and the real money is the hardware and not the software. And the real problem is, unlike earlier times when a small players like Dell could take on massive players like IBM, these days with hardware once again king, it now requires high levels of capital to compete.
> Quick, name all the dependencies of Kubernetes. You can’t, and I can’t either. There’s just too many. It shouldn’t be only end user facing products that get appropriate compensation. It should be these products that send a portion of their contributions (money and developer time) down to these dependencies in a big happy tree of contributions.
Thought this was a good quote to pull.
I am one of the creators and maintainers of https://albumentations.ai/.
- 12800+ stars
- 1M downloads last month, 37k per day
- Paper about the project: 1500+ citations
- Used in 18k other repositories and 317 packages.
=> People use it.
But!
- 365 open issues
- 25 pull request
that hang for years
Only one sponsor.
And this is fine. People use the result of our work, but we do not feel that we are entitled / deserve / [some other vomit words] of more support.
In the beginning, we decided that we would do it:
- only for fan
- when and how we want it
- if some user is unhappy with our commitment or decisions
=> feel free to fork.
But!
We do enjoy when people thank us, create pull requests (we do review and merge them, although it could take time), or create feature requests or bug reports.
I can see open source as a great pet project that you do for fun and to improve your skills, but unless it is an OpenCore business or another setup where maintainers are financially compensated, all whiners and complainers can go and fuck themselves.
I would not recommend maintainers of the open source software even notice them.
If working on OSS is not fun - do not do it. Life is too short for unnecessary stress.
I think an open source compensation system could work similar to how artists are payed when their song is played on the radio.
Radio stations in Sweden pay a fee to an organisation which distributes the money to artists in proportion to the amount of playtime.
Imagine a new type of open source license that mandated paying a membership fee to a global foundation to use the code commercially. Non-commersial use would still be free.
Companies would have to pay royalty to this organisation in proportion to their size or some other metric. The organisation would distribute the money to projects according to some usage criteria such a download count or similar.
For it to work there would have to be one or very few such organizations to that it is easy for the companies to handle. It should also not be very expensive for the companies. But even if it gets every company to contribute just a few thousands to open source it would still inject a lot more money into the system.
Such a system has been proposed for copyrighted works in general. The general idea is that you change copyright law so that making copies does not require permission of the copyright holder, but you also put a tax on something that correlates somewhat with copying. The government would then distribute that tax money to copyright owners in some manner dependent on how much their work was copied.
Even Stallman has suggested such a system [1], with the amount a given copyright owner gets for a work being proportional to the cube root of how much it is copied.
A common suggestion for the tax is a tax on internet access.
For entertainment such as movies and music and games that could probably work well. Probably also for closed source software. For open source software it might be too difficult to figure out how to allocate the money.
[1] https://www.gnu.org/philosophy/copyright-versus-community.en...
Yes I think it needs to be centralized and aggregated.
I am sure many companies realize that they gain value from open source. Thus they are willing to pay something. However they do not want to handle transactions with every transitive dependency they use. Just like a radio station doesnt want a contract with every artist. This is why isolated commersial licenses wouldnt work for anything but the very largest projecys.
There is a similar debate going on among musicians about how very few are compensated much if at all while a few at the top get extremely rich.
> Imagine a new type of open source license that mandated paying a membership fee to a global foundation to use the code commercially.
That would by definition not be open source.
I would not care so much about the definition of open source.
My ideal scenario is that code is open, can be improved and reused among commercial and non-commercial endeavors. I also would like that some of the value created by users of the open code flows back to the creators.
Individual commercial licenses do not create this ideal as they are monolithic and does not reflect that open source is a network of many dependencies.
Companies would be willing to pay for open source but they do not want to manage each node in their dependency graph individually. Thus the need for some centralized tax and redistribution system.
This is the most underrated comment in this whole thread.
I don't agree with this formulation of the problem nor the proposed solution space. The cost/price angle might be useful to solve other problems though.
Publishing opensource to a package repository should have higher hurdles than picking a LICENSE file and pushing code to Github. Java/Maven repos typically have higher quality because to get code there, you have to have a domain, register it and get through the packaging requirements/bureaucracy. The use of packages from Github with merely a repo/git-hash is a bad trend. On the other side, if everything had a visible price/cost, then we might not end up with simple functions being overused and compromise a library ecosystem.
There we go again. It seems only yesterday we had the same thread.
I choose an unusual hobby, that other people seems to find useful. Hence people should give me money.
I don't get it, I really don't.
If you enjoy working for free, by all means continue doing it. If you don't then stop. Nobody is forcing you. If you think your time and effort is worth more then you get now, go closed source, paid-support or whatever and see how much value you really bring to the market.
(I'm taking a -4 karma hit for this post, I know. I got it last time, do your worst)
For what little it's worth, I fully agree with you. This _should_ be so blindingly obvious that I have yet to wrap my head around how one could think differently.
Maybe it's a clout thing? That some people really want to make a living _selling_ software, but at the same time do not want to miss out on the cachet of "I'm doing open source"?
Whatever the reason, there is some amount of cognitive dissonance involved.
I even feel the opposite would be terrible - imagine taking payment for something that started as a hobby project.
Now the "pressure from users" is an actual contractual obligation! I can't walk away. What a nightmare.
I’m curious if it makes sense to have a distinction between source code existing for the purpose of discovery versus software for fitness of purpose. In other words this is similar to the Cathedral and the Bazaar as OSS used as a tool by users compared to the Bazaar where the focus is on displaying the source code. Much of my interest in contributing to OSS is more about offering examples and ideas via source code and not if the utility of the software fits specific users’ purposes.
Don't know of many unsustainable endeavors that last for over 30 years with no sign of stopping
Why don't you pass over the maintainer role to some of the users of the project?
Or share the maintainer role with some other users. Just select one, two, or three people who seem to be responsible and give them all the necessary write access.
Or maybe configure the repo in a way that all PRs need at least two (or so) reviewers from a selected group of reviewers.
Then this would greatly reduce the effort on your side, and development should continue on its own.
The issue isn't lack of compensation necessarily, it's lack of societal support.
Here in America I cannot work on OSS because if I tried to make that my main form of contribution, I would not survive due to healthcare costs, living costs etc. Companies being made to pay more or subsidize OSS I believe would have a detrimental effect on the system, because then it warps OSS to serve the desires of big companies in order for its contributors to survive.
The actual solution to this problem would be things like socialized healthcare detached from work. This isn't to say I think companies shouldn't pay for OSS (they absolutely should be funding and contributing to work that underpins their software) but rather that we need to reduce the reliance on corporate funding for people to be full time contributors.
Most complex, unique, value producing things have a path to monetization for the builder of the thing. If the money isn’t there for the builder they are either not leveraging their relationship to the thing correctly, or the thing does not have the value the builder may think it has.
> Most complex, unique, value producing things have a path to monetization for the builder of the thing.
I don't think this is true. You need an extra condition 'that few people want to produce'.
There is lots of good free art. Why? Because lots of people want to be artists and make art. There is tons of good free writing. Why? Because lots of people want to write. There is masses of good free music. Why? Because many, many people enjoy making music.
There aren't people who collect garbage, clean toilets, dig holes in the ground, or work in oil refineries for free. But there are people publishing science, doing research, writing philosophy, producing erotic material, designing things, putting on theatre, producing textbooks and teaching people things, making clothes, thinking of jokes, answering questions, providing peer support to addicts, playing music, making games, making animations, all without monetary compensation. This is because the people doing these things want to do them.
This isn't a failure of our economic system. It's a great thing - it makes the products better, the producers happier (provided they have the economic freedom to spend time on these projects) and the consumers better off.
First of all, it's obvious that in the vast majority of cases, writing free software falls into the 'amateur art' category not the 'dirty, boring and necessary job' category. Many, many people enjoy the time spent on writing and maintaining software, are motivated to solve their and other people's problems, and take pride in doing so well. You might expect that only games, intellectual toys or fanciful projects would motivate people to work on them in their free time. The reality is that software projects which could be seen as dry and boring to non-technical people (OS kernel design, file transfer protocols, laptop power management support, database and webserver stability, document rendering) attract many very talented people to work on them.
Secondly, if we think that there's some deep inequality or instability in our society because (for example) critical Internet infrastructure depends on hobbyists and volunteers, doesn't it make more sense to try and improve the conditions for hobbyists and volunteers, and make it possible for there to be more of them? The alternative put forward seems to be to turn them into more of the people who both don't enjoy the time spent on what they do, nor produce the best product that they can.
> have a path to monetization for the builder
The existence of the path to monetization is entirely outside their control though. Millions of people make viral videos, very few have benefited from it. The financial system disincentivizes or outright bans open-product monetization.
The many startups built around OSS projects such as Mongo, Kafka, Spark, and Linux seem to have found a way.
2 replies →
My sense of entitlement related to open source is honestly more specific and, in my mind, not related to specific compensation, but definitely related to the cost of utilizing and maintaining software. I feel entitled to a discipline of semantic versioning in open source ecosystems -- a consciousness where open source developers understand how flippant changes within software libraries can have ripple-effect maintenance costs. I feel entitled to software with appropriately pinned dependencies such that upstream changes will not divert software consumers resources to otherwise needless fixes. I often deride ecosystems where these values are often not shared (Javascript, Python, Ruby), and laud those that adhere more often (Java, Clojure).
I have published a project to interact with house alarm systems manufactured by a local company [1]. It is a hobby project, I have it for my own use, don't expect it becomes a money printing machine.
Yet, since many users request features well outside my use cases, and I have only one sample of the many alarm models that use the same protocol, I thought I'd be successful in getting some help from the manufacturer, from lent hardware (at pessimist side) to some small monetary contribution (optimist side). I got no response at all...
People are also fast to point things that are "wrong" but don't want to submit a PR at all.
[1] https://github.com/elvis-epx/alarme-intelbras
I get the feeling that FLOSS holds the niche that software patents were supposed to hold. To wit, it publicly discloses methods of the art to a practitioner in such a way that (s)he can fully implement it.
Software patents don't actually do this to a sufficient granularity (at least imao) , but get paid for; while floss does this to sufficient granularity that a compiler actually can implement it.
Basically we seem to have a collection of loose bits that variously ensures we have a public foundation for software development, and other loose bits that ensure people get paid for disclosing things.
The thing we don't have is one single cohesive system where people get paid to disclose the state of the art as a public foundation for software development.
I really don't get it. People build open source projects because it gives them unlimited freedom to build what they want. Open source was never about money. If you care about that there's far easier ways to get paid (and disclaimer: they're usually boring AF.)
You don't have to try turn every project into a business... There's also a pretty big catch-22 here in that most of these projects are only widely useful precisely because they are free. With that came the users, the plugins, bug fixes, and features. Take that away and many projects will have never became popular and then you'll have solved the issue of not being paid for your work (because no users will exist to buy your software.)
The problem from the maintainer side is:
0. Don't give away something and expect tips, donations, or anything else because it will only lead to resentment. If you voluntarily give something away, you basically lose all control of how it's used in the real world. If someone intends to make money from code, then OSS is probably the wrong approach.
The challenges from the user side are:
1. Donate time, money, and effort based on utility and necessity to support what's vital.
2. Be a proactive self-starter whenever possible rather than depend on others for support.
3. Some maintainers and communities turn out to have an un{cool,professional} culture of hostility, uncooperativeness, or unhelpfulness. Don't waste time with that.
The feeling of entitlement of some developers is sometimes baffling. They have a position of authority in a project, and got that authority based on their demonstrated trustworthiness and ability to deliver useful software. Now they don’t feel like doing that anymore, but instead of resigning their position in the project like a responsible person, they want to use their earned trust to be paid for software development. Congratulations, you’ve come up with a business model. It might work, or it might fail. But it has nothing to with the software project. Open Source is not a business model. It is a development process.
> they want to use their earned trust to be paid for software development.
They're entitled to do that, and you're entitled to fork it.
Everybody’s entitled to be impolite. But I can still argue against it.
they own the project, not you. open source licensing does not mean giving up the authorship.
They own the copyright. The project is a thing that happens in concert with users and contributors, just like art requires an audience to be art.
Side note: donations are kind of difficult in a cooperate environment. Once I request that the department donates a modest amount to an OS project. We had to call it a 'license fee' internally. Paying it fine - donating is not :)
You, along with the original author, are selectively framing the issue. The original author's words:
> This all boils down to a situation where you have many profit-generating companies using software that some programmer volunteered to write. That software contributes to that company making even more money. But the developer sees none
Which developer? Because what I see going on matches what Stringer actually says earlier in the post: "There are lots of users, many in a corporate sense using my software to further progress their organization."
So you have at least two persons here; there is no "the" developer.
First, you have a company trying to make money. And then you have a developer trying to get money from their company (and not just that, but getting it, and generally trying to get more). Let's call this a type-1 developer. On top of that, you have a developer upstream writing the software in question that "contributes to that company making even more money". Let's call this a type-2 developer.
What we're neglecting to acknowledge here, and what most conversations like these fail to acknowledge , is that it's not merely "the company" that is benefiting from the work of the upstream developer. It's the type-1 developer, too.
If type-1 developers are effective at converting the labor from type-2 developers into personal enrichment, internal accolades from their employer, general career trajectory, &c, then type-1 developers really ought to acknowledge their culpability in the system that leaves type-2 developers undercompensated. This doesn't really happen, though. Most developers with a type-1 role wrt some money-earning scheme (i.e. the ones employed at a company) seem to treat their TCP, which is on average includes a salary alone that is well above the combined income of a typical household, as a sacrosanct natural right that should not be examined at this level.
I don't agree with the author on how financial compensation should be structured or where does it have to come from.
My idea about what's currently in open-source domain is that it can be split into two categories: infrastructure projects that enable users to use their computers at the basic level, enable networking communication and maintain state-provided services land in "category A", while "category B" can be roughly described as interesting hobbies, leisure, entertainment etc.
What needs to happen, in my mind is that we need (international) organizations like eg. WHO to take care of the "category A" projects, where governments would have to allocate resources to finance and oversee these projects. Much in the same way how governments spend money on postal service or regulate / oversee banking. So, projects like Linux or OpenStack need to be under such international umbrella. This would require a bureaucratic process of examining such projects, estimating their usefulness, budgeting them etc.
On the other hand, non-essential projects, or projects that explicitly don't want government oversight / intervention could still work on the currently employed scheme: donations, sponsorship, volunteering.
In other words, I believe that some people working on open-source projects today ought to be paid. We just need a framework which establishes how much and how many such people can be employed for how long etc. It's prudent to make them (international) government employees to avoid playing into interests of sponsors who might not act in the interest of anyone but themselves.
For me, this would also solve a situation whereas employees of private companies are told / paid to work with open-source technology, but are powerless against the maintainers of such technology, while having no plausible alternatives. A lot of such projects succeed based solely on the good will of the open-source maintainers, but some fail due to the lack of, or deliver lower quality products. Having essential services covered by a government entity, and, by extension, being open to citizen complaints and wishes would make it possible to fight back against maintainers lacking the said good will.
The EU has an elaborate system of VAT taxation. It is an accounting nightmare, but it is fair tax: every part of the chain is paying according to their value-add. Whole of the EU has it. If EU wasn't so anachronistic, the accounting for it could be completely automated.
But nobody ever thought to make a similar system to pay people for the value they add to the chain. On the internet it's possible, and many blockchain systems promise something similar. But big tech wants all the profits, from everyone's creations, all for itself. And governments are silently guilty standing in the background
> nobody ever thought to make a similar system to pay people for the value they add to the chain
of course, you are joking! look in the USENET news archives.. from the early 1990s.. you will see many proposals like "micropayments" .. later, even standards proposed. Also see the importance of "ad free Internet" and how certain govt-company groups try to add their own "ID" to people and machines.
ok they thought of it and never did it, which has the same effect
1 reply →
Let’s clarify the difference between hobbyist software and open-source software.
I think there should be some serious changes about this. Github already knows which software packages a company uses. They could facilitate this. For example if the OSS maintainer asks for it, any company more than say three members should pay a monthly fee per package. Even 1 USD per package per month would make a huge difference for OSS. So if your javascript package.json has 20 dependencies, and you are actively developing, every month you should expect to pay 20USDfor that package.json.
I know the math above can be challenged from multiple aspects. But we need to start from somewhere.
Then suddenly a company paying more will feel like their demands are worth more than random Joey’s demands, and soon the backlog of the project is the company’s backlog and the maintainer will be treated as an employee with nonsensical deadlines and fixed long hours.
> 1 USD per package per month would make a huge difference for OSS. So if your javascript package.json has 20 dependencies, and you are actively developing, every month you should expect to pay 20USD
The proliferation of tiny NPM packages is bad enough already. It will only be made worse by the cobra effect.
Once you make a system like that distributing money, it becomes a game and people start exploiting it, and it all turns to crap.
It's not just open source, it's open everything. You either work for bigTech or you work for free. Entire generations of people have been conditioned to create content for free and behemoths monetize it. It feels like a 21st century Marx hasn't been born yet
Maybe someone should build ecosystem with payments for this type of work. You pay for package and it comes with warranty, guarantees, fit for purpose and so on.
It notices the upstream dependencies and bills you accordingly.
> I would be willing to bet that 99% of these companies don’t neglect compensation out of malice.
There is no malice. FOSS is free and open. There are many softwares that chose to be paid ones and they are successful.
This is consistent with our findings in the OneBusAway project, an open source real time transit app that is hugely popular in Seattle, and used across the world, including in San Diego, Washington DC, Boston, Tampa, and New York.
We’ve been appealing to our end users for funding to help keep the development of the mobile apps going, which you can contribute to, as well: https://opentransitsoftwarefoundation.org/donate/
Work on the passion project! Always work on the passion project in your free time.
Companies that depend on your hobby code can send you some maintainers if they aren’t happy with your hobby output progress rate.
"My choice of license allows you to hire a contractor and fix or change the code in the way you seem fit for your purposes".
There's user entitlement, but there's also lack of dev entitlement toward the license terms they themselves chose.
This should be a template response in GitHub issues by default:
I'm on the same boat, so I built a marketplace for devs to charge for our software. Blueprint here: https://github.com/poss-market
Long story short: I recently put the marketplace down, because I lack business skills
If any of you is able to help with business side of the project, please reach out - mail in my profile
Let me just copy-paste it for easier access:
- Your company's perspective: Pay for the software to receive reliable products from trusted vendors
Business receives reliable open source software that is maintained on a daily basis, features are constantly developed and they receive a support from open source creators
- Why?
It's cheaper to pay a few (dozens / hundreds / thousands) bucks each year for a library, tool, component, etc instead of build it on your own, maintain, test, take care of security updates, do customer support
- Yours (open source developer's) perspective: Get paid to build, maintain and support your software
You as a developer make money by selling licenses to your open source software
- Why not free open source?
Because you still need a day job and do your open source after hours. Thousands (millions?) of companies make millions (billions?) dollars each year by incorporating your software in their products or using your software in their ecosystem, but you are left with $0 profit from it
- But I want my open source to be available to regular people for free
With poss market license it remains free for non-profit/personal/scientific users, if you choose to. It's just MIT License slightly modified
That non profit license it's a big turd. It's nonfree. Period.
I'd like to see some form system where you keep track of what you actually use. Apportion money appropriately and you can make an annual / monthly / weekly payment and it gets distributed in a somewhat sensible way.
Yes there's edge cases, but at the moment there isn't really a good way to spread my money around.
IMO, OSS works because it is open and free. Most OSS projects use each other. If you are building some OSS project then are you not using other OSS projects? Many contributors will not be able to build if it requires/expects money to use other OSS projects.
I wonder if, society-wide, the best way to allocate resources to free/open source software would be just reducing mandatory work hours. Say, if the average ~ 8h per day were reduced to 7h or 6h, how many of those freed millions of person-hours would be redirected to hobby software projects?
You’re suggesting we reduce the work day just for software engineers (many of whom probably work longer than 8 hours) but not other engineers, teachers, autoworkers? Or for everyone, just so people have more time to work on OSS? I’m all in favor of a shorter work week, but this seems a fringe motivation
Society-wide, for everyone. Most people would use those extra hours for things unrelated to software, like, spend more time with their children. But if even 0.1% of that goes to software, it still would be a huge amount of extra manpower. It's unfortunate despite all the productivity gains from technological advances in the last 60 years or so, the work week stayed the same size, roughly. Workers didn't earn a fair share of productivity gains.
I’d be pretty surprised if that increase averaged more than 15 seconds per person per day and shocked if the increase was more than 3 minutes on average.
2 replies →
From all the discussion here and previous it seems OSS is unsustainable.
People pay for software, notably Office, IntelliJ, OS, Adobe, video games, enterprise s/w and many more. For normal consumer products things are simple you pay some money for product and can have simple expectations that s/w will work. Every once a decade the direction a s/w takes major change, and you have to decide if you want to stay with it or move to something else.
Now with OSS both sides expectations have become implicit and ambiguous. In letter they come with no warranty but in spirit it does. No sane person would depend on database/compiler which can stop working or won't fix bugs without recourse. It may be OSS but I don't have time/skills to fix myself, so implicit understanding is that community at large will fix it.
Next is the issue of payment to the community. how much should be the payment, who should be paying and should be paid? No payment was discussed up-front, but it is expected implicitly. Should I review all s/w I use to understand the payment I should have been making. Maybe I should stick to only commercial s/w as expectation of payment is clear or maybe s/w being free but created by large corporates are ok as no payment is expected. Is making s/w in NodeJS / Python risky, as I don't know if community is paying for all the libraries I am using and how much I should be paying?
It’s important to set an example to avoid being dismissed as a hypocrite. This author should post the inventory of all the dependencies their projects use across the board along with how much the author contributes to each of them monthly.
That would absolutely get people off the fence and to start agreeing.
"Unsustainable" might not be the exact right word for it. I mean, it's software - if you can compile it, and run it, it's not like age will actively deteriorate it like a physical good. (Bit rot is definitely a concern, but far less of one than e.g. salt corrosion.)
My company uses lots of libraries from different sources. They are considering on allocating money for most of them. We'll start small but the idea is to keep funding those projects since we use them as part of our core products. We hope others step up too.
If you want to get paid maybe don't give away your software for free? This comes across as major sour grapes. "I made this free thing for people to use and they don't pay me for it!!" Ok, then maybe don't give it away?
Just close the issue section. Then you only have to review the PRs where CI is green.
Last time this was brought up someone said, well yeah it's a resume builder. And get a job with it, then work on it at work. That's why they hired you, you're the xxxx guy.
I support some open source software.
It's a bit annoying as from an accounting point of view I'd rather they just invoiced me for a service.
One person's passion is another person's chore.
Focus on your passion.
The success of OSS projects is a function of how many people are passionate about it.
I honestly do not get the Open Source movement.
> It is quite literally a free lunch at the expense of hard-working individuals.
Yes! This. That's the point.
I'm a Free software developer and that's why I give my code away: to solve someone's problems with software. I can do that. I'm not particularly good at most things, but when it comes to writing software I'm very capable. In other words, I am a "free lunch" generator.
To me the entire point of computers and software (where these intersect with economics) is to change the structure of the economic system itself to a more humane system (that works in harmony with the global ecology, but that's a tangent to my main point today.) "Let the robots do the work and we'll take their pay."
Science and technology have won the day. We have the knowledge and resources to take care of everybody on Earth without "disadvantaging anybody" (as Bucky Fuller liked to say.) You don't have to "earn a living" anymore. We won history.
Software is just the clearest, cleanest example of the general phenomenon of science and technology obviating the physical bounds that held us back until now.
Getting back to software development: technology should be deployed so that folks only have to work a few hours a week to pay for their living expenses (e.g. $300 per month should cover food, housing, clothing, health care, etc., and over time that number should decrease!)
In that milieu people can develop software and give it away without the extra constraints of having to make it profitable in and of itself.
This is the whole point of technology in general and computers and software in particular: change the structure of the economy so that we can all "live happily ever after".
(And get on with space exploration and mitigating climate change.)
Alternatively, the lack of a non-corporate sponsored source of health care and income in the US is unsustainable. :(
Do people donate more if they see that the app is developed by a lone-wolf developer rather than a team?
Are open source developers really motivated by money? Sometimes exposure is all they need
This is made even worse by ai companies recycling the code.
I'll tell you what so many tech bros tell artists upset about AI - you should be working for passion and love of the craft, instead of profit. Compensation only corrupts the dignity of the soul and results in terrible software, and programmers who only care about the paycheck.
Maybe you can find a second job, and focus on creating software as a hobby.
With eGames and other subscriber things taking off, could this be applied to come up with a better open source compensation model?
Linus Torvalds $50M net worth says otherwise. There are however very few "winners" and a lot of losers.
If he sold his OS like other US companies then his networth would be $50B not $50M.
You can argue that Linux can't reach that kind of successful if it is nonfree, but there were a lot of poorly written OS that sold millions.
Bad example. He also was part of a number of startups including Transmeta.
Open source and "give me money" are the antithesis of each other.
This is a complicated problem I see pop up on HN every once in a while, in different forms. I think there is neither an easy solution, nor a simple one.
Each culture is different, but many people now see 'free' and don't think of how that product is getting created.
For Open Source the problem is even worse. As a project becomes more popular there are more demands on a maintainer's time, which is in short supply for most good senior devs. They have a demanding job, they have a wife, they have children, they have other family, they have friends, they have their own self-learning. This doesn't count the lucky ones whose employers pay them to work on Open Source software. Once a FOSS project gets to a certain adoption level it becomes a supply & demand problem where the demand quickly outstrips the supply.
How do we fix this? Well, we can either reduce the demand (PRs, issues, etc on a single project) or increase the supply (hours of dev time).
One way of reducing the demand is to have many projects that do similar small things, splitting users across the ecosystem. The NodeJS NPM system is like that. I think that leads to problems with reliability, technology selection choices, and vulnerability finding/fixing. Then again, NodeJS is still going strong.
Increasing the supply from one person is hard. For most the supply spent on personal relationships (family, friends) should not change, except to go up. That leaves the supply spent on work. This is a hard problem too. Most devs work a minimum of a 40 hour week. The only possibilities are going freelance, so you can choose your own hours if you can financially justify it (many freelancers work more than a 40 hr week though), or going part-time (which is not an option for many). Let's say a senior engineer makes $160k salary (not looking at options, etc in this math). For him to go freelance he would need to cover family health insurance and life insurance, say $2000 per month, $24k total [1]. Taxes will be around $60k [2]. These are both much more than he'd pay working for a company. To get the same spending power freelance as he did at a company, he's going to need to make about 40% more (16% for FICA taxes, 24% for insurance), or around $200k. That's not doable from donations, for any other than a select few maybe.
What about around half? He can make $100k from freelancing, $104k from Open Source donations. For Patreon the average backer pledges $6 per month [3], or $1.50 per week. You'd also need to figure out what pledger rewards were. You would need around 1800 backers to do that. As a project rises in popularity you will also have an opportunity to get a co-maintainer or two who helps oversee PRs, etc. The pledges should be split among the co-maintainers, which means more pledges needed. The co-maintainers can also start to have some of their freelancing be consulting on using the project. JBoss is a great example of that, so are a number of other projects. When you get to enough consulting on it, with 2-4 other maintainers, you might save each other costs by incorporating as an S-Corp.
Ok, so if that works, why isn't everyone doing it?
There are a number of reasons.
First, security & stability. Some people need the stability, structure, and security that comes from working in a company. Freelancing is a lot of work, across a diverse set of skills, and there are no guarantees of a next paycheck. You might make $10k one month and $1k the next (an outlier, but it happens). So you have to be very budgeted, with a nice safety net in your account for dry spells.
Next, skill set & capabilities. Some people just are not good at marketing, or working with people. I think you cannot be successful in freelancing without having some skill at marketing and at working with people. I also think you can't really be successful as a software engineer without those skills either,but that's a different topic.
Finally, risk. I touched on this in the first point above, but it's worth touching on again. Freelancing is high risk. Your work could hit a dry spell. You could get sued (you did get liability insurance right?). Some people, or their family, find it unhealthy to have to deal with that level of risk.
Are there other solutions? Probably. Better ones? Possibly. Dev collectives, bounties, FOSS organization grants, FOSS organization patronage (Google Summer of Code is an example) are all other ideas that come to mind.
As always, I am a dev - I am neither a lawyer, nor an accountant, so do not take the above as legal or financial advice.
1. https://www.ramseysolutions.com/insurance/how-much-does-heal....
2. https://www.quora.com/If-a-professional-freelancer-were-to-m...
3. https://www.crowdcrux.com/patreon-statistics-and-demographic....
I agree, however, compensation in general is reaching a point where rational value calculations are fraying. I can't explain why an engineer, though well paid, is making .01% of the CEO's salary, nor can I explain why an engineer doing the same work but in the Philippines is making 40% of the salary of the one in the USA.
I was very inspired by "Walkaway" by Cory Doctorow. It involves a world where people detach themselves from "Default" (global capitalist society) by living in abandoned towns, building the tooling they need to re-establish a modern quality of life. He pulled a great deal on the open source movement in his speculations of how this might look. What I didn't realize at the time is it is essentially an anarchist proposition of community self-reliance. In the novel, there's no point in seeking compensation for your work, because your basic needs are already met by a share-and-share-alike society, and therefore everything you do fulfills either a very clear personal or community need (building a tractor, a house, software to manage a farm, a public spa, or repair schedules), or, is purely for pleasure.
My friend that's sticking it out in the USA is doing the "correct" path for an engineer: First gig in our hometown, transitioned to NYC, did a 4 year tour there saving a couple hundred K, house upstate, still working and saving for retirement but also farming ants and doing his other odd projects for his pleasure. In a recent conversation he mentioned frustration at the poor retirement opportunities for most of our generation. You gamble your life saving's on the stock market, or, do something that doesn't really benefit the world like flipping properties, if you can afford it. If your interest is self fulfillment, community fulfillment, and financial fulfillment as we grow older, that doesn't really exist, at least not in any combination that we've been able to figure out. He's thinking about some kind of ethical business venture, or maybe just a fun thing he can kick off that he can hire his non-engineering friends into like a cute little sandwich shop or something, but as he enters that world he's realizing all his competition is hyper-capitalized businesses or people that he can't possibly compete with if he doesn't do the same shit they're doing, such as filling their kitchens with undocumented immigrants. Basically, if he wants to do good and get paid for it, the opportunities just don't seem to be there.
So therefore, long term what I want to strive for as I build out open source software is actions that "break us out of the box." I and my like minded friends don't really think capitalism is going to cut it in terms of actually rewarding with money our efforts to do good in the world; after all, an investment banker makes more than a teacher and firefighter combined, and does functionally nothing useful. Therefore I'm interested in building things that free people from a financial burden. Every little financial burden I can free people from is a success. I love when I read stories about people building out little GPT programs that can automatically negotiate parking bills or whatever. Or scan your email to automatically apply for rebates and coupons. Or, outside of actual coding, helping people find out that their library has a streaming app they can use for free, so they don't have to pay netflix anymore. Or helping people turn their lawns into gardens, to reduce their food bills.
From a software standpoint, the "Awesome Selfhosted" project is very inspiring in this vein: https://github.com/awesome-selfhosted/awesome-selfhosted Lots of tools that many people pay for that you can instead deploy on your own and use for free in a way you control.
That's the kind of open source software I want to build. Trying to get paid to build FOSS is a distraction, instead I want to build things that will help people not have to pay for other stuff. I make plenty of money in my day job, I'm good on that front. Pipe dream, we do enough of it, and the question of "getting paid" becomes moot.
Even in this thread we can see the toxicity around trying to get paid to do good in the world. "What, you did something good for free and expected to get paid for it, what are you, an entitled moron?" vs "FOSS software is the backbone of your organization, if you don't pay for it, you are evil." I think it's just so frustrating how twisted up things are. Normally you get paid to do engineering, but if you build something genuinely useful for people, now you don't get paid, but somehow you're an asshole for asking to get paid, and also you're naive for thinking any organization would ever pay for something they don't have to pay for... what a mess. What a rats nest of competing values and accusations. It's not worth trying to fit what imo often inspires FOSS, namely "fixing a problem in our society," into the capitalist mode of thinking, "and getting rewarded for it." If you want to fix things in society, build FOSS, if you want to get rich, take contracts, charge your clients 200/hr for engineering time, put Indian engineers on it, and pay them 10/hr. There, now you're rich. So what?
Edit: on reflection I think basically our efforts to do good for people by writing foss will simply be exploited for profit by corporations, so better to walk into this understanding that, and for those that aren't happy with that state of affairs, try writing foss that can help other people escape these kinds of exploitation.
>> I can't explain why an engineer, though well paid, is making .01% of the CEO's salary, nor can I explain why an engineer doing the same work but in the Philippines is making 40% of the salary of the one in the USA.
That's economics 101 and not the problem of a particular profession
Fantastic post. Your logic is a perfectly hermetic circle.
I'm sure the OP can competently explain all of these things. What they can't do is justify them, or reconcile them with the principles that their society has instilled in them.
Sure but it makes it a lot harder to figure out how much someone "deserves" for writing a FOSS project.
[dead]
It's really interesting to me how the vibes have shifted against open source in recent years. I remember when open source came out, it seemed like an implicit critique of proprietary software as stuffy and corporate. But proprietary software has an advantage: The devs get paid.
If you want to get paid for your work, why are you choosing to give it away for free? I'm not judging, I'm genuinely curious. Are there any open source boosters left, and if so how would they make the case for open source at this point?
Maybe what's needed is a "for-profit open source" license, where the code is free for anyone to read, but it's illegal to use for commercial purposes without paying. I'm guessing this approach is already being explored?
I do free open-source work because I want to reshape the world, and this is somewhere I have leverage. If I was paid to do the work, then I would have to deliver what the customer wants, which is not always aligned with how I see things.
It’s pure ego, but I hope it benefits the world too :)
Thanks for replying. Yeah that seems like a decent model -- it starts as a passion project, then acquires users, then the dev stops having as much fun and starts feeling a sense of responsibility.
One solution is to announce that you're abandoning the project and suggest that its users make a plan to fork it / take over maintenance. Instead of adding a social norm that open source devs should get paid, we could drop the norm that open source devs should feel obligated to maintain projects for free. Maybe every README could have info about the primary maintainers and how enthusiastic they think they're going to be about the project going forward, so people can make informed technology choices. That way no one complains about a bait and switch.
Another idea is for the dev to respond to issues on Github by saying things like "I can fix this if you pay $X"
1 reply →
>Maybe what's needed is a "for-profit open source" license, where the code is free for anyone to read, but it's illegal to use for commercial purposes without paying. I'm guessing this approach is already being explored?
Nonfree and proprietary licenses have always been an option. The problem is developers want the convenience that FOSS culture provides without actually making the sacrifice of putting end-user rights before their own profit. Coding (specifically web dev) has turned into a money train and FOSS devs want on board.
FOSS licensing is an ethical stance. That ownership of software, (nonfree) copyright and intellectual property is fundamentally immoral, and authorship doesn't grant you privilege over the code you write. And that stance has a cost. If developers want to get paid, get a job writing code and a paycheck, or use a nonfree license. Otherwise, stop being hypocritical. You chose this path.
>Are there any open source boosters left, and if so how would they make the case for open source at this point?
I consider the way I publish MIT projects to be mostly in good faith. I put it out there because I like having my name associated with useful implementations of things. If my code, worked on with my own hands, is spread via unattributed copy-pasting? Good. Even if I don't know about it, somewhere out there my code is powering something.
I started this mindset when I was a new grad, and to achieve a task I would first look at a bunch of different open-source projects to get a sense of how they were approaching the problem domain.