Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Open Source is Not About You

Open Source is Not About You

The only people entitled to say how open source 'ought' to work are people who run projects, and the scope of their entitlement extends only to their own projects.

Just because someone open sources something does not imply they owe the world a change in their status, focus and effort, e.g. from inventor to community manager.

As a user of something open source you are not thereby entitled to anything at all. You are not entitled to contribute. You are not entitled to features. You are not entitled to the attention of others. You are not entitled to having value attached to your complaints. You are not entitled to this explanation.

If you have expectations (of others) that aren't being met, those expectations are your own responsibility. You are responsible for your own needs. If you want things, make them.

Open source is a licensing and delivery mechanism, period. It means you get the source for software and the right to use and modify it. All social impositions associated with it, including the idea of 'community-driven-development' are part of a recently-invented mythology with little basis in how things actually work, a mythology that embodies, cult-like, both a lack of support for diversity in the ways things can work and a pervasive sense of communal entitlement.

If you think Cognitect is not doing anything for the community, or is not listening to the community, you are simply wrong. You are not, however, entitled to it being the effort, focus or response you desire. We get to make our own choices as regards our time and lives.

We at Cognitect have to show up to work, every day, to make a living. We get no royalties of any kind from Clojure. We are in no way building Clojure for profit. Far fewer than 1% of Clojure users are our consulting or product customers, and thus contributing to our livelihood.

We take some of what we earn, money that could e.g. go into our retirement savings and instead use it to hire people to work on Clojure and community outreach, some full-time. To be honest, I could use that money in my retirement account, having depleted it to make Clojure in the first place. But I love working with the team on Clojure, and am proud of the work we do.

Alex Miller is extremely attentive to and engaged with the Clojure community. He and Stu Halloway and I regularly meet and discuss community issues. Alex, at my direction, spends the majority of his time either working on features for the community or assessing patches and bug reports. I spend significant portions of my time designing these features - spec, tools.deps, error handling and more to come. This is time taken away from earning a living.

I am grateful for the contributions of the community. Every Clojure release incorporates many contributions. The vast majority of the user community doesn't contribute, and doesn't desire to contribute. And that's fine. Open source is a no-strings-attached gift, and all participants should recognize it as such.

The Clojure process is not closed, but it is conservative. I think Clojure benefits greatly from that conservatism, in contrast to some other projects with high churn rates and feature bloat. If you disagree or imagine otherwise, that's too bad. It's my life and I'm not going to spend it arguing/negotiating on/with the internet. Write your own things and run your own projects as you see fit.

We can always do more, but it is specious to claim that the core team is standing in the way of meaningful contributions to Clojure, as opportunities abound: in library development, outreach, training, tutorials, documentation, giving talks, tool building etc.

And yes, on patches to core. Did you know that most patches/issues have poor problem statements, no description of the plan (read my code!), no consideration of alternatives, no tests, no designs, and are ill-conceived and/or broken in some way? Community efforts to triage matter a lot in moving things forward - thanks Nicola, Ghadi and many others!

The time to re-examine preconceptions about open source is right now. Morale erosion amongst creators is a real thing. Your preconceptions and how you act upon them are your responsibility and yours alone. I am not going to answer for them or to them.

If the way Clojure works isn't for you, a process which produced Clojure in the first place, paradoxically, so be it. I'm sure you know better about the one true way to write software. But kindly don't burn the community down on your way out, with self-serving proclamations. Yes, everyone is entitled to an opinion, but, tragedy of the commons and all that.

I encourage everyone gnashing their teeth with negativity at what they think they can't do instead pick something positive they can do and do it.

Rich

p.s. My partners and coworkers at Cognitect were not consulted regarding this message - I am certain they would have dissuaded me. These opinions are mine alone.

p.p.s. I think the vast majority of people in the Clojure community are wonderful and positive. If you don't recognize yourself in the message above, it's not for/about you!

@mwpowellhtx
Copy link

mwpowellhtx commented Dec 1, 2018

So, in a few thoughts, I would say, capitalism, entrepreneurial spirit, and boundaries. Lots and lots of boundaries.

@dgustaf
Copy link

dgustaf commented Dec 3, 2018

Thank you Rich! For this and lots that came before. Your effort is immensely appreciated.

@dnando
Copy link

dnando commented Dec 3, 2018

