I shelled out $250 for Rick. It won't feed his family for long but I'm only one guy and it's absolutely worth it.
Clojure is the most exciting environment I've used for years. I've spent most of this year learning to write and actually writing non-trivial programs in Clojure. It's been a fun ride, the best one for years!
With Clojure programming becomes, instead of fighting small but bugging issues with the system, following your curiosity instead.
After donating, I added the following paragraph to the bottom of all my Clojure-related articles. Hopefully it will encourage others to donate as well.
I donated $100 so that Rich Hickey can continue working full-time to make Clojure even better. You should read more <a href=" http://clojure.org/funding ">here</a> and click the "donate" button at the bottom of that page.
I shelled out $100 a while ago, after arguing with Rich over IRC that a donation system would be a good idea. He setup the sourceforge donation (now there's a different one) and on it went. I guess my insistence helped him take a decision that I am sure he had been considering for some time.
Rich was spending way too much time on clojure, but he wasn't making a living at all out of it. Just from what Clojure has taught me on concurrency and time management, it's been worth every dollar. I wish I was a company and I could dip my hands into deeper pockets.
[EDIT: Rick/Rich ... there are too many Rick/Rich in my life. Thanks for the notice.]
Some fascinating thoughts about sustainable open-source development. For me, Clojure was/is easily one of the most exciting developing events in programming languages in 2009.
I started following the language around October 2008 and I've seen the mailing list go from 500 to close to 3K. Amid this growth both the mailing list and the IRC channel have remained helpful and friendly. Useful tools are popping up everywhere, and more and more people are using it as the secret sauce in their projects.
And even if you don't like the language (being a Lisp), it's hard to deny that Clojure's ubiquitous use of persistent data structures and rich variety of concurrency primitives have made what previously seemed academic and esoteric concepts practical and everyday.
If you're a Clojure fan or even an open source advocate, think about chipping in!
I have a feeling 2010 will be yet another great year for Clojure ;)
We ( http://snowtide.com ) are sponsoring Clojure, and we'll be able to simply treat it like any other expense. I'm sure we could figure out (or, have our accountant figure out) how to get the same benefits if the same amount were being dispersed as a donation to a nonprofit, but I personally like not having to figure that out at this point.
I won't claim to understand the mechanics of such, but I know that there's a notable tax difference between charitable donations and expenses (or perhaps donations can't technically be considered expenses?). It's not such a big deal for e.g. startups, but IBM, HP, et al are much more likely to write a big check (say, $10k) if it's to a 501 (c) 3.
I've seen other open source projects jump through these hoops specifically for those reasons. Getting a few of those folks lined up for "The Clojure Foundation" is probably a faster route to being sustainable than $100 at a time.
I don't understand the difference, either, which is why I like the fact that our contribution looks and works just like an expense. For small orgs, certainly, there's only two numbers that matter: revenue and expenses. Figuring out how to set up a third bucket is overhead I'm not interested in now. :-)
That's why you have an accountant. Like wheels says, there are tax benefits, and if you're not taking advantage of them, you are likely wasting your company's money. Or, thinking of it another way, with the non-profit tax stuff, you could give more money to Clojure or whatever else.
It varies significantly by jurisdiction, but merely giving money to another company/organization/person may not count as an "expense" for deduction purposes. In most Western jurisdictions, you would need to be getting something in return - like consultancy, labor, product, a contractual obligation (as with a retainer), etc. I'd be quite unsure whether the "paying for hours spent working on Clojure" line would fly with all tax authorities - but, yeah, that's why people have accountants :-)
OTOH, certain existing foundations are not good for the 'benevolent dictator' model, and aren't really set up to funnel money directly from donors to individuals doing work on the projects.
Another angle to 501(c) is that the non-profit is then eligible for corporate matching programs. There are still corps. out there, .eg. IBM, that match 1-1.
But there is overhead involved, setting it up, filing returns, etc..
Donated $100. Rich Hickey is amazingly prolific; even if this only supports an hour or two of his work, that translates into very real improvements to Clojure.
Senior Developer Dick Scroogey hasn't donated and his system got into a huge deadlock. Colonel Winston Brown only donated $30 and got hit by a nasty compiler bug, but then added the missing $70 and another compiler bug fixed his app!
Is Clojure used for any particularly interesting tasks in which it results in a massive improvement in performance, efficiency, or TCO? Is there any specific community of users who are doing commercially-applicable stuff with Clojure?
I don't know a lot about Clojure, but if it is gaining a following for some sort of commercial application, it would make sense to start "The Clojure Company" and sell support contracts, training, etc.; if this is the case there's no reason this guy should be asking for handouts (he should be raising funding!). But again, hoping people from the Clojure community can enlighten me.
I am sure some large Silicon Valley company could hire him to add to their pet collection, but that'd be totally boring, especially if Clojure has real commercial applications...
Edit: I should note -- if there aren't any specific domains in which Clojure is either necessary or an improvement, it may just be a nice curiosity (like most programming languages), and the author is making a wise decision; again, I know very little.
Rich isn't asking for handouts, he's asking for funding for a project which users derive a lot of value from. I think we can all agree that software takes time to develop, and everyone's time is worth something. I think Rich's time developing Clojure is worth quite a lot and to call wanting to get paid for one's time asking for a "handout" is just totally unreasonable.
I've been thinking about picking up Clojure in my spare time and if I find that it suits my needs you can be sure I'll be donating.
I infer from the post that Rich Hickey still desires to spend the bulk of his time doing core development of Clojure. This is different from doing whatever it takes to make a living from Clojure.
Is seems the only "business models" for open source development, for the love of it, are akin to historic patronage systems.
The difference is that one can now have "crowd patronage" rather than court patronage. However that still depends on being both very lucky and very good. I hope Rich Hickey is the former, clojure speaks for itself on the latter.
Tipping point in terms of visibility yes. Rich Hickey has spent 3 years of his life creating Clojure. He's watched the popularity of the language boom and commercial ventures using Clojure take off.
Rich knows he could probably do just fine consulting on Clojure. However that means he doesn't get to ... work on Clojure.
He's basically saying, "Hey guys, I want to keep hacking on this thing like a madman as I have for 3 years now. I don't want to do side projects. Let's make it happen".
It reminds me a bit about Benedict de Spinoza and Robert Musil. In both cases friends were fascinated by their writing, and they pooled some money together so the writer could - focus on writing.
I don't think the Clojure community is as large as you think it is. Pragmatic Studios are putting on a Clojure training course in March, but otherwise how would Rich have made any money on Clojure so far?
He hasn't written any books and doesn't charge for anything - all that has been available for him so far is the "Donate" link on clojure.org, but it's never really been publicized.
He is doing the pragprog training in Reston this year with Stuart Halloway, though who knows how many people will go to the east coast for training. I know I'm not, though I'd love to get in on one of those sessions.
I fear that this show of support will only help in the short-term. I hope Rich can gather some sort of more predictable income, be it via solid corporate sponsorships and the like. Donations can be deceivingly flaky.
While that's kind of you, the problem with funding open source this way is that it's a "squeaky wheel gets the grease" system in some ways. Did you shell out 100$ for all the other open source code you use?
I say this as a huge open source fan, but one of the things about paying for proprietary software that works is that it helps to solve this problem: it connects the author/s of the software directly with the money they feel is appropriate for their product. If the price is right, they earn money and (hopefully) reinvest some in the product. If the price is wrong or the product crappy, it goes away.
Speaking personally, I didn't donate out of some sense of duty to the abstract concept of open source, I donated because I have a vested interest in seeing Clojure succeed. If it reaches prominence as a language, that has a real, long-term impact on my career satisfaction. There isn't much open source software which fits that description.
I'll be sending him my donation later on tonight and hopefully working on some commercial Clojure apps over the next few months - if any of them take off, he'll be seeing more donations from me. Clojure is a great language and Rich deserves the contributions.
I'm just a student, but I feel it's still my responsibility to donate. My research project next semester is going to focus quite a bit on Clojure, and I feel lucky to have access to such a great environment. Thanks, Rich!
Clojure is the greatest piece of software I've seen done in the last several years. I will donate. I would much rather see Rich hack Clojure than waste time on consulting gigs.
If you doubt this is the right thing to do, just listen to the man, any of his presentations will do.
I'm not really sure Flightcaster is in a position to start donating money - they aren't profitable yet AFAIK. However, they have been open-sourcing a lot of their Clojure projects, which is a great way to increase the visibility of the language.
So do we! We won't wait until then to start giving back. We just sent in our contributions, both from FC and personally. We've gained a tremendous amount from Rich--happy to play a part in supporting him and Clojure moving forward.
He needs to find a benevolent benefactor-company that will employ him to freely work on Clojure full-time, the way Google lets Guido work on Python full-time, and Rob Pike,Ken Thompson et al. (presumably) get to work on Go full-time.
I dare say with the right words from the right people, getting him to Google (or similar) wouldn't be particularly difficult given Clojure's growing status.
To add, I believe there's some precedent here. Some of the key JRuby founders were hired by Sun (though they've now left), IronRuby's main developer was hired by Microsoft, and MacRuby's main developer was hired by Apple. Of course, there's a heavy platform slant on all of those examples..
I think people should also write in to companies that use Lisp/Scheme for business, in addition to donating - a campaign of sorts.
Companies sponsoring Clojure will also have the side-effect of the project having a close interaction with industry and its needs.. which may accelerate its uptake.
Went ahead and threw in a share, will be curious to see how many throw in. There are enough people subscribed to the list that he could probably be fairly well funded if enough threw in.
I am happy to make my contribution to the Clojure fund.
I am curious though, whether this model also becomes applicable to the other Clojure libraries and how would that play out.
Open source software isn't quite a 'textbook example' because the classic concept of 'public goods' predates nearly-free, perfect digital reproduction.
The 'textbook' definition is 'non-excludable and non-rivalrous', meaning: you can't stop people from benefiting from it (non-excludable) and one person's benefit doesn't 'use it up' for another person (non-rivalrous).
Well, you can exclude people from using software in a variety of ways (secrecy/contracts, technical measures, copyright law). That someone chooses to give software away doesn't make it 'non-excludable' and thus subject to classic public-goods analysis.
Also, the choice of how to provide non-excludable goods that may be challenging to finance doesn't reduce simply to "if free riders are a problem, then taxpayers should fund". Lots of other cultural/institutional arrangements are possible -- the 2009 Nobel Prize in Economics went to work into the variety of arrangements used by societies to manage common resources.
A movement to have 'taxpayers' subsidize open source is just as likely to lead to overfunding for the wrong reasons as 'right-sized funding' which exactly offsets the underproduction theoretically caused by free-riders.
Open source software is a different thing from closed source software. Code holds far greater value by virtue of being open: an infinite number of people can use it, bugs are more easily found, ways of improving the code are more easily discussed, etc. But in order to get these benefits, it must be non-excludable.
I didn't know about the 2009 Nobel stuff. Can you point me to a layman's summary by any chance?
I think you are overreaching when you say my scheme "is just as likely to lead to overfunding". Qualified economists could determine the budget. The money would be guided by intelligent judges toward worthy projects. Surely an imperfect solution is better than ignoring the problem.
Yes, open source software is unique and special. But that's another reason it doesn't fit neatly as a 'textbook' example of a public good. The classical excludable/rivalrous analysis didn't even consider things that could be non-excludable by choice, or which might improve qualitatively by being non-excludable.
That novelty cuts both ways. That an open source software producer can't capture the full value by charging a fee would tend to lead to underproduction. But costless communication, redistribution, and sharing-back means they get value in many other ways -- reputation, code improvements, increased sales of excludable complement products, etc.
This is again why the analysis has to be more sophisticated than "if free riders are a problem, then taxpayers should fund".
The Nobel winner was Elinor Ostrum. MarginalRevolution had a high-level summary:
"Qualified economists could determine the budget"? With this and your comment about "a few government sanctioned pg's" I see that you put a lot more trust in disinterested experts and bureaucrats to hand out large sums of money than I do. That process -- boards of politically-favored individuals handing out money -- does not converge on the optimal level of funding/production. We know that with as much certainty as we know there can be problems with private underprovision of classical public goods.
But really, what is the "problem" for which an "imperfect solution" is better than nothing? Open source is booming. People love to create it even for nonmonetary reasons -- so perhaps we already have an inefficient surplus. (Maybe hobbyist open source work should be taxed!)
Meanwhile, governments are having a hard time managing their traditional public goods duties and tax flows in an efficient, sustainable manner. You want to give them a new portfolio of economic responsibilities?
Who defines what is a public good? Very few things truly come under this concept if you look at it objectively. However it is alway easy to find things that you like and you think everyone else really should like that you might consider a public good.
There are lots of examples of OSS being funded through a variety of ways without well meaning folks robbing other peoples money.
Gaah. Only on Hacker News could I find so many objections to this straight-forward, widely accepted idea.
From the first two sentences of the linked Wikipedia article:
"In economics, a public good is a good that is non-rivalrous and non-excludable. This means, respectively, that consumption of the good by one individual does not reduce availability of the good for consumption by others; and that no one can be effectively excluded from using the good."
I think you would be hard pressed to find a better example than open source software.
Yes, obviously open source can be funded in a variety of ways, but supply falls short of demand due to the free-rider problem. How many more Rich Hickeys could we have if open-source software was a safe career decision?
To a lot of entrepreneurs, especially Americans, "taxpayer funded" sends shivers. It implies bureaucracy, paperwork, lengthy approval times and political correctness. In many ways, it is the complete antithesis of the hacker-entrepreneur mindset.
You're right that OSS is a great example of a free rider problem, but your cure is worse than the disease.
I understand that. I too am an American hacker-entrepreneur with an aversion to bureaucracy. But I think this is the least bad of the potential solutions.
All we need is a few government sanctioned pg's, judging whether or not various projects are worthy of taxpayer dollars.
I'm just using him as an example of an effective, minimal-bureaucracy provider of funding. A government funding organization wouldn't need to be a huge beast. Especially because the costs for OSS development are so low.
Would he continue to be effective and minimally bureaucratic if he worked for the government? Who would ensure that he wasn't just giving money to his friends? Who would ensure that a pg type person got hired instead of someone without a clue but with good 'connections'?
I use Ubuntu, which is composed of thousands of individual projects. Who would decide which ones get how much money? How about the ones developed by 'foreigners' (defined as !citizens of the country paying for development)? Could 'foreigners' just free-ride on whatever government paying for all this open source development? How about new, upcoming and potentially competitive projects? At what point should they get funded, or should the government attempt to pick a winner?
I'm no libertarian, but the problems are not at all insignificant, and while I agree that software is close to being a public good (some exclusion is possible), I am by no means convinced that it ought to be supplied by the government.
Except that tons of open source is produced by a few people working on their own, rather than as part of some big institution like a university. Like Clojure, for example...
Also: my wife is a scientist, and I have come to realize that programming is a way more open, "stand on the shoulders of giants" field than theirs is in many ways.
Again, like I said to axod: "What I would really like to see is something like a cross between the NSF and YCombinator."
Have a few experts decide which projects to fund. Give people 50 to 100K a year to cover their living expenses. Anything they produce goes under a commercial friendly license like BSD. Everybody wins.
Does open source not facilitate the sharing of ideas? Would this not make it easier to stand on the shoulders of giants?
I think your argument lacks a crucial element. Since public resources are limited we cannot just fund everything that meets the criteria you cite. Tax-payer funded work comes with a process of prioritising and deciding what is important to the public and should therefore receive public funds.
Someone has to decide whether building a particular new bridge or hospital is more or less important than Rich Hickey building Clojure or Monty Widenius building MySQL.
Right now I don't see how open source development is connected to that democratic decision making process (apart from research grants) and I don't know that I want to see it connected to be honest.
I don't think it is a straight forward widely accepted idea.
It's an extreme ideal that would be insanely problematic in practice.
How does the government decide who gets funding to do 'open source' and who doesn't? How much are they allowed? How is their 'success/worth' measured? How does the government ensure they're getting value for money? What if the project becomes commercial? Do the government own some of that? Should they get some of their money back?
Personally, I would be against government funding of OSS. Government is involved in too many things as it is. We don't need them involved in OSS as well.
But they are a large organization, geared mainly toward industry and academia. They list a "small-project" as "up to $500,000 over three years". It's not quite the lightweight organization I would like to see.
What I would really like to see is something like a cross between NSF and YCombinator.
Writing OSS is close to research, especially when it comes to projects like new programming languages. Even then, my point was that government stepping in to deal with cases of market failure is not a radical idea. And the NSF has an answer to all of the questions you raised.
The reason government funds research is because the value provided by basic research cannot be easily captured and sold. This same logic applies to OSS.
Why is it ok for taxpayer dollars to go toward research but not toward building stuff that wouldn't otherwise get built?
new programming languages. Here's one that really gets me.
New programming languages aren't really coming up with anything that's particularly new. They're just solving the same problems in different ways. This is one area where I would be absolutely against taxpayer funding.
Consider if we decided to constantly invent new spoken languages, in order to communicate with each other more concisely. Maybe English 2.0 would come with 50% less ambiguity and 20% less verboseness. Maybe version 3.0 would do away with the letters Z Q X. Would that be a good use of taxpayers money? Shall we also fund all the translation of libraries books to the new language?
Constantly inventing new programming languages (I would say) often does more harm than good.
The issue is that furthering science clearly has benefits to society. Making yet another open source hip language probably doesn't.
People enjoy hacking. Things get built usually because it's enjoyable, or because there's a real need for it. I think the current situation works pretty well.
Oh, ffs. I wasn't suggesting the government sponsor a million programming languages. I was suggesting they sponsor Clojure.
Now, Clojure may or may not be a project worth funding. That is a question worth exploring. But what about say, making better tools for programmers? Building experimental user interfaces? Any of a million other things you or I could be working on that are hard to translate directly into cash, yet could contribute greatly to society.
Imagine being able to work on these things full time, with a steady paycheck; being able to freely share our code and discuss our work with one another, cooperating to make it better. Tell me that doesn't sound nice.
Hobbyists can only do so much in their free time. Full time development only gets done when it forwards a narrow corporate interest. And then you have the free-rider problem. But now I'm repeating myself, so I'll leave it at that.
Rather than seek to coerce your fellows, just give money yourself to the causes you like and encourage others to do the same. If you and a just a hundred others give one hundred dollars per month, Rick would be making a nice salary. And no one would have to be coerced. This way, besides supporting useful software, you're also supporting something even more important: a free society.
So what if some people are free riders? What is that to you? Don't give up on a free society just because its costs are not equally distributed. By advocating government support, your saying that you want government to take by force from a bunch of people who couldn't care less about this software you like, so that you can continue using it for very little cost. You're exchanging everybody's freedom for your convenience. This is diametrically opposed to the attitude of the people who won freedom by giving up a lot of their own conveniences, like their property, the use of their limbs, and even their lives, so that their countrymen, most of whom they didn't know, could enjoy a little more freedom from taxation and other freedoms from government control.
Sure this is idealism, but it's idealism that's worth at least arguing and voting for. If you personally don't have enough money to support all the causes you want to support, persuade others to join you, don't try to force them.
Also, one reason for you having less money is that government has taken a lot of it to fund things that other voters have thought important enough to sacrifice your freedom for. Don't perpetuate the problem.
Besides, if Rick really wanted to, he could charge for clojure as he explains in his appeal. He could in effect, force his users to make the choice to fund him or forego using his product. Right now, users are not forced to make this choice. But that choice is still available to them. If he could get government funding by simply being open source, he would in effect be taking away users' choice to fund him. Users would be forced to fund him whether or not they used his product.
You could then counter argue that the project that you wish to support through force becomes a free-rider it self as the project beneficiaries don't have to compete in the economic market the same way as those forced to pay for them are.
Voluntary doesn't always work but is always preferable over forced.
The project itself would not be a free-rider, because it would need to provide sufficient value to justify its cost. In a government system, expert judges are the conventional way of making this assessment.
True, you would lose conventional market incentives, but you would gain all the benefits that history has shown come from open source: higher quality, lower cost, free exchange of ideas, etc.
For projects such as Clojure, which don't have an obvious business model, there is no better way to secure funding.
Force should be used when it will yield great benefits for society.
> Force should be used when it will yield great benefits for society.
I agree with you that force should be used when it will yield great benefits. But I would define the greatest benefit to be liberty. Force should be used to defend liberty. The freedom govern one's own life and make one's own decisions is worth a lot more than the benefits of open-source software.
The irony is that societies that value freedom over more tangible benefits like software tend to have more of both than societies that give up freedom for material benefits.
If liberty is that important, don't you think there are more important arenas to fight in than funding of public goods? For example, Guantanamo bay and the so called "Patriot" Act?
This is a problem with open source and an argument against it. Does it really make sense to give something away and then complain that people just don't pay enough for it and should be forced to do so?
Clojure is the most exciting environment I've used for years. I've spent most of this year learning to write and actually writing non-trivial programs in Clojure. It's been a fun ride, the best one for years!
With Clojure programming becomes, instead of fighting small but bugging issues with the system, following your curiosity instead.