Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Preact: Countering the Perception That Open Source Must Be Free (medium.com/open-collective)
103 points by jdorfman on March 13, 2017 | hide | past | favorite | 47 comments


I've had this argument with a number of different open-source groups, and they all come back to the fact that open-source communities don't like charging for products or services and try to survive on voluntary donations.

I tried to explain that companies and governments (especially governments) just cannot donate money for open-source. In IT, everything has a price and is a line item and needs to be justified. If a company doesn't have to pay that $100 for a badge on a website, they won't.

I think the long-term answer for open-source, especially for frameworks and languages, is through open-source IT certifications.

Being able to pay for some kind of certification would be a boon for everyone. Developers can show case their skills (and get a tax-deduction on their investment), Employers have a standard they can look for when hiring devs, and open-source communities get money based on the popularity of their projects and can show case who is getting certs or hiring based on them - showing the value of their work.

I'd gladly pay $500-1000 for a cert (even one I know I'd easily pass), but have trouble justifying $100 for warm-fuzzy-feelings, even when I know its going to a framework I depend on.


This is why, for years after CDs were an archaic distribution medium, the OpenBSD project sold CDs for each release. In almost any company, it's easy to put a software CD set on a purchase requisition, but nearly impossible to make a "donation" to an open source project.

OpenBSD doesn't do this anymore; perhaps they got to the point where it didn't sell enough to make it worth the trouble, since you could download all the same files for free.


Usually, paying somebody to do something that materially benefits you isn't called donating. As the article suggests, organizations should think of voluntary open source funding as insurance.

Of course, some companies do just donate money for open source, many more donate in kind - e.g. with hosting services - and still others develop internally and donate source code.

Naturally they do this because continued maintenance of the software supports their business objectives, and not out of an egalitarian sense of charity.


Even though it's nice to think of it as insurance, it's not the same thing because it doesn't come with any actual insurance.

You can donate money to a project to hope for help when you encounter some critical bug in the future. However, you don't actually get any guarantees that the community will help with said bug or return your money if they don't. That's a really hard sell if you're trying to pitch it as insurance.


But it is donating - because Open-source developers will just keep on keeping on. The developers of a project won't stop building it if no one is paying - until they have to. But for right now, if a bug is found MegaCorp reports it, and the open-source developer fixes it for free.

And that's the problem.


And it's MIT license, or as I think of it, the starving artist license. Why not license under AGPLv3, the way MongoDB does? You want to use it in open source stuff? Free. You want to use it in commercial product? Commercial license is available for a fee.


No way... We're taking about a front end framework... Which means you really can't use it for any commercial front end.. period.

Not to mention no corporation would touch it with a 10ft pole


Sure you could. Pay for a commercial license. Corporations pay for those all the time, and usually don't even get source.


And that's worked out horribly for maintainers.. it's the whole reason for open-source. Look there are plenty of use cases where (A)GPL is perfectly suitable... a front end gui framework is not a good example imho.

I've used plenty of closed source tools in the past... and they've always bit me in the ass at some point. I'd rather roll/adapt my own, or use something with a permissive license I don't have to worry about. I participate in the broader community, and prefer ISC/MIT licensing for most of what I do and use.

If it's a given database server, sure, AGPL is fine as long as the client library is permissive.


I doubt that would work, way too many alternatives around.


Like what? Vue.js? One BDFL who might take a new job or be hired away by BigCo? Some other starving artist project that will die when the main contributor loses interest perhaps?

GPL, done well, fosters community and contributions. In five years, everything will be "legacy code" and it won't be nice maintaining something with no community behind it. Permissive licenses only work when backed by giants like Facebook/Google/Apple. Even then, they can go Angular 1 on you.

Dead stack with no community is a forced rewrite. You can't just sit on it, because every new feature has to be done from scratch by yourself. That's not a lot of fun in my experience.


I haven't seen (A)GPL done well and sucessfully in the (frontend) webdev space. I think some of the bigger component libraries are AGPL + commercial license, but they don't seem to have much in the way of community contributing, and would likely be just as successful if they were entirely closed.

If the commercial entity behind a dual-licensed project fails, will those that bought a commercial version contribute to its survival? Can they without licensing issues?