The work of Jordan Peterson might provide some perspective. There is a tendency, especially among educated people, to give more weight and value to liberal attitudes of openness and freedom than they practically deserve. I'm writing that as a very liberal-minded person.

A conservative attitude values borders and restrictions, structure. A liberal attitude values openness, permissiveness, creative chaos. Peterson would say that there is always a discussion needed between the conservative viewpoint and the liberal viewpoint, as the balance between them often needs to be adjusted. Too liberal, and order breaks down and bad things happen. Too conservative, and innovation suffers and bad things happen. Each can tend to go too far.

A successful negotiation regarding that balance has to have an understanding and appreciation of the value of each viewpoint as its basis, or it can't succeed.

Rich's main point seems to be that there is value in conservatism. And I think that may fly over the heads of some of us with a more liberal bent. Peterson points to what happened with marxism as the most glaring example among many where the liberal viewpoint went too far. The enticing idea to overthrow order so everyone can be free has never worked. Elements of a community or a society reimpose order in the midst of the chaos of any revolution, big or small, and the result is almost invariably worse than what you had before the revolution. And yet the general idea that things will be better if order, structure and hierarchy is dissolved or overthrown, strongly persists in our culture. Peterson is saying that is simply not true, and he's right. He's making the point with dozens of obvious examples.

In any case, it struck me that this tension between conservative and liberal viewpoints is much larger than open source software. I think we can learn something by seeing it from a larger perspective, and recognizing that a conversation regarding the balance between them must be undertaken with much more care and seriousness than - "I'm leaving. I want more freedom." I think Peterson would say that a better society, a more healthy community, would endeavour to take responsibility for maintaining that balance by carefully and deliberately exploring options, small carefully thought through adjustments that might practically work out, rather than disowning responsibility, walking away, or reducing the always present tension between conservative and liberal viewpoints to some leveraged caricature rather than exploring the nuances of the balance in depth.

@belucid
Copy link

belucid commented Dec 3, 2018

I agree with 99% of what you wrote Rich, especially about the conservative approach. It's exactly your conservative approach and dedication to avoiding bloat that has led me to bet my career on Clojure and to self-define as a Clojure programmer.

Where I have to quibble is with this:

We get no royalties of any kind from Clojure. We are in no way building Clojure for profit. Far fewer than 1% of Clojure users are our consulting or product customers, and thus contributing to our livelihood.

We take some of what we earn, money that could e.g. go into our retirement savings and instead use it to hire people to work on Clojure and community outreach, some full-time. To be honest, I could use that money in my retirement account, having depleted it to make Clojure in the first place. But I love working with the team on Clojure, and am proud of the work we do.

This just doesn't seem genuine. Congnitect would not exist as it does today without Clojure. It may be more successful, it quite likely would be less successful. In any case, it would be very different.

I can't agree with this characterization of Clojure as some self-less gift to the world. Clojure is an investment by you and by Cognitect, not a gift. It's an investment made w/ some expectation that some very small percentage of the Clojure community will be interested in Clojure-related products and services from Cognitect.

Yes, the overwhelming majority of the Clojure community will never buy anything from Cognitect, but it is still the entire community that makes the small percentage that will buy something from Cognitect interested and comfortable in using Clojure. I don't think your post conveys the humility and thankfulness that it should. Every last person that makes a bet on Clojure helps you and helps Cognitect, and Cognitect owes as much to them as they do to you and to Cognitect. That's what makes it a community.

I agree with you that it's a community that is best run the way you are running it right now. I have no complaints actually, other than about the tone of this message and about the characterization of Clojure as a gift.

@michael-okeefe
Copy link

michael-okeefe commented Dec 4, 2018

Thank you, Rich! Thank you so much for what you've done with Clojure and for your generosity in sharing it with us. It has truly been a joy to use and learn. You definitely have my support and agreement with this article.

@krisleech
Copy link

krisleech commented Dec 4, 2018

I can't agree with this characterization of Clojure as some self-less gift to the world. Clojure is an investment by you and by Cognitect, not a gift. It's an investment made w/ some expectation that some very small percentage of the Clojure community will be interested in Clojure-related products and services from Cognitect.

It is a gift, you didn't pay for it. They could have kept it closed source or licensed it commercially.

@Vinai
Copy link

Vinai commented Dec 4, 2018

Thank you for all the labour of love you and so many others put into Clojure and for sharing it with us!
You have enriched my life as a developer a lot, and I'm very grateful.

