Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.
Hope you enjoy the instance!
Follow the wormhole through a path of communities !webdev@programming.dev
Donations is a good way to handle paying maintainers, but unfortunately most people don’t even know what open source software is or what software they depend on greatly that would deserve donations.
The problem is a bit deeper than this, because even if a user is familiar with open source software and is willing to support application projects that they like, they aren’t going to know what other open source modules or libraries are being used in those projects and probably wouldn’t think to check or to support those developers. The user front-end is visible, but the stack of dependencies often isn’t and these days no software is a monolith. How many end users would think about donating to Qt directly, or alsa, or libusb?
When I buy a turnip from the grocery store I don’t have to pay the farmer directly.
If I donate to debian, that I depend on , then debian (morally) should disburse some of that donation to the linux kernel that debian depends on.
This makes logical sense on the face of it, but in practice dependency stacks can be very broad and very deep. I doubt there would be enough donation money to make the effort of distributing it worthwhile, and at some point there would be so many small transactions that the transaction fees would eat up a significant amount.
Especially for something as complex as an OS, the dependency inventory is less like a list and more like a fractal.
It’s a donation so you’re never going to have perfect pricing everything down to the nearest penny or remunerating each person-hour worked. I think It’s about something rough and ready that is better than nothing. And it’s all goverened by morality anyway . . .
so doomed to failure on that side.
Buy hypothetically a simple principle with reasonable administration cost, like each 3 months, each node shoud add up all donations, slice off 25-50% , split it equally among their top 5 or 10 most important dependencies - just guess, and maybe swap from quarter to quarter if if there’s doubt. There’s some wiggle room there for small projects to do less and large over funded projects to do more.
Each node in the network could follow a simple rule like that, making a limited number of transactions each time period ,and you’d probably end up with quite a complex outcome after a few iterations (years).
The real trick would be having enough nodes in the network that actually enact such a simple rule. (Apart from having enough donations flow in to the consumer level projects of course).
But enough nodes and enough inflow and the fractal would work for you - roughly.
THe speed is an issue, the more often you settle up then quicker people see money, but the more the admin cost.
But even doing it quaterly is not slower than doing nothing.
Such a model is not something anyone will be securing bank loans off though, so if that’s the point then you probably need a paid licensing / service model of some sourt maybe Canonical and redhat.
This is one of the major universal gaps in FOSS. I have a yearly reminder set to donate, and a list of projects within it — I do it this way because a) every project I’ve encountered only offer MONTHLY recurring, which is stupid as fuck because b) no I’m not fucking donating the $5 a month minimum to dozens of projects and c) larger donations usually have lower fees (e.g. donating $60 usually has lower fees than 12 x $5); why the fuck would I give the banks 30% more of my donation than necessary?
Users shouldn’t have to manually deal with this shit, and valuable projects shouldn’t have to beg for pennies. There should be a FOSS payment management project that enables users to create an account, add ALL of the FOSS projects they use (or want to donate to), set a monthly / yearly contribution, and be done with it. Users can choose to allocate percentages or let the software divide the money between all of them evenly, including all of their FOSS dependencies.
If you don’t want to pay banks, ask the devs for a crypto address perhaps
Well, sure but at some point that donated money has to get distributed out to the accounts of the individual developers, and then you still have the transaction fee problem.
It might seem like the obvious solution is to collect donation amounts for a developer until some minimum value is reached and then distribute it, but then the donation platform is holding money (in trust? in escrow? not sure) basically making them a bank, which makes the whole thing a lot more complicated in terms of financial regulation (not impossible, but probably too expensive to operate to be worthwhile).
I think this part might be a practical impossibility. All of the larger/more popular open source projects are basically this:
That XKCD reminds me of the case a year or three ago where some solo dev that no-one had ever heard of was maintaining a library that a couple of other very popular and major libraries depended on. Something somewhere broke for some reason, and normally this guy would’ve been all over it before most people even realized there had been a problem, but he was in hospital or jail or something, so dozens of huge projects that indirectly relied on his library came crashing down.
What upset me most was reading the community discussion. I didn’t see a single person saying, “How can we make sure that some money gets to this guy and not just the more visible libraries that rely so heavily on his work?”, even though the issue was obliquely raised in several places, but I did see quite a few saying, “How can we wrest this code out of this guy’s hands against his will and make multiple other people maintain it (but not me, I’m too busy) so we don’t have a single point of failure?”
Well obviously giving financial support is important, but having more than 1 maintainer is good too. Because any amount of money wouldn’t have stopped him from going to the hospital / jail, and certainly wouldn’t help if he got hit by a bus.
Correction! It’s practically impossible to implement with conventional fiat banking. It would be functionally plausible to implement if the donations were in cryptocurrencies, with a built in audit trail, and smart contracts handling the escrow and distribution — though FOSS funding would be exposed to all the downsides of cryptocurrencies (high volatility, low liquidity, regulatory fuckery, etc).
At my work we use a few open source projects in critical infra, but I’m sad that we are pretty shit at budgeting for donating to said projects
if you have your engineers developing a feature for selfish reasons, and the code is good, you can share it right?
“No we’re not giving out our IP for free”
open source project repos on your company github is how you attract top talent i thought :(
If budgeting donations is difficult, maybe donating time is more viable?
Employees are already paid for. Less people involved to approve too.
If you have the autonomy you may even be able to to without explicit approval.
Yeah we are pretty bad at upstreaming too…
At my work, I can be probably safely assume there is no such budget and in fact open source projects are actively used to create our own branded products (that may or may not be exclusively used internally).
You probably only need a few guesses at where I work.
deleted by creator
Anti-capitalist doesn’t mean nobody gets paid, though.
deleted by creator
I see this way too rarely nowadays: “Free as in speech, not free as in beer”.
It’s definitely a much older expression, but I first remember hearing it around 2000, and that helped me ynderstand the philosophy of OSS. Whereas many would shrug at the fact that you could buy FreeBSD (because they thought “as in beer”), they tended to ignore the benefit of the liberty aspect of it all.
Sure, you could pay for the convenience of having your favorite OS on official disks shipped to your door. But you didn’t have to. Free doesn’t always mean unpaid.
But you can’t have one without the other. Putting a cost on software is adding a restriction, thus making it less free (as in freedom).
Free software should be available to everyone, even to people who don’t have money to pay for it (poor third world countries, students, kids).
I personally believe, that you should pay for software that helps you earn money. For everything else - it’s everyone’s own decision to donate or not, based on a financial situation, beliefs, political position and what not.
Yeah I think that people should be a lot more willing to pay someone to contribute to open source than they are to pay for usage of closed code. It really should be seen as the best form of charity, like when I donate to an open source project that makes a good education tool what I’m really doing is donating that tool to every school in the developing world and every student that wouldn’t have been able to afford a paid version.
I think that we need to get into a world where showing off which projects you support is a way of flexing, like all these super rich attention seekers need to start funding development teams for apps ‘oh yeah I was so annoyed the librivox app didn’t have ai search tools that I paid two PhD students to implement it, apparently it’s been a real boon for foreign language learners and literary academics but I just use it to find me historic novels similar in theme to events in my own life, you know it suggested shadow over innsmouth, I don’t know what it’s trying to say!’
People need to see that it’s much better to buy something for everyone in the world than just for you, especially because it makes it possible for other people like you to repay the favour and pay for further improvements which benefit you
You definitely can. “Free” refers to the freedom of the users, not the freedom of people who might want to be users (that doesn’t even really make sense, how can you provide the freedoms to people who don’t even use the program?).
I meant that free software is inherently can’t have a price. Even if you provide source code only to your users, they are free to share that source code for free.
Thus there can’t be piracy because piracy of free software is inherently allowed.
And if you try to prevent your users from sharing the source either legally or with drm - you add restrictions to software, making it less free for your users.
The recent situation with RedHat provides good demonstration and example of this.
Yes, the users can redistribute however they like. That doesn’t stop you charging an initial fee (and most people would probably rather get software from the official source)
deleted by creator
There’s no need to come up with new terms or change the existing ones. Free software is inherently free in price. And you can’t enforce paying for software without the restrictions put in place (e.g. drm). Here’s a quote from https://www.gnu.org/philosophy/selling.en.html :
Free software can have a price, but paying it is optional.
The problem is companies that fully take advantage of open source, as is their right, and then fully expect the volunteer dev to provide support them when they have a Sev 1.
Sure they read the license and saw that it was free, but they didn’t read the part that it was free but offered literally no support.
The amount of money that my company has made on the backs of open source developers is probably in the literal billions. But we don’t give fuck squat to them outside of one day a year that we contribute code back to a few select libraries.
Don’t confuse “free from cost” with “free from restrictions”.
Writing software costs costs - be them time, money, evne mental health as we have often seen because of too many entitled people in these communities. Putting a price on the software means valuing it for what it is, and does not incur in any additional restriction on the usage of the software.
All that said, I think the cost of free software, at least when it comes to infrastructure software, is something that shouldn’t be necessary for the end user to pay. Similar to how we pay taxes, instead of paying for the installation of semaphores on our streets directly.
If I were to design any such global system, it would be eg.: distro maintainers who would pay a maintenance cost to the developers of the dependencies they ship. Probably in the form of a funding pool that is distributed across projects prioritizing those that 1.- have ethics and development practices more similar to the distro’s and 2.- are in need of more immediate attention for solving security or usability bugs.
Furthermore, national-level funds for this would be collected via a taxation system managed by an academic office or other such entity and taken in a measure scaled according to the nation’s average technological “estate” (after all, developing and maintaining a more complex system requires more cares and attentions).
I feel like this is a very modern problem with the community. I’ve been in open source for a long time, I’ve been employed by some of these companies to write open source things.
Most open source stuff was created by someone who was employed to write that open source thing. There are exceptions, of course, but most things came about because of a need, and that need is often related to work. Companies used to be a lot better with allowing open sourcing of components.
Then, there are all the community contributions that come from commercial reasons. If someone working at a company fixes a bug they encounter, that’s someone being paid to write open source software.
I do not understand the reaction people are having to this now. The open source ecosystem was built on this.
Fully agreed. Puritans of any kind are annoying and can’t think for themselves. Opensource can’t exist in this world without somebody that has money and time to write it. If we want more opensource, we need to pay those writing it to spend more time doing so.
If you really think you can live outside of capitalism in a capitalist world, go off the grid. Posting on the internet is already proof that you’re failing your own ideals.
CC BY-NC-SA 4.0
Why? I use the internet to share media and culture via P2P. Is that failing my ideals? Also I don’t remember Stallman being a commie, to be fair.
And opensource CAN exist without people paying the mantainers, people have being giving things away to the community since time is time This trend of companies paying mintainers is relatively new.
Plus, on the other hand, as long as it is full open source, I can’t see why anyone would have a problem with the maintainers getting paid, specially through a foundation via donarions and/or crowdfunding.
“If you really think you can live outside of capitalism in a capitalist world, go off the grid.” are these your ideals?
What does that have to do with anything?
Giving money in return for code is payment. A donation is payment. A maintainer getting money during their day job and then working on opensource in their free time is payment.
CC BY-NC-SA 4.0
I think we are agreeing with each other: life is not black and white and puritans want to make it.
Amen
I hate this word arrangement in the title. It reminds me of painfully oblique ‘breadtube’ videos. “Getting naked near an elementary school and eating whipped cream off your boyfriend’s ass is good, ‘actually’!” I think the first person who used it might have been the chick who got hit by hotdogs in that old GIF.
I also think the arrangement of some words can be very panful.
IMHO the reality is more complicated than what’s described here.
Open source is sustainable (in the sense that people will continue to do it), even without the maintainers getting paid, for better or worse. This is evidenced by the history and the majority of open source projects now.
The bait-and-switch problem, which gets the maintainers paid, hurts the ecosystem in the long run, which relies heavily on the good faith.
Many open source projects are not developed by unpaid volunteers. The Linux kernel, for example, is primarily developed by professionals on paid time. I’m not convinced the Linux kernel development would continue without business contribution. I’m not convinced all open source projects could just continue without any payment.
I think if you look at your average “package” from GitHub, that is published to npm, nuget, or the associated language rep, by and large they’re not making any money.
Sure big projects are making money and have paid development teams, but that’s not true at the individual library level in many cases.