68 comments

[ 0.15 ms ] story [ 136 ms ] thread
Why aren't these packages jointly maintained by the money-making companies that use them? A lone developer writing a library isn't taking advantage of any of the positive-sum advantages of open source, he's just a guy working for free.
Well, many serious open source projects are heavily maintained by the money-making companies that use them - either directly as a company, or by "accidentally" happening to employ key maintainers of these projects and letting them loose on that, or by simply having their engineers do a significant amount of feature development, or by sponsoring the projects.

Where it does break down is with excessive fragmentation. A hundred small libraries each doing one thing will get much less corporate support than a single important library that does the same hundred things.

> Where it does break down is with excessive fragmentation. A hundred small libraries each doing one thing will get much less corporate support than a single important library that does the same hundred things.

I think you've nailed it; similar patterns have played out with news/blog sites, or even media like music and indie games. The internet has allowed for rich selections of micro-products to pop up, get created, get distributed. But we have yet to solve the problem of getting the money flowing the other way through the same ever-more-fine-grained tree.

It's not that people refuse to pay for their news, it's that they don't want to sign up for and pay for dozens of different sources which they might follow a link to once a month. It's not (primarily) that people refuse to pay for software, it's that people don't want to spend the energy tracking down how to donate a couple dollars to the 100 different NPM dependencies their project has. In all these cases, unless you're a household name, you're going to get lost in the noise.

Ads have traditionally been the workaround for this. They don't require any involvement from users, and they scale based on traffic. I supported Feross' experiment because I see (non-tracking) ads as a necessary evil until we come up with a better solution to this problem.

Proposed solutions include bundles, Patreon, GitHub Sponsors, and what Brave is doing for web content. None of these have changed the equation yet, though, and it's a really vital problem to solve in today's world of content creation.

What aboout a Spotify-like rev-share model, where the user only Subscribes once, Paying Whatever you want monthly, and then the platform redistributes that to your repo's deps on some way, make it easy to give extra tip's after nice interactions/issues-solved/pr's-merged/releases etc
The closest to that model is Tidelift, though last I checked, they still sell only add-on assurances, not permission to use the software to begin with.
Yeah I'm aware of Tidelift but it's still very not much a real thing for me. Good for enterprises I guess.

It's just something I randomly but cyclically think about, here some old notes about it:

What if GitHub Stars = Money

Problem? I might want to give back to open source, but I’m too ignorant or lazy to actually do it.

Create an indie platform that lets you create a one time or subscription donation to all your GitHub innteractions based on Stars, issues open, etc…

If I have 1000 Stars and donate 100 dollars, each repo would get 10 cents, if 10 more people have starred the same repo than I have, the repo owner would get 1 dollar.

So if she or he has 1000 stars, that’d mean she or he gets 100$

Stars are not so meaningless anymore.

After first donation to a new repo, open an issue encouraging to get to minimum payout amount faster by pushing a badge into readme as a PR.

PS: Original personal note from 23 may 2019, If I recall properly this was pre GhSponsors

There have been several attempts to create "tip jars" for open source that automatically split a total commitment across multiple projects or developers. Several ran aground on implementation issues like money transmitter regulation and payment processing. But even when the systems worked well and stayed out of trouble, they just didn't see that much money flowing through.

Two subspecies of the tip jar rose to public prominence in the last few years.

Crowdfunding sites like Patreon focus on perks. Both legally and practically, they eschew "donation", partly to avoid money transmission issues, partly because people are just more likely to give money for something in return, rather than gratuitously. Open software coders who've done well via these platforms number very few and often offer substantial perks that appeal to "enterprise" customers at high tiers.

Sites like OpenCollective focus on raising for groups, rather than individuals. The amounts committed to groups can sometimes reach significant looking totals in the thousands of dollars, but splitting among contributors often cuts the per-individual number down significantly. The transparency and other groupware features put social pressure on individual developers not to take too much.

Yep. Perhaps repositories like NPM run such a system, giving you perks for subscribing or maybe just framing it as a (cheap) donation, and then each time you NPM install a package they factor that in to how your fee will get distributed. Even if it were a $5 monthly donation they asked for out of the goodness of people's hearts, which automatically and granularly divvied itself up based on what you use, I bet it would go a long way.
I would have a problem trusting npm or GitHub (Microsoft) with my donation money because of the same issues I've with mainstream NGO who play ads on TV of famelic enfants to make you send a paid/premium SMS... of which the ISP gets more than a 30% of the cut to start, and probably most of it will end up spent in whatever the C-level people in such organization consier fun.

npm is very much a business, stuff like pnpm, an yarn exist for a reason!

That's silly. NPM's business relies on its thriving package ecosystem, and ecosystems like it face a very real risk from this problem. It would be in their interest to provide such a service, and it would swiftly become obvious if any funny-business were going on, at which point their reputation would be completely decimated.
The news thing is interesting. What if there was a platform/network that let you sign up in one place and get access to many different sources? Instead of subscribing to the NYT and the WSJ and National Geographic and The Guardian, you buy a tiered subscription on this platform and get a certain number of ad-free article views per month at any of the sites you want. When you pass the limit, you don't get shut out -- you just get ads and a reminder to increase your limit.
These packages aren't maintained by the companies that use them because their incentives aren't aligned. The most efficient approach would be to fund development by the current maintainers who are familiar with the project, but as long as the module continues working the companies have no market incentive to fund development.
Open source won't pay your mortgage or buy you that yacht. It won't get you a job. It isn't going to help your resume potentially.

And if you're doing it for any of those reasons, then stop doing it because you're missing the point.

Do it because you care about what you're building. Do it because you want to share your solution with the world. Do it because you want to contribute.

Why would anyone want to contribute solutions that others can profit off of for free? It seems really weird to me that there might be people who actually want to do this kind of charity.
Well in the case of GPL it's to build a public commons. Part of GPL is to ensure that that public commons is maintained (it can be profited from, but not exploited).

This article is likely referring to mostly permissive open source, which yea allows people to profit.

We build a commons upon which better software can be built. People write open source to improve those commons, not for charity.

If you already wrote the solution for your own personal use, it can only benefit you to open-source it so other people can contribute improvements. (But sure, it might benefit you even more to sell it or distribute it as adware or something, depending on how useful it is.)
In my case, even from a self interested point of view this makes sense: this only applies to improvements and bug fixes on some Clojure libraries, but: If I contribute back to a library I use, I can raise the probability that other people use it and contribute to it, thus ensuring that my dependencies keep fresh; and by sharing work I’d do nonetheless, I do not lose anything. On the other hand if I keep my changes to myself, then I do not gain anything, but I contribute to the withering of the environment Im building dependencies with.
Contributing bugfixes, sure, but that's different than providing a project you've written yourself for free to others and continuing to invest significant work in maintaining it.
> Why would anyone want to contribute solutions that others can profit off of for free?

For me:

* I profited off free software that could have been sold as well but was not (25 years BSDs and Linux).

* I rather see my code in use because it means it solves a real problem and it does so in a good way. If I wanted to invest time into turning this software into money, I could. If I don't, why shouldn't somebody else be able to invest his/her time to turn that into money for him/her?

> Why would anyone want to contribute solutions that others can profit off of for free?

Why does that matter at all? What's wrong with others profiting from something that you can't profit from yourself?

Most FOSS software that is commonly used couldn't be sold for a profit by itself. It wouldn't be used if it wasn't free. Yet, it marginally lowers the cost of software development. The compounding effect of that is massive.

Despite what the GP says, developing FOSS can open up opportunities that you wouldn't otherwise have had. It's just not guaranteed.

Well, perhaps it makes them feel good. Why is it weird? Some people volunteer at hospitals. I do not find it weird. In fact, I wish there were more people like them. :) Maybe the world would be a better place, who knows.
> And if you're doing it for any of those reasons, then stop doing it because you're missing the point.

Baah.. As long as you're doing a good job and writing good software, I don't give a flying fuck why you're doing it. And please don't stop OSSing because of random idealistic gatekeeping bullshit.

None of what I listed was idealistic. Don't work for free and expect to get paid or a job.
Who cares why they are doing it? There could be more than one reasons. One of those reasons could be showing it to their potential employer. It may increase their chances of getting hired. Of course it may also decrease.
> It isn't going to help your resume potentially.

Of course it will. I mean, this is like saying 'making beautiful pieces of furniture won't improve your career as a woodworker'. It's always a benefit to have projects in your portfolio in any kind of skilled trade, whether done for free or pay.

That's assuming you're making the equivalent of "beautiful pieces of furniture". There are quite a few people with open source contributions on their resume or their github account with repos that is not helping them, quite the opposite in fact.
So? If their code is of low quality, they can be filtered out based on that by the not-so-potential employer. Employers do not have to hire you, and not everyone knows how to write "good" code. If you cannot write code "properly", it will show one way or another. If you can, that is good, that will show, too!
I know a couple of recent graduates I've encouraged to volunteer. It would have been far better for them to get internships or work writing software on campus but that boat has sailed.

Hopefully they can get references out of it, some contacts, and that first 100 hours of professional coding experience. If not a job, at least the tools to get one.

OSS is a little rough for newbies because it can be pretty open ended, and having vague requirements can get us all in trouble, but it worse for people who don't have any coping mechanisms for ambiguity. Being able to close bug reports is an extremely necessary skill. Necessary, but insufficient.

There are other options like https://en.wikipedia.org/wiki/Code_for_America that should feel more like project work.

Have you done much volunteer work, and for long? I've been working off and on with such groups since I was 16, and in some ways the stories don't change for the successful ones (Anna Karenina again, perhaps?).

Volunteer-based organizations tend to end up with a small number of historians, regulars who show up and help glue the whole thing together. You get a few people who contribute intensely for a couple of years and then burn out because they aren't pacing themselves.

Then you get an army of wide-eyed energetic people who will move onto something else quickly. This is a very, very fat 'long tail' and as an organizer you have to get useful and durable work out of these people whenever you can. The names and faces keep changing on you. To do that you have to direct them, steer them into a project that is already thought up or exists but for whom not enough people are participating. Preferably something with some good optics so they feel seen (and so your organization is seen).

Because if they show up and you let them work on whatever, you get pulled in a million directions. There's no cohesiveness, no coherent story, and without those you lose your narrative, you can't recruit more people, you can't hold onto those 'intense' people who do a ton of the big work, and you disappear.

I don't know if volunteerism requires all three of these types, but it certainly gets them, and they all fill an important niche. Most of the people who are going to read your message fall into the short-timers section, and we need those although we sure would like to turn you into one of the other two groups.

This person is complaining that subsistence isn't enough?

News flash: Open source doesn't exist to pay your bills. It exists because you want others to benefit from your work. If you want to pay your own bills you should be selling something or working for someone who does.

That argument only has wings if the code in question is licensed with GPL.

Besides the point this person is making is that open source developers should start selling their stuff instead.

By the same token, we should have very low expectations from open source libraries/projects that aren't backed by big companies, or where the authors aren't living off consulting.

I've stopped relying on them entirely, unless they're very simple.

I'd argue the other way: hobby code is a product of genuine enjoyment and is probably better than the paid alternatives created to earn money.
Some people volunteer at a food bank or shelter and some people volunteer by writing/maintaining open source code. It's for the common good and volunteerism is a good thing.
Except there’s a big difference in people that go to food banks, and giant corporations that benefit from open source
That's why we have GPL.
Does the GPL do enough to protect us from private extraction of the commons? I used to advocate for 0BSD but at this point it seems like we need something like the AGPL or Parity.[0]

[0]: https://licensezero.com/licenses/parity

AGPL closes the SAAS loophole. Outside of that, what "private extraction of the commons" is left to cover?

Parity license looks like a super aggressive and untested version of AGPL. I can't see what benefit using it over AGPL would be.

Prosperity license is at odds with the point of free software and almost certainly untenable.

For a lot of server-side software AGPL is not enough either, should be API Copyleft License [1] instead.

[1] https://apicopyleft.com/

I'm one of the contributors to the API Copyleft License. Are you using it for a public project? I'd like to feature that kind of work on https://apicopyleft.com.
> but requires you to contribute source code for changes, additions, and software that you build with it, other than applications.

What does this part mean? Would you please dumb it down for me, perhaps with an example?

Keep reading! That is just the Purpose section, which summarizes the license. The specific sections affecting copyleft are Copyleft, Prototypes, Applications, and Contributing. I think they are slightly easier to read and understanding on the master branch of the development repository: https://github.com/kemitchell/api-copyleft-license/blob/mast...
> The purpose of this rule is to encourage cooperative development of this software, minimizing duplication of effort across competing substitutes.

Ah, I understand it now! Thank you.

That is interesting. I used to like AGPL but recently switch to advocating 0BSD. What made you switch away from 0BSD?
My gripe with copyleft was that it used copyright, which I wanted to avoid participating in. Unfortunately, this means that you're making it very easy for others to take your work, obfuscate it, and receive copyright protection for their "derivative".

My goal was to remove copyright from my work, but using permissive licenses seemed to instead mean "I'll give up my copyright protection, but you can take my work and receive copyright protection and sue others".

Do not the small developers benefit from open source? Startups that are not making money, even? Personal projects, etc.

The difference between the food bank and this is that food cannot be consumed by everybody, all at once. It's near impossible to make "free" software that cannot be used by companies that are profitable. Who would police "profitability" when there's no money involved? The best you can hope for is to prevent a profitable company from using your code. Chances are, if the code is useful enough, someone else will write something similar without the same restriction.

My take: If you're writing FOSS, you know what you're getting into. If you need the money to do it, you should plan for that.

It’s a little different. If some company gets food from your food bank and makes billions of it the volunteers may get a little annoyed.
Walmart and their ilk just don't pay a living wage, so their employees still need public assistance with food/healthcare.
Poor analogy. Food can't be copied for free.

Meanwhile, let's say a company makes billions using some piece of software that costs 10,000$ to write. You saved that company at most 10,000$, no matter how much money they will ever make. Most likely, you only saved them the license cost of the next best commercial option.

If you don't like the idea that your software could be used by someone who could profit from it without giving you anything, don't publish free software. Publish commercial software. That's the best test to see how much your software is actually worth.

You could argue that much open source work is like volunteering to serve food at the local country club. Sure, you're feeding hungry people, but there is something just a little bit wrong about that.

Personally, I'm getting more paid open source work than I have time for, all based on permissive licensing, but I might be something of an outlier.

> You could argue that much open source work is like volunteering to serve food at the local country club.

It's more like volunteering to pave the road in your neighborhood because you want to help your neighbors out, and also to make it easier for your friends to come visit you at your house.

But eventually, some local small businesses realize that they can use the road to get their commercial goods to the market faster. At first, you don't mind because they're not causing much harm. Why not let them use the road?

But eventually some international megacorps hear about the road and start to tell their trucks to use it too. After a while, some of the truck drivers start to loudly complain about the way the road was designed. "This road doesn't let us drive our trucks as fast as we want to. Please fix!"

Next time you're repaving the road, you spend some extra time to make it less curvy and easier for the truck drivers to drive fast, even though you don't own a truck and this doesn't really help your friends or neighbors.

Eventually, even more huge companies start using the road to bring their goods to market. Their complaints get more frequent. "This road isn't designed for our eighteen-wheeler trucks that we'd like to drive through here! Please fix it or we'll start using another road!" And on and on...

Eventually, you realize that you're working for free and this isn't about helping your friends and neighbors anymore. You start to tell friends in other neighborhoods who are considering building their own free public roads not do it (it's just not worth it). You recommend if they want to do it that they at least charge a toll to use the road. That way the road won't be overused by folks who complain and don't give anything back.

After word gets around and some time passes, the world has fewer public roads and the remaining roads require a toll to use.

You could argue that much open source work is like volunteering to serve food at the local country club.

Most of the worlds programming population doesn't live in a US tech center (unfortunately - gib visa plz?). As well as people from developing countries, there are students and hobbyists.

I guess the question is whether there SHOULD be developers who only make money as independent open source developers.

My gut instinct says no. Open source development should be funded by companies paying their developers to work on and maintain open source projects.

Developers are paid because what they write provides value to a business that will utilize that code to make money. This is true or open or closed source; many companies realize you get more value out of sharing coding resources with other companies to create shared, open source projects.

This is how most open source is funded, and that isn't bad.

> I guess the question is whether there SHOULD be developers who only make money as independent open source developers. My gut instinct says no. Open source development should be funded by companies paying their developers to work on and maintain open source projects.

What you’re describing is a future where open source is driven and controlled solely by corporate interests, and anywhere user needs or desires or freedoms run counter to corporate interests, they go unserved by open source.

That strikes me as a highly undesirable future.

> That strikes me as a highly undesirable future.

I'd argue that this is one of the most undesirable futures, and we should continue fighting however we can. Both Kyle and Feross are working their asses off trying to manifest sustainable open source funding and I've got nothing but respect and solidarity.

People can always work on open source software for their own needs... in that case, you can treat the developer themselves as a business 'funding' the development by working on features they desire.

I guess I just feel that the currency for funding open source is developer time.... you either contribute your own time or the time of developers that work for you.

> That strikes me as a highly undesirable future.

I imagine that is largely because the corporations here bring to mind faang and their ilk who use software to ensnare their users to whatever purposes they need.

But what if the corporations were of wider spectrum, more Fortune 500 and less silicon valley, whose goal is to create a good computing environment for their companies to flourish in. Then I think the scenario should seem much less dystopian.

> Open source development should be funded by companies paying their developers to work on and maintain open source projects.

What are the incentives for these companies to open source their code in this case?

de facto standards fasten development for everyone
Getting other people to also work on it (individuals and other companies)
Some of the most interesting and innovative open source software, at least in the JavaScript ecosystem which I am most familiar with, has been produced by eccentric, independent individuals who write open source because they love it, not because some megacorp pays them to do it and to represent the company's interests.

If these creative and brilliant folks could make a decent living writing open source software that benefits the commons instead of frequently seeking out contracts to write proprietary code for a single company, then we'd all have more innovative open source software to use. Everyone wins.

This has long seemed like a mug's game to me, and all the talk of "passion" and "community" and so forth strikes me as unconvincing.

It's such a scam, you work hard on something that tons of companies use for free. If you're lucky, you get a couple bucks in donations. Then, if you decide that you're wasting your life doing this, people yell at you because you transferred the project to the wrong person. And don't you dare mess with the license, you evil greedy developer! (Greed is ok for the companies that use your stuff, but not ok for the people whose efforts they build on top of.) The whole time people are giving you shit for not solving their particular issue, not to mention the crappy things people say about the `standard` project itself.

It's signing up to be treated like a donkey, branded as something virtuous and righteous. No thanks.

But somehow feross is the asshole. What a world.

This "article" appears to be an ad for a license selling business.
I don't know where you get this idea. Just because this essay is hosted on License Zero's blog doesn't make the content less interesting or useful.
Conversely just because the content is interesting or useful doesn't mean that it isn't an ad
Just because the content is interesting and/or useful doesn't make it not an ad.