@belucid
Copy link

belucid commented Dec 4, 2018

@krisleech no, it's an investment. Yes, they could have kept it closed source or licensed it commercially, but then the adoption of Clojure would be extremely negligible, and there would be no market for Cognitect's Clojure development services or Datomic. Basically they'd need to be in a different business then they are in today. To think that Cognitect actually thinks of Clojure as a gift and not an investment is just not accurately describing the situation.

Cognitect invests in Clojure
The Clojure community invests their time and attention and technical risk in Clojure by using it
Together we make a community

There are no gifts here. Just self-interested investment by both sides.

@schneems
Copy link

schneems commented Dec 6, 2018

Regarding the need to triage issues. If anyone wants to get started helping an open source library, check out https://www.codetriage.com it sends you issues to triage in your inbox.

@GitMoDu
Copy link

GitMoDu commented Dec 12, 2018

Saying that users aren't even entitled to an explanation of why they're not entitled to support is childish in the extreme.

So, someone makes free software, then they become "childish in the extreme" for not doing more work for free? You sir, are one entitled brat.

@thiru
Copy link

thiru commented Dec 16, 2018

Thank you so much for Clojure Rich! It's my favourite language to program in. I appreciate you and your team's hard work. The careful, considerate way it's evolved is a rare gift.

@KingCode
Copy link

KingCode commented Dec 18, 2018