And preact seems simple enough that if there weren't X other JS frameworks, or if there is a specific niche only it fills, a lot of projects would try to clone it with a less restrictive license, probably win the mindshare race, and be the ones with a community that contributes, regardless of technical merit.

I might be wrong, I might be missing some shining counter-example, but I just don't see it happening in that space, as much as there are arguments why it would be in everybodies interest to make it succeed.


I know this sounds crazy, but perhaps React?


I like to pay for software I use. Especially if it's something I use to make money.

But if you don't ask me, I won't pay. Too many people are afraid to ask. I'm happy Jason is working towards changing that.


One solution that I feel hasn't been explored enough is a commercial reuse license: https://kartick-log.blogspot.in/2016/11/a-commercial-reuse-l...

Like open-source, this helps people reuse your effort to build something else, without having to reinvent the wheel.

Like closed-source, it's easy to charge users for the software, and not have somone undercut you by offering the same thing free.


I think you have a really good idea! It doesn't just solve the problem with open versus closed source, it also solves a different and much more fundamental problem, which is that people who work on free and open source software do not get rewarded proportional to the value they provide to others. People who work on free software generally do so in their spare time, and work on proprietary software to pay the bills. This should be a sad state of affairs to anyone who actually cares about free software, that the only way to do it is to make proprietary software to keep the lights on. If one of them makes a program that is of great value and utility to others, how might they expect to be rewarded? If they are lucky, they can expect a few donations. If they are very lucky, a reasonably paid position maintaining their program paid for by a company that probably produces proprietary software.

How much are Linux kernel devs paid? How much value does Linux provide to others? On the other side of the coin, how much does the CEO of Snapchat make, and how much value does Snapchat provide to the world at large? This is unacceptable, people who make truly useful things should be rewarded appropriately, it's not fair that people can profit off the work of others while giving none of it back. Pull requests do not put food on the table, when people are able to make a living off of open source software, we'll see a lot more of it than we ever did when they relied on charity, goodwill, and a day job writing proprietary software.


Agreed.

My proposal isn't intended to make open-source sustainable. I don't have any magic solutions.

Rather, my proposal is pragmatic. Can we derive some of the benefits of open-source in a sustainably-funded way?


Imagine if every 6-figure dev gave just $1k a year to a basket of all the OSS they use daily.... Man that would be a different (and better) world.


"1% to Open Source" has a nice ring to it. And that should go for not only individuals' pay, but 1% of company revenue from businesses that use open source as well.


That would be a strong selling point from a hiring standpoint. Heck if Google/Apple/Facebook donated 1% of revenue to OSS did that maybe we wouldn't need this service at all.


I love this as a job perk. Get paid while giving back.


Why should the employees be funding the savings that accrue to their employers?

Now imagine if every employer saving 10 devs or more per year worth of work on top of open OSes, languages, platforms, runtimes, webservers, etc gave a fraction of those savings to the various projects...


So at that point, why not just have all those used-daily projects be sold commercially instead of (or in addition to) being OSS in the first place?


That would be fine, too. But consider the complexity of buying 20 things vs. spending once and disbursing. The value is to reduce the difficulty of being a good person.


That would make collaboration much much more difficult :)


That's such a brilliant idea. What if there was a website where people could divide up which OSS projects their $1k or 1% goes to? It could be anonymous, pseudonymous, or public, depending on how bold the philanthropist was.


Well let's bang out some details right here. First, payments. Taking them and then disbursing them. In terms of taking, we'd need a subscription, and probably monthly. In terms of disbursing, I'd like to aim for 100% with operating costs coming from people voluntarily adding us to their basket. Locating the actual target of the money is also potentially difficult. It's easy for some projects (Redis -> antirez) hard for others (node -> Ryan Dahl???). Also, would have to take into account some OSS has deep backing, and probably doesn't need money. Last but not least, taxes.

To summarize: before beginning I'd like to find similar systems ('competition'), how to locate recipients, and how to move the money around without losing any of it to fees, ideally. The marketing angle is easy: 6-figure devs might like the idea of giving in this way. Your basket could even be a sharable point of pride.


> Locating the actual target of the money is also potentially difficult.

You'd almost always want it to go to appropriate foundations (501(c)3 or equivalent), not individuals, except when supporting projects that really only have a single developer and no organization behind them. That also makes it easier for companies and individuals to give, since they can deduct it from their taxes.


Hmm. I guess I was envisioning the service as being the non-profit, and the disbursement need not be to other non-profits.

But this brings up a few interesting points. First, if you give only to the founder, and not the contributor, will this engender resentment? Second, ideally the result would be that the founder would work more on the project in a consistent way, but that sort of gift would need to be something more along the lines of a stipend over the course of a year or two. Third, if the amounts were large enough (which would be the case if every 6-figure dev gave $1k/year), you could do something along the lines of the MacArthur foundation so-called "genius grants".


Foundation, not founder; foundations are required to be much more accountable with funds than individuals are. I'm suggesting in most circumstances that it's preferable to give to an accountable organization chartered with the stewardship of a project, rather than to any particular individual.


Well this is a useful discussion, because I'm realizing how much I want to give the maker/user community itself the power to hold itself accountable. To take your point to the logical conclusion is to assert that all successful OSS projects should have a foundation, or even a for-profit org. I'd like to see something looser, a dynamic, democratic assignment of value by those who benefit the most.


You can kind of already do this via the Open Source Collective: https://opencollective.com/opensource (but not as fully featured as what you're suggesting)


Your're talking about something like ASCAP or BMI for software.


To be honest, the only time I'm going to pay for open source is if you bounty or ransom it and I want it. Neovim for instance.

OpenSSH, probably never. Just being honest here. And considering half the population here blocks ads, I doubt they'd pay either.


> And considering half the population here blocks ads, I doubt they'd pay either.

I block ads. I also happily support artists via Patreon (for significantly more than I pay to Netflix and Amazon), give money to many different FOSS projects, and arrange for my employer to give substantial quantities of money to FOSS projects.


Makes sense that you'd only want to pay for things that provide you with value directly. I think that applies when donating a small amount to support a project you make use of, when you get something in return (like a t-shirt or sticker), or as you say to fund specific features or changes you want. That also goes for sponsors: they should get value in return, and they do, like exposure and reputation in the dev community, a platform for their recruitment message, etc. To me, this dynamic seems quite different from ads, which are non-consensual and not tied to a direct value exchange.


Yeah. That makes sense.


I wouldn't either, but I wish my employer would. I think you could buy a lot of employee/developer good will by donating to the open source projects that you use in your commercial projects.


An annual budget of $6K is going to take a long time to gain momentum.

Compare against other successful projects, like:

- VueJS, $9K / month: https://www.patreon.com/evanyou

- GUN (mine, an Open Source Firebase) $1.9K / month: https://www.patreon.com/gunDB

It looks like the Patreon route is better than the open collective route.

I'd be interested to have a debate, though - just seems like the numbers tell their own story. No?


Well, the article specifically discusses Open Collective vs Patreon, referencing VueJS. What do you think of the differences mentioned there?


Jason seems to be opposed to the idea of a BDFL in exchange for a day job. To me, this is why the numbers are going to be different. Ideas need a prophet, a messiah to attach to. I'm strongly against centralization, but decentralization and P2P and "open" don't mean "lacking a visionary". And you can't hand a "rally call" over to a group of people - not that a group isn't powerful, but personality is important to any movement. And if a group adopts a personality, it becomes conformity.


> [Preact is] still just 600–800 lines of code if you remove the comments.

I'd never heard of Preact. I still don't know what it is or does. Maybe it's truly groundbreaking. But how can 800 SLOC be a product? That's barely more than an afternoon's hacking session, not something to release and form a community around.


I really hate the "gigantic block quotes between paragraphs" thing. It's very distracting from the flow and content of the article.


Yeah that's always a tricky stylistic choice - I include them because I know some readers prefer to scan headlines as opposed to reading every word, and I want to help them take something useful away, too. Though I do really appreciate thorough readers like you so I hope it's not too off putting :)


FYI, pull quotes usually duplicate segments of writing from the article body---they're the article quoting itself, pulling out the highlights. You're supposed to be able to skip over them when reading the full article.

~~~~ "they're the article quoting itself, pulling out the highlights" ~~~~

Like this comment: the pull quote was already present in the text.


You could pull them to the right of the main text: there's plenty of room. :)


plus the font changes, and the bold. I don't know if it scientifically qualifies as cognitive load, but it looks like a jumble to me.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: