We need better ways to fund Open Source projects. We all benefit tremendously by them. I think, this is one way it can work. Companies pledge to donate $X USD amount per year per software engineer (SE) to a foundation (or whatever legal entity). Then each SE is able to choose which percentage of the money goes to which projects. Channeling the money to the projects that they themselves find more useful. It makes sense because companies benefit but it is the SEs that know what they are using most.
>We need better ways to fund Open Source projects.
Yeah well, at least in the EU, we could start funding the awesome OSS projects that already exist around here, like KDE, OpenSUSE, and many more, with some of those billions of taxpayer money the EU has promised for "innovation", instead of shoving them in the pockets of publicly traded 100-year-old corporations like Siemens, VW, Daimler, T-Systems, Dassault-Systemes, etc.
But of course, that would only work if those funds were actually for innovation and not a hidden form of wealth transfer and corporate charity.
I feel this misses a larger point: a large chunk of valuable OSS work isn't about innovation, but about maintenance: keeping the same things working in a developing ecosystem.
As long as we keep framing all software development as "innovation", there will never be enough money for the infrastructure underpinning the real innovative work, and that both makes it appear that innovation is much more expensive than it really is, and that software development is somehow maintenance-free.
Funding bodies should consider spending money on boring maintenance and reimplementation of critical infrastructure in languages safer than C (e.g. Rust, but there are other interesting alternatives). We would avoid many future fiascos.
Reimplementation in rust sounds like you are trying to take much needs critical infrastrcture money and spend it on a fun project with small real world benefits.
Boring things like documentation and security patches would go further.
> Funding bodies should consider spending money on boring maintenance and reimplementation of critical infrastructure in languages safer than C (e.g. Rust, but there are other interesting alternatives).
And here's where it all breaks down - the most vocal proponents of how the money should be used would be those who want to see a particular tech stack survive/grow.
The way it is right now, being far from ideal, is better than having the loudest activists picking the winners.
One of my bigger wishes is that any software paid for with tax money needs to be FOSS. Of course you can't do the switch easily for with all the legacy systems running everywhere, but there must be some path from paying SAP and Microsoft Gigabucks in perpetuity to building an ecosystem of free software that everybody can use.
> but there must be some path from paying SAP and Microsoft Gigabucks in perpetuity to building an ecosystem of free software that everybody can use.
Simply have a law that any software the state buys, if not OSS already, becomes time-delayed OSS: after 2 years it becomes open source.
If Microsoft et al don't want to sell software on those terms, fine, then no country within the EU (or state owned entities) will ever buy any of their software.
This idea is probably far too sensible for the EU to ever adopt.
Alas, I wish it was, but it's not sensible. Govts run at enterprise scale, and need specialised software, and specialised services to manage that scale. And in some areas that simply doesn't exist as OSS.
So then you have to have your law carve out exceptions. Which means you need criteria to determine when you have to have OSS, and when you can use off the shelf.
Or conversely all Govts at every level need herds of programmers to tweak OSS code to make it fit. My city is 10000 people so we need a rate calculator that matches our bylaws, over there is a city of 1000000 people who need a very different rate calculator.
So every town has to hire a programmer to tailor some OSS program - but hey, we don't need every town to have a rates-calculator domain expert - we can say hire 10 of them between us, and split the cost. Yay, a central it dept, with builtin monopoly, at govt pay, can't be fired. What could possibly go wrong with this model.
No wait, we'll make them compete, pay them only for success, negotiate rates, and we end up with? A commercial proprietary software business that's motivated to deliver... With experts at doing this one task at scale. Rinse and repeat for hundreds and hundreds of departments...
> Or conversely all Govts at every level need herds of programmers to tweak OSS code to make it fit. My city is 10000 people so we need a rate calculator that matches our bylaws, over there is a city of 1000000 people who need a very different rate calculator.
>
> So every town has to hire a programmer to tailor some OSS program - but hey, we don't need every town to have a rates-calculator domain expert - we can say hire 10 of them between us, and split the cost.
Why would each town need their own? It's FLOSS, so it's perfectly feasible to have the state maintain FLOSS systems, in which case you'd just need a small team that handles this functionality.
> Yay, a central it dept, with builtin monopoly, at govt pay, can't be fired. What could possibly go wrong with this model.
When the alternative is a builtin monopoly, at govt contract costs, that can't be fired but can also hold the state to ransom with proprietary software, then that central IT dept at state level looks a lot more desirable.
In fact, the only difference between the two would be that the FLOSS systems would allow the state to invite different vendors to bid on and compete for modification of the FLOSS systems, with all the modifications open so that the state can switch to a new vendor if necessary.
>> so it's perfectly feasible to have the state maintain FLOSS systems,
um, no it's not. The state does not have the skill set required to duplicate the functionality provided by the SAPs, IBMs and Microsofts of this world. (Not to mention the other 5000 or whatever bits of software in play.) And it does not have the skill set required to build a team of people who could acquire or duplicate this skill set.
Or put another way, Enterprise software companies have a 30-40 year head start in this space. Good luck catching up.
What it does have is a love for bureaucracy so no doubt they'd love to give it a go - hiring an army of HR/Product Managers etc to oversee another army of programmers - either on govt payroll or as contractors. All hired on a principle of "lowest price wins".
>> in which case you'd just need a small team that handles this functionality.
I think you underestimate the sheer scope of functionality in play here. The size and diversity of the user base (ie govt employees), the breadth of software encompassing every utility, every browser, every os, every niche tool and product they use. To mandate this must all be OSS would be an interesting (and expensive) play. And that's _before_ we add "govt overhead" to everything and everyone...
>> When the alternative is a builtin monopoly, at govt contract costs, that can't be fired but can also hold the state to ransom with proprietary software, then that central IT dept at state level looks a lot more desirable.
Does it though? Firstly it's really not that much money in the grand scheme of things. Secondly when the OSS software project fails, as most software projects (commercial or OSS) do, who carries the can for spending all that money and having nothing to show for it? Politically that would be insane. And for what? So instead of being beholden to commercial suppliers they are beholden to a nice big internal new govt department?
Honestly, I think commercial companies will do it better for less money.
>> In fact, the only difference between the two would be that the FLOSS systems would allow the state to invite different vendors to bid on and compete for modification of the FLOSS systems, with all the modifications open so that the state can switch to a new vendor if necessary.
How would the state choose between one vendor and another? Who will decide if the vendor did a good job or not? Which FLOSS system is even in the running to replace serious bits of Govt software? If there are good, well supported _free_ competitors to [SAP et al] then why do commercial businesses still use [SAP]?
If business, who prioritize the bottom line think [SAP] is worth the money, why should Govt spend even more money for less return? Repeat the same question 500 or 5000 times for all the bits of software a govt uses, and you'll get an idea of the absolute monster of bureaucracy this would create.
>> When the alternative is a builtin monopoly, at govt contract costs, that can't be fired but can also hold the state to ransom with proprietary software, then that central IT dept at state level looks a lot more desirable.
>
> Does it though?
Well, yes. The only difference should be the license the software is provided under. The result of the current system is all the disadvantages of FLOSS + the lock-in effect.
> Firstly it's really not that much money in the grand scheme of things. Secondly when the OSS software project fails, as most software projects (commercial or OSS) do, who carries the can for spending all that money and having nothing to show for it?
Well, who carries that now? Because all the software is supplied without any liability to the vendor. Right now if a SAP rollout is a complete failure, SAP's responsibility ends with "Sorry".
> Politically that would be insane.
I don't understand why: lets say SAP delivers a FLOSS system because that is in the requirements - how does the politician get the blowback if it all goes wrong, compared to the SAP proprietary system?
> And for what? So instead of being beholden to commercial suppliers they are beholden to a nice big internal new govt department?
Firstly, they are not locked into "commercial suppliers", they are locked into "a single supplier with the power to arbitrarily raise prices and lower quality at the same time".
Secondly, while the state might be beholden to a new internal department, they have control over that department. They might even outsource that department to a commercial entity if they so wished, and keep only a minimal headcount of lawyers to ensure that the FLOSS license is adhered to.
>> In fact, the only difference between the two would be that the FLOSS systems would allow the state to invite different vendors to bid on and compete for modification of the FLOSS systems, with all the modifications open so that the state can switch to a new vendor if necessary.
>
> How would the state choose between one vendor and another?
The same way they currently choose between different proprietary vendors.
> Who will decide if the vendor did a good job or not?
The same way they do it now for proprietary vendors.
> Which FLOSS system is even in the running to replace serious bits of Govt software?
They can decide that the same way they currently decide which proprietary vendor gets the contract.
> If there are good, well supported _free_ competitors to [SAP et al] then why do commercial businesses still use [SAP]?
Who cares?
My point is that the practical result of the current system is that the requirement for all vendors usually boils down to "Must pay license fees to $VENDOR", where $VENDOR is Microsoft, SAP, etc.
If the requirement is changed to "All software must be provided under a FLOSS license", then the state can switch vendors at will.
This does not prevent those companies (SAP, etc) from providing systems. It only means that they cannot hold the state to ransom for future modifications of those systems.
Really, there is no downside to the state adding a single FLOSS requirement to all the existing contracts. They can even grandfather in existing systems so that everything continues working, and only make it a requirement for new systems, or only for new modifications to existing systems.
> Govts run at enterprise scale, and need specialised software
If it's specialised software that's written on a one-off basis, then of course it can be open source.
> Or conversely all Govts at every level need herds of programmers to tweak OSS code to make it fit.
You seem ot be arguing that OSS code needs "herds of programmers" to tweak it, but that proprietary code doesn't. I don't follow why you think this is so.
> My city is 10000 people so we need a rate calculator that matches our bylaws, over there is a city of 1000000 people who need a very different rate calculator.
Either both cities need something different, in which case it needs to be written differently every time, and that's exactly the same whether its proprietary or OSS, so OSS is no more costly or time consumringf to do.
Or, they both need the same code, so the OSS program doesn't have to be partly re-written for each city.
I would have thought that if the program is well-written, then changing things like tax rates would just be a value that is entered somewhere, e.g. on a GUI or web interface.
> Yay, a central it dept, with builtin monopoly, at govt pay, can't be fired. What could possibly go wrong with this model.
Then that's the same as the proprietary software model... except that the code is open source so if one cite doesn't like those terms they can update it separately.
> No wait, we'll make them compete, pay them only for success, negotiate rates, and we end up with? A commercial proprietary software business that's motivated to deliver... With experts at doing this one task at scale.
No. Doesn't work because they proprietary model is to write the code once then sell it lots of times. Once they've written it, they can sell it lots of times at something only slightly less than the cost of writing it each time, because that's the same cost as for each individual city to write it. So if a country has 100 cities, they end up paying 100 times as much with the proprietary solution than OSS,
IMO, doesn't really matter. Even if they keep buying new software that gets published as OSS after 5 years, it's still benefits the public.
Also, other companies could reuse the code, even if it's after say .. 3 years. It would also be a boon for transparency, and also lower the bar for alternative suppliers.
Over here, it's almost a meme that the government procures software that noone but the original supplier has a right to modify, which naturally results in enormous maintenance fees. Often they even procure new SW, because it's cheaper than the maintenance fees of the old one.
I don’t know the current status of implementation since the policy was published mere months before the Obama/Trump transition. But I wouldn’t be surprised to see it make progress again under the Biden administration.
I think requiring source code may be prohibited by so called "free trade agreements", and even enforceable by arbitrage, in the name of corporate freedoms and guarantees over governments that dare disagree.
Regardless, we should find a way. Neither FTAs, "capitalism", nor intellectual "property" should be above public good.
I don't think funding should be the sole determiner here. We don't expect any company which raises VC money to give 100% ownership of their code to the VCs.
Labor needs to be rewarded, not just investment capital.
But we do expect any company which raises VC money to pay out to the VCs according to their shares when a buyout happens. That's because VCs don't buy code, they buy a risky promise of future wealth.
By contrast, public funding for code is buying code (at least in theory).
Actually no, they don't buy code. They buy the people to implement a system at scale, and keep that system running and users trained. The code is negligible.
Take Windows desktop. It's designed to run at scale, out the box, when you have 10 000 employees, and any hardware, printers, whatever. A govt isn't buying Windows its buying active directory, and the fact that every new hire knows how to use it already. And a million other things windows does at scale (technically and humanally).
>> By contrast, public funding for code is buying code (at least in theory).
Funding developers is a risk as to weather the results will be what you hope. Paying for software is actually paying rent on something already complete. A typical software company uses the rent they collect on prior work to fund the newer risky work. The big companies are mostly doing the rent thing to pay shareholders.
I don't know if SAP contributes but Microsoft pays for C#, VSCode, and other open source projects. And further they support open source by providing github, github's free site hosting, and github's free CI.
The suggestion wasn't that the government should only buy from companies that have done or are doing some open source, the suggestion was that the government only finance FOSS.
Also, nobody told them to buy Github. It wasn't a charitable acquisition.
Microsoft also pays salary for several people who are core Python contributors, and sponsor PSF and PyCon.
(I'm sure there are similar arrangements for other projects - that's just the stuff I'm familiar with.)
However, Python is an example of a large and prominent OSS product. Generally speaking, stuff like that doesn't struggle to find sponsors. But there are all those countless small OSS projects that get used by for-profit companies without any financial support for their maintenance. There needs to be some arrangement to accommodate those, as well.
I can't agree more. I find it nonsense that EU governments and offices depend on an non-EU entity so much. FOSS alternatives could be forked, improved and maintained from EU money, public entities could use that by default, and they could also be taught in schools as the de-facto office standard, instead of the currently entrenched Microsoft stuff. This way EU would pay developers, advisors, teachers from Europe to create, maintain and teach software that actually supports independence from foreign powers and instead cultivates its own software culture.
The EU is funding lots of new projects struggling to get off the ground though; you'll encounter lots of them on the Fediverse: https://mastodon.xyz/@ngizero
Don't know why you're being downvoted for stating the truth.
In Brussels (and all over EU), many companies are founded just to leach off EU funds or to advise you how to do it, for a fee of course. They're basically red-tape companies, and it's big business in Brussels.
Look around on LinkedIn and you'll see a bunch of serial entrepreneurs with fancy titles and pompous resumes, who found a new company every couple of years, each tailored to a new innovative way of sucking that EU grant money and producing zero real world results, other than a fancy looking website about the vision of the company, and writing lots documentation.
And, honestly, I don't blame them, I blame the EU politicians for being monstrous idiots.
Disclaimer: I'm working full time at Nextcloud on pure open source software and on my free time, I (co-)maintain many KDE apps, one of them currently sponsored by Nlnet.
Nlnet is a very nice initiative but let's be realistic the funding provided by them can support one or two developers working part time but not a team of developers working on a product full time.
What we need is more small companies that sell services to governments. But this implies sales teams, support contracts, and a lot of organization. It's not something that every one want to do and as the skills to start.
Absolutely, there's not whole organisations maintaining open source software that are sustained by EU funding! I was merely pointing out that the EU isn't just shoving taxpayer money into the pockets of multinationals.
I've been wishing for the UE to take care of the Mozilla Corporation for quite some time. This would reduce the influence of Google, and also force the Mozilla Foundation to stop using their money to sabotage Firefox and paying huge salaries to higher ups. I wish the EU would take tech seriously. Have people in the TC39, have people on the Rust board, have people working on Linux, things like that.
I've long been impressed by https://simplesamlphp.org/ which is led by UNINETT, a state-owned company responsible for Norway's National Research and Education Network.
It's a serious competitor to Shibboleth in the SAML space.
The problem with government solutions is that they are so easily corrupted. For example, here in Washington State, USA a law recently passed mandating long term care insurance. Sounds nice right? The reality is that this will be funded by an income tax that will then pay $116,000 per year person in a long term care facility. I have a friend who's dad owns a big chain of these, and they are profitable beyond any of our wildest imaginings. What started out with the legislature's nice intentions is really just a massive pork benefit for old and corrupt businesses.
Unless you can back this up with a threat of "we won't continue maintenance unless you pay up", this strategy is unlikely to make much of an impression. The OSS community has demonstrated to be quite willing to work for free, so why would you suddenly start paying them?
Big organizations only change course when something is already broken and it is hindering the organization. In places where everything is just humming along, nothing changes. (This often applies to careers as well btw)
Software is much like mathematics. Who is paying mathematicians? Both government and industry.
A lot of mathematics research has no immediate applications but still is valuable. Software is more practical, governments should pay for creation and maintenance of "infra-structure software", which no single corporation is willing to pay for. Why aren't they? Because the end-results benefit everybody.
So I think the discussion about "better models to finance open-source" is misguided. Government(s) should pay for it, as much as it has a positive return on investment in terms of better infra-structure.
That is a matter of politics, not "better models". Will the government invest in infra-structure? That is a political question and largely depends on who you vote into power.
I believe governments should be different from corporations, and their goal should be to empower the people that drive the greater good in society, vs exploiting those same people's time for capital
to define it i would focus on the contrast: the return of an exploit goes directly to the exploiter, the return of an empowerment is spread among the group of supporters who funded the empowerment
exploitation is a one-to-one mapping, while empowerment is one-to-many?
seems to feel like "the difference between a religion and a cult...."
We use a ton of FOSS software. We pay thousands per month to AWS, Datadog, etc... but nothing for the "free" software we use.
People are generally in support of the idea, but then it falls away as a priority, and there's the question of which projects to fund and for how much. We'd have to talk to the finance department, figure out a budget, etc. So it doesn't happen.
If you have a particular project to support, ask a dev if they can offer a "support contract" (even if that only means "clients can send me, the developer, an email if they have issues and I'll reply within 3 business days, I'll also take care of releasing at least once every 6 months"). That way there's something for the finance department to work with.
Once the dust settled, do the same with the next project.
Yeah, this ends up being compelling from the business side as well. If you have mission-critical systems running on OSS software then it is absolutely worth it to have access to the maintainers in case you run into serious issues or need a bugfix prioritized.
From the maintainer side it can be a bit tricky though. Typically the finance will want to pay another corporation, so the maintainer would need to create some sort of legal entity to bill with. The other potential issues would be around legal liability in case something goes sideways. You run the risk of getting sued if you don't provide a level of support that some corporate client is expecting.
Hire the core maintainers of projects which are mission-critical.
It's an old idea, and a proven one. Anecdotally, I made my living as a such a hire for nearly a decade.
Another good plan, mentioned elsethread: have your current devs contribute. Opportunities to contribute always arise, and contributing is in the company's interest. The only thing typically standing in the way is codifying an open source policy (which is a good idea for large organizations.)
That question of targeting is important: I would argue that the most effective way most companies support open source is by buying Red Hat or Ubuntu licenses simply because it's a model which every accountant understands and you can make a single payment which will filter to tons of projects either in the form of direct employment of maintainers or patch contributions.
I'm aware of various attempts to collect payments or offer support plans but I don't think anyone's hit a combination which is as corporate-friendly. Everyone understands the idea of paying for support and it's usually much easier to give six figures to one party than 3 figures to a dozen projects, _especially_ when the latter doesn't get you some kind of guaranteed benefit easily explained to the accountants.
Companies could pay taxes rather than pay politicians less to not-pay-taxes (1).
1. Taxes could fund grants that instead of being passed around among friends of friends at certain universities are paid to those who provide the tools most useful to the most people (2).
2. People could be defined as actual living, breathing people, not corporations (3).
3. Corporations that complain about #2 could have their executives held personally liable for crimes, frauds, etc.
These things are human problems, not technical problems or infrastructure problems. There is nothing stopping the US and UK from doing them (as for other countries, there's the US and UK intelligence services mulling around in their back yards to stop anyone from doing them...)
I can't think of a more inefficient way of paying for OSS than giving more money to congress to have them divy it up between various pork barrel/military spending and hoping it eventually finds it's way into a competent programmer's hands.
Maybe just giving random people money in hopes one of them could become an OSS programmer, but even then, debatable.
I think it makes a lot more sense to have the companies just hire people to work on OSS more often.
I agree with you. That's exactly what would happen (in the western democracies that exist now, and I use the term "democracy" in the most tongue in cheek way).
Nonetheless, the point stands that the only thing stopping people from doing those things effectively is the people themselves.
1. Probably starved to death or were shot shortly afterwards.
2. Crucified.
3. Forced to spend over a century paying reparations to the slave owners for their lost slaves resulting in one of the most impoverished countries in the world.
I wrote a post about this! the problem is not that there is no money, or that they don't want to donate, it's that there isn't a good way for them to donate.
You’re on target with this. Companies can’t contribute to random OSS on GitHub. In order to receive donations from large corporations (money and/or commits), OSS must be affiliated with a nonprofit that is properly structured and has recognized governance practices in place.
My sense is that a large company prefer, and feel more comfortable, partnering with organizations like the Linux Foundation or Apache Software Foundation.
I love the idea of tidelift, and wish I could convince my org to use them. Unfortunately, $1500/month is pretty steep. It's a hard sell when competitors are an order of magnitude cheaper.
I like the model of charging for open source software, perhaps with slightly better support in return. It doesn't have to be as serious as the RedHat model either.
Something like how Bitwarden does it seems reasonable to me. You can run your own server if you buy a license, or you could just take their source and comment out the license check, but the license is so cheap so why bother?
I do wish they had a lifetime license though. I hate subscriptions.
Donations are very unnatural for for-profit companies, unlike payments for services, requiring a lot of work to prove the legitimacy of a donation.
Furthermore, funding public goods with donations creates ethical issues: in a competitive environment freeloaders have a competitive advantage over donors.
Is there a way to contribute equally and fairly to public goods? Yes: taxation.
The same way it's been done when public money funded all the groundwork for semiconductors and early computers, GPS, GSM, satellites, fiber optics, LCDs, touchscreens, spread spectrum, particle physics, space exploration, industrial chemistry, nuclear power and so on.
You create international projects and hire very skilled people to decide funding allocation and hired skilled people to do the work.
Without the distortions caused by the interests of for-profit companies (or the whims of some billionaire) you have a more efficient innovation process.
DARPA basically pored money into the very bleeding edge of tech, not the day to day stuff. They are interested in innovation because they want smarter weapons.
They essentially funded R&D then left private companies alone to profit from that R&D.
So I don't think that model applies to say a web site analysis tool, or another text editor, or a cutting edge todo list app... You know, the boring OSS software we use everyday...
To be fair, you often end up with the whims of some billionaire replaced by the whims of some bureaucrat. Thus, a key part of any such arrangement is transparency and accountability before the society it's supposed to benefit.
Sure, but even a corrupt and poorly implemented democracy is more transparent and accountable to the public than any private company belonging to said billionaire.
Being removed from the public eye is the whole point of the word "private".
I just convinced the company that i work for to do exactly this. We’re small so there isn’t a lot of extra cash lying around, but we just started with a low number and we’ll increase it as we go along.
I also wish companies would just adopt the even simpler solution: just "donate" developer resources to a project that that engineer thinks is cool.
If the tech giants would budget N days per month for developers to contribute to projects they like, I think that would a) help morale, and b) help the open source world.
For 30 years I've been hearing how open source needs proper funding, so far with little success.
Everyone agrees that open source is valuable, but at the same time its very model removes the most direct way of extracting that value from the user - ie by primarily selling the code (in source or binary format).
Compare this to proprietary binary software which has identified "this software has value, this is the price..." for them it's not complicated - create value, sell value.
Conversely with open source it's create value, give value away, try and get customers to pony up cash for some other reason (support, donations, whatever) which is a hard sell because that is minimal added value.
In my career I found a balance - I ship code not compiled binaries, so users are free to do whatever they like, they can ship binaries, but not my source code. That works at personal scale, and I make enough to keep working. It's not ideal, but I charge for the value, and there are lots of honest users.
Big projects, Linux etc, get enough volunteers and funding. Some (chromium et al) are corporate sponsored. But for the long tail of one-man projects perhaps a pure open source model is not the best idea. Maybe there's space for something between closed binaries and source code for free?
I've lately become convinced of the same thing. An idea i've had is instituting some sort of digital marketing tax (which doesn't reach consumers directly) and using the money raised to directly fund open source projects (especially desktop OSS projects which have much less resources than server oriented ones). I'm thinking straight up paying for developers salaries directly as long as you can prove you are working full time on a OSS project that has a minimum user base, as long as the project is completely non-commercial.
Obviously each country would only hire their citizens / permanent residents, so it can also be considered a jobs programs of sorts. 200 billion dollars were spent on advertising last year. A 1% tax would net 2 billion a year, assuming your average OSS developer will work for 150,000, that's 13,000 developers you could fund with that tax. This also avoids Mozilla type situations who need 300 million a year to develop a browser by directly paying for developers instead of funding companies which spend on marketing, executives, and god knows what else.
A) prove I'm working on OSS full time? What is full time? 40 hours a week? 5 hours a week? I'd this govt dept gonna have to hire managers, code reviewers?
B) am I govt employee? Do I get benefits? Vacation time maybe? Medical? Will the govt need to hire HR people to manage those benefits?
C) how do i apply to get this job? Who evaluates my application? What if there are 26000 initial applications and 1000 more a week after that? More HR?
D) how long is this contact for? Month to month? Life? Somewhere in between? Can I be fired? Who is evaluating and firing me?
E) how many users is a minimum user base? A million people? What about niche software like hospitals or train operators? How do i begin to prove number of users? With a mechanism that can't be gamed? If those numbers drop can I be fired? If someone forks my project and can claim to be more popular can I be fired? How many forks of my project will the govt pay for? Is someone deciding which forks are more worth?
I could go on but you get the point. Distributing 2 billion is expensive. My guess is that half or more will simply go to funding this new department. The best jobs program to come out of it will be in the new govt HR department. And recipients of this new money will get to spend half their time writing reports on what they worked on, user numbers, and all the good things dutiful employees do...
I like the idea (and even asked for something similar at some previous jobs), but it can be easily gamed. I could for instance just send the funds to myself or to a friend.
I am currently favoring the https://gitcoin.co model: individuals make donations to the projects they want to support, companies contribute to the fund only to match the individual donations, and quadratic voting rules determine how much each project ends up receiving in the end. Quadratic voting works to ensure that no single whales benefit from the matching funds and that the distribution is more even.
I've also have been contributing some of the BAT I receive from Brave to creators that are registered and I'd like to support (hi @geerlingguy!). It seems that if more people did that we could put some of the money from the ad industry into good use.
> Companies pledge to donate $X USD amount per year per software engineer (SE) to a foundation (or whatever legal entity).
The tides are slowly changing
Indeed have a fund[0] for this, and other companies seem to be taking the same approach. The disadvantage is that funds are restricted to projects used by the business, therefore this focuses more on infrastructure and development tooling rather than end user applications.
Google has an Open Source Peer Bonus[1], where a Google Employee can nominate external OSS contributors to receive a payment
This resonates with me so much. Yes, we absolutely need better ways to support FOSS. The companies I've worked with never contributed any funds to FOSS, and very rarely contributed the code back. It felt so unjust, I started working on (what I think might be) a decent solution for some FOSS projects — https://srv.io/open-source-developers. The MVP is up and running, not taking any payments yet, but feedback from developers has been nothing but positive. If you'll have a moment to check this out, please let me know what you think. :)
I've been tracking the problem 'Monetizing open-source projects' and possible solutions on my problem validation platform[1], Can I quote your comment there? Or better if you're interested you can comment there yourself.
Could we popularize versions of popular open source licenses (MIT, LGPL, etc) for which commercial entities with positive revenue are required to donate X amount?
I keep hearing this narrative about "We need to help open source developers" but it feels as empty as the narrative around gender and race diversity in corporate environments.
People within big corporations talk about the problem as a substitute for actually solving it. They could easily solve it. It would cost them very little. They just don't want to solve it.
Big corporate directors hate open source developers. They think we're all a bunch of communists.
They don't want to incentivize value creation via open source.
Instead of trying to figure out how to leverage network effects to capture some value from open source and help grow innovative ecosystems, they'd rather smother innovation and incentivize cronyism, dirty politics and bureaucracy instead.
Big corporate doesn't hate open source. That's a myth OSS promotes because it suits the narrative of being an underdog.
Mostly big corporate (ie the whole world outside IT) has no idea what a software license is - if you polled all the workers at Wallmart they'd look at you blankly - and I'm talking management here...
99% of companies don't pay for their OSS because its free. Companies don't make donations to suppliers. They pay the sticker price and move on. Wanna give it to me for free? Great. Wanna charge me for it? Great. But give it to me for free, then expect me to suddenly start donating? How am I supposed to explain that to the board and shareholders?
If you want companies to pay for your work, slap a price tag on it. If you want to give it away for free then do that. But don't expect companies to create a new funding model for you - that's not their business.
> If you want companies to pay for your work, slap a price tag on it.
Without VC funding and personal connections to insiders, no corporation will ever work with you no matter how good your product is and no matter what the price tag is.
Open source used to be one of the very few ways to get a foot in the door if you didn't have personal connections to insiders. Doesn't work anymore. It's a red mark. They severed the last remaining meritocratic mechanism for earning money in the tech sector... Now the only way to get money is through prostitution or fraud.
>> Without VC funding and personal connections to insiders, no corporation will ever work with you no matter how good your product is and no matter what the price tag is.
That may be your experience, but it's not mine. Then again I said "companies" and you are referring to "corporations". I am selling to lots and lots of companies.
I'm also no longer a one-man-band - the larger the company the more they care about a lot more than just this moment - they want some assurance about support etc.
Open source used to be one of the very few ways to get a foot in the door if you didn't have personal connections to insiders. Doesn't work anymore. It's a red mark. They severed the last remaining meritocratic mechanism for earning money in the tech sector... Now the only way to get money is through prostitution or fraud.
This sound great! Unfortunately many companies would rather exert influence over an open source project by writing a cheque with conditions. Letting each of their SEs pick and choose means it's less likely they get their company specific obscure feature added.
The problem with companies contributing to existing open source projects is that it creates even more unpaid labor for the maintainers, who now have to review and discuss and commit to future maintenance of those contributions.
Meanwhile they still aren't learning any money to allow them to commit more of their own time to the projects!
Depends on what you mean by contribute. If you contribute by hiring the maintainer to do maintainer work then that falls in the great company category. If you contribute by just shoveling a bunch of patches at already overworked maintainers then not so much.
If money is donated you can bet that the giver will have some input on the work. It's human nature. If you want FOSS maintainers to be paid a living wage the likely outcome is that some percentage of the givers will have sway or defacto control of the project. At least employing the Maintainer makes that plainly visible instead of hidden behind a screen of deniability.
Besides because of the license FLOSS has a built in escape hatch if you don't like the direction a corporation is going. I recognize your concern I just think the risk is far lower than you do.
I see it the opposite way. If a company hires a core maintainer (often the only maintainer), they have huge amounts of power over the direction of the project as they can threaten to fire the maintainer who is now dependent on the company for income.
Contributing improvements externally allows the project to remain independent. And if the maintainer is overburdened they can decline the patches or postpone review. Nobody is forcing them to accept the changes.
Do you any evidence this is is common? Plenty of heads of open source projects are hired by large companies. I've seen zero evidence of them not remaining independent but maybe I'm just unaware of those cases.
Gave you really seen that happen a lot? I can't think of many examples off the top of my head of open source project heads being hired by a company and given free reign to continue working exclusively on their project.
I don't know how you would see the evidence of the company imposing their will on the project - that's not likely to happen in public. It's also very likely to happen without any explicit influence taking place at all.
If a company hired me to work full-time on one of my projects, and I had to pick between two competing priorities for my time, I would naturally take my employer's own preferences and current challenges into account when making that decision. I wouldn't even consider that to be a bad thing.
It doesn't have to be full-time. The maintainer can be hired as a part-time contractor, or even consultant, and the contract can be specific to the project in question.
The problem with money translating to power is not unique to this arrangement, in any case. Donations can be similarly withdrawn, after all, so they also create an implicit bias. The only way to fix this is to make it so that people don't have to rely on such sources of income to sustain themselves.
Many projects have a governance structure which allows for contributors to become maintainers.
Projects which don't have such governance are self-limiting in terms of [popularity x complexity]. At some point, tensions arise as a complex project which cannot scale its maintainers and cannot service all of its users.
Open source devs don't owe anybody support, but the marketplace doesn't owe them popularity either.
I just think this isn't true. The reality of the situation is almost nobody actually wants to maintain anything unless they are paid to do so; people just want to throw you patches and have you accept them and then never contribute again. Very, very few developers actually want to maintain anything. The trust barrier is also typically high. I don't just hand out a commit bit for no reason. This is all cultural, sure, but it is what it is. Maintenance isn't fun and people don't like it.
From experience the ratio of random drive-by contributors to people who regularly contribute high-quality code to the point of qualifying as a "maintainer" is something like 20:1 or worse. That doesn't mean they become maintainers, just that 1 out of every 20 might have the chops, if they dedicated to it. This is true even of corporate contributors from well staffed companies; they only want me to accept the patch so they can do something else. I have literally had corporate engineers file reports to me saying "Please do this" (not maliciously, mind you) and when I respond "I don't have time", but actually knew the person in question enough to follow up with "But I would trust you to do this if I added you as a maintainer, since it's not hard", and they still rejected it as, effectively, "too much responsibility." Didn't even get to the point of whether their work would let them have time for it or not. They have no interest beyond that, I can't blame them in a sense.
The idea that most projects actually have enough well-intended, frequent, sufficiently informed contributors to merit any actual "governance" structure at all beyond "Whatever the one or two authors do to make it all work" is completely detached from the reality of my own experience, is all I can say. And that's the reality for most open source projects that aren't stupidly famous, have literally zero monetary funding, and are still very important.
Counterexample: Apache Software Foundation projects, and projects elsewhere which have adopted ASF style governance or something similar.
While there is surely a long tail of Open Source projects which don't have (and shouldn't have) such a governance structure, many of the most widely used projects do. The bargain that project founders make is giving newcomers a real governance stake and thus ceding some control over the project, in order to make it worthwhile for contributors (and their employers) to invest — with some contributors eventually becoming maintainers.
> The reality of the situation is almost nobody actually wants to maintain anything unless they are paid to do so
True. And that's perhaps why ASF-style governance has found a niche in Open Source: it provides one solution to a problem often seen as intractable.
> The reality of the situation is almost nobody actually wants to maintain anything unless they are paid to do so
But the whole thread is about contributions from companies, where the employers are paid to do the companys biddinf. And while individuals might be apprehensive about doing maintenance, I see less reason for companies to want to avoid maintenance.
I've just dedicated the best part of 2.5 years to working on my open source project[1] almost full-time. During that time I've managed to rewrite the entire library from scratch, discover a new purpose for its existence and (very selfishly) have a lot of fun with the library, pushing its boundaries and re-evaluating its 'API' as I discovered/explored the world of generative art.
Sadly my personal funds have run out and I've not been successful finding sponsors etc. But the work has helped me land a new/exciting full-time job so I've wasted nothing through my endeavour. I wish Will McGugan all the best at the start of his adventure, and hope he has as much fun as I've had over the next year or two!
The title made it already clear that this is an instance of "I am fighting the good fight, so please give me your money." I am an open source/FLOSS enthusiast since 25 years, but such calls still sound pathetic to me. These days even more then 10 years ago. Its a bit like going "I volunteer as an ambulance driver, do you have a few dollars?" I can see that some people dream of becoming financially independent from just coding open source. I have dreams as well. But the truth is, only a very select few ever reach that point. Joey Hess with git-annex comes to mind. I guess he just hit a nail at the right time, and wrote something that many people actually use. But if you're just that tad below the "everyone knows your tool"-line, you will never ever make your living from donations.
Nonetheless, you do seem to acknowledge that it’s possible while saying one should not even try. And yet this is oblivious to the fact that the only people who succeeded were among the people who tried in the first place.
OK, lets put it another way. If everyone who deserves support for their work is going to be posted on HN, its going to take a long time until the last one gets their money.
Does Will have an obligation to create a sustainable funding solution for every person who is doing important work? Or does Will just have an obligation to make their personal niche within the world sustainable?
To me, if Will is trying to build software that is genuinely valuable to people, and if people are willing to give them money so that software continues to exist, then that's enough. I don't think Will is also obligated to solve Open Source funding on a systemic level. "Do things that don't scale" is still often sound business advice.
This is shifting rapidly. We are not living 25 years ago.
Kickstarter initiated a trend of paying for things we want by funding people that are creating in our niche areas of interest.
Platforms like Patreon and Ko-fi let you support the creators you want directly. You can do it on a subscription basis and have a 1:1 channel to talk with the creator. You can get custom work, support, advice, etc.
Github introduced recurring donations directly on user pages, making it seamless to contribute to open source creators. I chip in $5-30/mo to my favorite projects. I'm not the only one doing this, and the money adds up.
Twitch and YouTube introduced subscriptions, bits, and channel points, which gamify contributions and make you feel involved. These have resulted in a massive windfall for creators, and that same technique will propagate into open source. "Get your name in the README", etc., distributed on millions of machines is a compelling technique.
I give a couple bucks a month to a few creative people I appreciate. I don't get anything for it, and I don't care. I just want to support them. There's nothing majorly controversial about any of this. I read the article and the guy seems super humble and there's no degree of "pathetic begging" whatsoever. Great post (with a nice clean site design I should add).
If I were to give $1 monthly to everyone who substantially contributed to the software I am using on a daily basis, I believe my salary wouldn't suffice and I'd have to go live on the street. I know about Patreon, yes. But I also know that only the most prominent figures will actually earn enough to make it worthwhile. And in a sense, they are making money off the fact that the other 99% does not try to get payed for what they volunteered for.
The dudes got savings and career to fallback on—he might be dreaming but it's not like it'll hurt to try. Not to mention he's already popular in Python circles (i.e. tech workers with disposable income) and has an existing group of sponsors.
Sounds like you only read the title. The OP is planning on living off his savings for a while. I'm sure he would love for sponsorship to make his work self-sustaining, but he would settle for paying a few bills.
Rich looks incredible. I wish I had known about it about a year ago (and was more proficient in Python which I am now). I was creating an app to manage running all of our companies microservices locally on our laptops. I started out with ink-react (a text renderer for console apps that uses React). It was pretty cool in concept, but in execution it couldn't line up large boxes correctly and often failed. I don't know if it fixed all those issues.
Instead I just moved to Electron and now my app is a huge motherf__ing beast.
One interesting open source funding method I stumbled on recently was Tidelift which I posted recently[1].
Otherwise I see contributing to open source as essential for my company and we are still quite small but already have one dev that has been full time supporting a critical open source project for about 6 months. I'm not sure why others don't see it that way.
People are coming up with crazy workarounds for funding. Taxes, subscriptions, government programs, begging profit-driven corporations to donate…
As programmers in a lucrative field, you can get financial independence (https://www.mrmoneymustache.com/2012/01/13/the-shockingly-si...). Then you can work on whatever you want without hoping for the rest of the world to change so you can pursue your passions.
I would hate to see the future of open source go the way of the open core model. Open source has become a very popular way for startups to get traction and lead gen, for their revenue generating, fully-featured, open-core version. I understand why this exists, and there's nothing wrong with it, but I'd love a Richard Stallman rant on the subject.
I think it would be a good idea for open-core startups to grant options to EFF or the equivalent, at the beginning. I'd very much like to see the community directly benefit from the corporations that bootstrap themselves off of the communities back.
I gotta admit, I like the open core model. When it's done right, it seems like a reasonable way to monetize while still getting development done and encouraging a community and ecosystem. I've been looking at how Ghost[0] set things up[1] and it seems to be working very well. The company is non-profit and has certain restrictions in place to ensure that they don't become evil. Still, it won't work for everything and it can't work for smaller libraries.
I agree. Open core is the least objectionable way to deal with the fact that properly developing most open source projects costs money.
Obviously there are exceptions (Firefox, popular programming languages, etc.).
I especially like that you can often put enterprisey features like LDAP integration and auditing into the "paid" bit which gives a nice way to encourage companies to pay without affecting hobbyists.
I had no idea you could drive 60fps animations in the terminal. How’s that even possible? I only had limited experience with curses ages ago. Is he just spewing control characters crazy fast and the terminal is keeping up fine?
Anyway, this guy is a genius and I hope the funding goes well. His other projects look amazing as well.
If I were a betting man, I’d wager the browser is the minimum common denominator, not the terminal. But I’d like to live in such a world.
I’m not sure that’s how you should read it. It can be a better way to create a terminal application than any other way you can do it in any language, and still be limited to Python.
Is working full-time on open source software (if you’re good) for free or for a meagre stipend the most effective altruism there is? When you consider multiplier effects.
I'm sure its not. But this is one of the few (possibly only) things I'm actually good at. And it's not entirely altruistic, I think this work will benefit me financially in the future.
I used to say "My dream is to work for free." At the time, I earned my keep as a manager, and had to do all my coding as extracurricular open-source projects (I've been writing open source for over 20 years).
I am now living the dream. A few years ago, I was basically forced into early retirement, and it's the best thing that ever happened to me.
Not really, no: it isn't even a very high quality act, and in fact can be quite negative:
1. The multiplier is net negative for software engineers: it advances the commoditization of our knowledge skills;
2. It does so while providing essentially free labor for large organizations with agendas that are rarely positive for society;
3. Most (>99.99%) software development is not similar to, say, mathematical, engineering or scientific inquiry: there's no similar value produced for society by working on it (open source or otherwise), and people who work on open source now thinking they're following the traditions of the hackers of 30-40 years ago are quite mistaken (see above two items) most of the time
Some open source software projects are altruistic. The vast overwhelming majority are not.
This. I wonder why more people don't understand the negative effects of open source (at least in the way it is practiced). It is essentially free labor for Apple, Amazon, and pretty much any big company that already understood how to use open source to get the benefits for their paid products.
If all the big companies use open source software, that creates a nice level playing field for the whole economy. Anyone with capital can start a rival enterprise. Competition breeds innovation and drives down prices. The general public benefits greatly.
If half the carpenters decided to build houses for free, there would be less paid work for the other carpenters though... Society's needs in carpentry would be partially satisfied by the free work.
I don’t think we run out of work. People might need to adapt and do something else. But for software engineers especially, the open source stuff just gives you more tools to leverage for your employers/clients.
I'm not sure about that. For example, if Linux weren't free, but was instead developed by some giant corporation created around it, we'd perhaps have another letter in the FAANG acronym (FLAANG?), and thousands more very high paying jobs.
But aren’t Facebook, Amazon, Netflix and Google themselves heavily reliant on things like Unix/Linux? I can imagine a world where all their services exist only as clunky Microsoft offerings that have no rivals except maybe on niche competitor platforms like Mac (pre-OS X)
No, they'd just pay for licences of the commercial UNIX to the uber-global-Unix-vendor company (say something like Redhat, only 100x bigger, because it's not giving away the OS for free), in the same way they for example pay for CPUs to the uber-global-CPU-vendor (i.e. Intel or AMD).
You don't even need to imagine what would be this large UNIX vendor: Sun was the king of UNIX in the late 90s, and in large part it failed because of competition from open source Linux, which benefited Google, Apple, Amazon, and MS.
Yeah I was thinking about that example, but wasn't their agenda to tie Solaris to their expensive hardware (whereas Redhat is purely a software company)? And the whole appeal of Linux was - get a "serious" UNIX on a commodity no-brand hardware? I don't know these parts of history that well, so someone please correct me if I'm wrong.
Alright, then how do you explain the folks who have completely anonymous open source contributor identities? Or folks who commit documentation improvements? I think flattening the entire open source world down to ego and narcissism is reductive to the point of being wrong.
>The multiplier is net negative for software engineers
Good.
>It does so while providing essentially free labor for large organizations with agendas that are rarely positive for society
And? The only downside that I can see is that corporations might take your work without providing their modifications back. Copyleft licenses mitigate this issue.
> Most (>99.99%) software development is not similar to, say, mathematical, engineering or scientific inquiry: there's no similar value produced for society by working on it (open source or otherwise)
Claiming that less than 0.01% of open source projects provides any value overall seems to be quite pessimistic and not matching reality. Really, just 1 project in 10 000?
Having worked in a few open source based commercial businesses, I think the donation model can be tough and unpredictable. The only time I have seen it work is when businesses have commercialized an open source project and then give you a decent recurring donation back in return for your support. So the obvious move would be to just commercialize it yourself. The author does mention this at the end.
If its a small product but with a lot of users, think about a small add on service in the few dollars a month range. If its a more sophisticated product that's a bit more framework oriented, maybe use it as the foundation for project based services and build a consultancy. If its a true product that can be sold, then make a commercial version and start selling it. A lot of times there is a vast vast market out there that doesn't know this is a free open source project, they just see a product which solves their problems and they buy it.
FOSS is strange to me, some are trying hard to raise money to fund open source, while others appear to be asleep at the wheel. I have reached out to one large project we use a lot at work, multiple times, looking to make a donation, never heard anything back. I guess some are doing so well they don't need any money?
I wonder if for some people there's the aspect of, once they receive money, they have to deal with extra complexity for income tax and whatnot? Just a guess, only thing I could think of (other than, like you say, pre-existing financial stability)...
Accepting money can be a pain. Now you have to do accounts and taxes, and possibly argue about who actually gets the money and what it is used for. I can see why some projects might not care about small donations.
Maybe try offering a few million and see what happens. :-)
I would start from projects looking for money and providing way to gave them (I bet that at least one heavily used FOSS project matches that description).
> some are trying hard to raise money to fund open source, while others
The problem with open source is that is over represented by privileged people, who have resources to work on it instead of having to have paying job.
If you are poor, you have limited chances to contribute anything and thus also potentially getting worse jobs due to no OSS contributions in CV.
The benefit of open source is that anyone can contribute, thus someone that cannot afford a university degree or does not have the social network that comes with high status can still prove their skill as a software engineer and find a high paying job.
It’s just another door into the profession, one that is honestly more accessible than many others. We cannot remove all barriers to being a software engineer, because people have to learn the skills somewhere.
> Rich is a Python library for rich text and beautiful formatting in the terminal.
> The Rich API makes it easy to add color and style to terminal output. Rich can also render pretty tables, progress bars, markdown, syntax highlighted source code, tracebacks, and more — out of the box.
Seems Rich is not just displaying pretty text, it seems to almost be a full blown UI library that can render components and more.
Since the API surface is that big, it's possible for bugs to slip through, and those have to be fixed by someone.
Then once companies and other people start depending on this library, they start being dependent on fixes to also be made to it as new platforms appear, new terminals get written and so on.
Either the companies/people can start contributing their fixes directly upstream, or the can fund one person who can do it for them, and for other users of the library.
Although most of us know what happens in situations like this: no one except the original author actually fixes stuff, until the author looses interests and moves on.
One of the most baffling things about HN is how commenters routinely and wildly underestimate the amount of resources it takes to build high quality software
> In particular Rich and Textual, but also pyfilesystem and lomond
> In addition to working on Rich and Textual, [...] contribute to open source in other ways. [...] code reviews to open source projects
His focus seems to be mostly on Textual, which looks pretty neat.