Well said Rich, thank you for sticking to your vision and standards...Clojure put the fun back in programming, and I will always be grateful for your (and team's) work!

@AlexKVal
Copy link

AlexKVal commented Jan 5, 2019

Thank you, Rich, for writing and sharing this.
Thank you and all the contributors for Clojure 🍒

@mlanza
Copy link

mlanza commented Feb 4, 2019

Few things have impacted my view of programming as a whole more than the Clojure way. Thanks for inventing it and sharing it.

@johnlawrenceaspden
Copy link

johnlawrenceaspden commented Feb 22, 2019

Rich, I've no idea what this is really about, but you made a beautiful thing and I love it and use it lots. Thank you very much, and of course you don't owe me anything. Thank you for your wonderful gift!

@akyoto
Copy link

akyoto commented Feb 25, 2019

Well written, thank you.

@MalloZup
Copy link

MalloZup commented Apr 8, 2019

thank you

@mmeroberts
Copy link

mmeroberts commented May 6, 2019

My feeling as I have dabbled in Clojure is that I fear it becoming too big, more features, more complex less easy to use. I, therefore, like to conservative approach. I look with horror at the underlying morass that Java has become, I remember when I could read it and understand it, I no longer find I stand a chance. I do not want Clojure to go that way. I have found that constraints are the key to creativity, unbounded options lead to paralysis and not progress. Having to work with constraints, as long as they are not severe, enables you to focus on finding a solution within a walled garden. I find as I learn more about the Clojure, my view changes and I have a little more space to work, but lifting those constraints would make me exposed to having to face continual choices. In a world where coffee is no longer coffee, but an endless list of choices, the joy of working with something that is simple, constrained, well thought out, does not change on a whim, has what I believe to be the most under-rated quality - "conceptual integrity", is a joy. Yes, I still have to dig through the weed pile of error messages.

The fact that Rich and Cognitect both contribute and gain from the success of Clojure, I can not begrudge. Having a practical, usable LISP is a gift I receive with thanks and hope that we can enjoy what we have even with the weeds.

@wildermuthn
Copy link

wildermuthn commented Sep 20, 2019

Clojure's open-source nature, as Hickey so clearly states, is simply about licencing. But Clojure itself is a tool. Is it also a product?

"Product' is from the Latin producer: "lead or bring forth, draw out," figuratively "to promote, empower; stretch out, extend."

In the context of users (those who are empowered), Clojure is a product.

In isolation from users, Clojure is merely a tool – an idiosyncratic invention birthed as a labor of love.

Just because someone open sources something does not imply they owe the world a change in their status, focus and effort, e.g. from inventor to community manager.

Perhaps Hickey really does view Clojure as an invention, as merely a tool?

We are in no way building Clojure for profit . . . I love working with the team on Clojure, and am proud of the work we do.

Hickley doesn't seem to see Clojure as a product. Unfortunately, this means he is more likely to see Clojurists as followers of a tool rather than users of a product. Followers can be told that we are a drain on Hickey's morale and bank-account. Followers can be scolded that we are entitled. Even an important follower can be beat-down in public until he issues a public apology.

Users will simply find another product.

Many years ago, I switched from Common Lisp to Clojure for precisely one purpose: Clojure had a growing ecosystem that extended the power of the language itself. But Hickey's letter reinforces the fact that the ecosystem is an accident, not an essential. Clojure core seems to be in competition with the ecosystem rather than enabling it. I'll always love Clojure, and admire the technical brilliance of Hickey, but I can't responsibly invest into an idiosyncratic invention that treats its ecosystem as ancillary rather than primary.

@loganpowell
Copy link

loganpowell commented Oct 30, 2019

I love Clojure. I love it. Rich Hickey has "gift"ed it to us and I am thankful for that. I also can tell that there's an underlying pattern to the nature of the responses to PRs or contribution in general. They're short. I get the feeling this culture derives from the top. Perhaps the policy should move from "respond to everyone, but be brief" to "don't respond to everyone". Less people will find themselves going down a path that has a dead end, because they won't be encouraged by any feedback. This would also prevent people from feeling hurt when they spend hours/days/weeks on something only to get a two-second response. At least until the command-line becomes less pyramidal.

This is not the first project to have a BDFL. Many other great projects follow this same model (Linux, Python [until recently], Apple [until recently], the great architects [e.g., Mies van der Rohe, Le Corbusier, Frank Llyod Wright], etc.). In fact, I believe this focused thought leadership is why Clojure is so great. Rich is a Shepherd. There's a very clear goal that Rich has and he leads from the front to execute it, but it obviously doesn't scale.

One day our benevolent dictator (emphasis on benevolent) will have to come up with a succession/committee model. Perhaps some of this energy could be directed at that plan. Doing so would give contributors an outlet for their frustrations and might even give Rich some good ideas for how to "share the load".

share the load

@Kah0ona
Copy link

Kah0ona commented Dec 16, 2019

Just wanted to say: I agree, and thanks! I, as a programmer, had my views turned upside down in 2015, and since then I haven't looked back. I write clojure for a living, and 'snuck' it in in a handful of companies, in one it actually became a full on saas product with a small team working on it now. And I now run a profitable bootstrapped startup saas fully written in clojure/script.

Truly feel I am living the dream.

Thank you.

@StanleyMasinde
Copy link

StanleyMasinde commented Jun 9, 2020

Hehe sounds right

@edtsech
Copy link

edtsech commented Jun 9, 2020

Some open-source etiquette to think about https://github.com/kossnocorp/etiquette

@Malsasa
Copy link

Malsasa commented Jun 10, 2020

"If you disagree or imagine otherwise, that's too bad. It's my life and I'm not going to spend it arguing/negotiating on/with the internet. Write your own things and run your own projects as you see fit."

Hello, Rich. I do not know Clojure, but I got this article from RuboCop's developer, and I really like your words above. I agree and thanks, you made Clojure great.

@g1eny0ung
Copy link

g1eny0ung commented Jul 4, 2020

Thank you Rich, this inspired me more.

@guruma
Copy link

guruma commented Jan 18, 2021

Thank you Rich. I love Clojure from which I have learn a lot.

@jaimeagudo
Copy link

jaimeagudo commented Jun 3, 2021

God’s word 🙏 (no kidding) Thanks a lot for sharing once more!

@nickdex
Copy link

nickdex commented Sep 5, 2021

I think we can learn something by seeing it from a larger perspective, and recognizing that a conversation regarding the balance between them
Completely agree. I'm constantly amazed how people don't even try to gain that perspective. People (maybe not all but many) have good intentions, they are coming in from different directions. Being polarized is just wastage (attention, time, resources etc).
Good to see that is not the case here 👏

Clojure is indeed a gift, and a very addictive one at that 😄 Thank you @richhickey for the clojure and all the meta talks. Some even provide great oneliners 🤣

@hinell
Copy link

hinell commented Dec 29, 2021

This blog post is nice, but could have been much shorter. Really.

@abserari
Copy link

abserari commented Jul 5, 2022

That's true. Opensource doesn't mean help you without any requirements. The community only exists in those who contribute themselves. Although open source brings so many valuable things to companies or society. Open source just opens the source and helps share the intelligence of the researcher.

Thanks for this post.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment