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!

@cleverbeagle

This comment has been minimized.

cleverbeagle commented Nov 27, 2018

This is excellent, Rich. Thank you for writing and sharing.

@ericfode

This comment has been minimized.

ericfode commented Nov 27, 2018

Thank you.

@jjuliano

This comment has been minimized.

jjuliano commented Nov 27, 2018

Thank you Rich, as always, very valuable and insightful points.

@typesend

This comment has been minimized.

typesend commented Nov 27, 2018

Thank you, @richhickey, for all the things that you have produced and thoughtful ideas you have spread.

@mkarp

This comment has been minimized.

mkarp commented Nov 27, 2018

Thank you, Rich!

@judge2020

This comment has been minimized.

judge2020 commented Nov 27, 2018

Nice piece in light of dominictarr/event-stream#116

@mladoux

This comment has been minimized.

mladoux commented Nov 27, 2018

This! Seriously, unless you're paying my labor costs, you are not entitled to anything I produce, nor are you entitled to dictate what I produce or how. I love you man! This is the best breakdown I've seen.

@creactiviti

This comment has been minimized.

creactiviti commented Nov 27, 2018

Yes, yes and yes.

@brentvatne

This comment has been minimized.

brentvatne commented Nov 27, 2018

❤️ @richhickey thank you for everything

@LocusOfCtrl

This comment has been minimized.

LocusOfCtrl commented Nov 27, 2018

Beautiful.

@ping-hooq

This comment has been minimized.

ping-hooq commented Nov 27, 2018

Thank you for Clojure.

@enragedginger

This comment has been minimized.

enragedginger commented Nov 27, 2018

Rich,
You're the best. Thank you so much for all that you've done to make Clojure and its community the thing that it is today.

@sundbry

This comment has been minimized.

sundbry commented Nov 27, 2018

We appreciate you Rich & co. As the old adage goes, if you want something done right, do it yourself!

@dvliman

This comment has been minimized.

dvliman commented Nov 27, 2018

Thank you Rich!

@admiralbumblebee

This comment has been minimized.

admiralbumblebee commented Nov 27, 2018

Excellent write up Rich. Thank you for that.

@RandomGuyDTB

This comment has been minimized.

RandomGuyDTB commented Nov 27, 2018

Well said, thanks for sharing. Not familiar with your projects but I fully agree.

@devn

This comment has been minimized.

devn commented Nov 27, 2018

I get paid to write Clojure. Not bad.

Thank you, and thank you community.

@pringshia

This comment has been minimized.

pringshia commented Nov 27, 2018

Thanks Rich! Appreciate your patience and spirit in managing the inevitable "burden" of successful open source software. Your point is great and needed to be said. Thank you for voicing it.

At the risk of being fatalistic, I think this sense of entitlement is a feature of humans and will continue to plague open source. It's too common cross-sectionally amongst too many open source communities to just be a one-off idiosyncratic event. Some communities are able to temporarily solve the entitlement issues in the short-term, but end up reverting to the mean again in the long-term

Open source is about trust, and perhaps that feeling of trust fools people into thinking they have been granted a free leash to act on a sense of entitlement? We are used to (in many aspects of our lives) the role of being customers with high expectations of service. Society for the most of us in the privileged world has gotten so dependable, that it's easy to fall into the trap of assuming entitlement. However, when it comes to open-source, we're actually not customers in that we didn't pay a penny... Operating on this model is a tough paradigm-shift for most users.

@xiaodaigh

This comment has been minimized.

xiaodaigh commented Nov 27, 2018

Although I have never used Clojure myself, I am an admirer from afar.

@acobster

This comment has been minimized.

acobster commented Nov 27, 2018

Well said. I wasn't aware of any claims of the core team "standing in the way of meaningful contributions," but I can't say I'm surprised. At first, I thought this was in reaction to all the teeth-gnashing going on over at dominictarr/event-stream#116. It does seem to dovetail nicely.

In any case, I agree. Open-source is a gift. It's always a gift. Thank you.

@Fedreg

This comment has been minimized.

Fedreg commented Nov 27, 2018

Thanks for saying this Rich!!! I'm extremely lucky and grateful to be able to write Clojure code every day. Thanks for your (and everyone's) hard work on this great language.

@htmldrum

This comment has been minimized.

htmldrum commented Nov 27, 2018

Lending my support! 🥇

@mpettis

This comment has been minimized.

mpettis commented Nov 27, 2018

I'm sorry that good, successful projects like this attract a proportionate amount of misdirected entitlement. But I think it is important to state what you say here: open source projects have no obligation to anyone. If you pay for software, you pay for the expectation of support; if you use open source projects, you should probably just have gratitude. Any requests you have of the project should be thought of in the perspective of "This open-source project may care about the issue I'm having -- in exchange for their help so far, I can let them know about it." Beyond that, I have no right to expectation of anything...

@scotts777

This comment has been minimized.

scotts777 commented Nov 27, 2018

very well said! Thank you so much for Clojure. I am very fortunate to be using your great language every day where I work.

@dickbrouwer

This comment has been minimized.

dickbrouwer commented Nov 27, 2018

Well put, and thank you for giving us Clojure Rich. This post is spot on.

@bendlas

This comment has been minimized.

bendlas commented Nov 27, 2018

Thanks Rich!

I used to easily catch feelings of entitlement and anger as well. It wore off with age and/or with actually doing maintenance and contribution work in various open-source projects. Luckily I never let myself get carried all the way to publishing a venting post.

That said, I think the software community at large would be better off, if there was a more established culture of running one's own patches.

Here's a related nugget from the hackernews thread: http://www.skeeve.com/fork-my-code.html

@vaibhawc

This comment has been minimized.

vaibhawc commented Nov 27, 2018

Thank you Sir.

@aiba

This comment has been minimized.

aiba commented Nov 27, 2018

I have immense gratitude for Clojure and all the generous work Rich has done to make it so awesome. It's one of the best gifts anyone has ever given me. I've been using Clojure almost every day since 2010, and it boggles my mind what a big impact it's had on my happiness and productivity. Thank you!

@RutledgePaulV

This comment has been minimized.

RutledgePaulV commented Nov 27, 2018

Thank you Rich, Alex, Stu, Cognitect, and other contributors for all that you do to support Clojure and the community that has formed around it. I believe Clojure is so successful because of, not in spite of, your conservatism that continually prioritizes the long-haul over the clamor. I'm delighted to use the gifts you create and the ideas you share.

@pikeview

This comment has been minimized.

pikeview commented Nov 27, 2018

I strongly feel that a link to this should be added to the readme.md on clojure repo.

@fmind

This comment has been minimized.

fmind commented Nov 27, 2018

I'm very with the design of Clojure and the rate features are added to the language.

Moreover, I think Clojure, being a lisp, offers a great opportunity to move features from core to library.

@jakebasile

This comment has been minimized.

jakebasile commented Nov 27, 2018

Just want to say thanks for Clojure. It really is a gift. Sorry some people think they should look a gift horse in the mouth.

@stathissideris

This comment has been minimized.

stathissideris commented Nov 27, 2018

Thanks for Clojure Rich, it literally changed my career and re-ignited my love for programming!

@krlvi

This comment has been minimized.

krlvi commented Nov 27, 2018

Thank you Rich, for the gift of Clojure!

@ertugrulcetin

This comment has been minimized.

ertugrulcetin commented Nov 27, 2018

Thank you for Clojure and all your hard work!

@LauJensen

This comment has been minimized.

LauJensen commented Nov 27, 2018

Well written and absolutely correct. I suppose there's a paradox hidden in the fact that some users love of Clojure and the added desires that come with such a love, leads them to counter-productive attitudes. This is a fair reminder that trust in- and respect for the Core teams work is justified. Thanks for all your hard/brilliant work so far!

@darth10

This comment has been minimized.

darth10 commented Nov 27, 2018

Clojure has changed me as a programmer for the better.
Thank you for all your efforts!

@celwell

This comment has been minimized.

celwell commented Nov 27, 2018

Fair to me; and thank you for Clojure; it's been a joy to use.

@sideshowcoder

This comment has been minimized.

sideshowcoder commented Nov 27, 2018

Thank you @richhickey Clojure is an amazing piece of work and the stability is what makes it possible to actually use it in a lot of places where other languages don't work. Keep up the great work! And I bet pointing to places that could benefit from community help are greatly appreciated, most people tend to be friendly smart and serious about wanting to genuinely make thing better and that is what I see a lot in the Clojure space.

@briangordon

This comment has been minimized.

briangordon commented Nov 27, 2018

Just because literally everyone else has has nothing but positive things to say, I feel like a contrasting comment might be useful, so here we go...

Yes, of course everything you said is technically correct. You don't owe anyone anything. But you don't have to be so petulant about it. Saying that users aren't even entitled to an explanation of why they're not entitled to support is childish in the extreme, particularly because your own company and livelihood are heavily dependent upon the work that some of those users gave you for free.

Your comments about how open source isn't a community and is only a licensing scheme are, again, technically correct but unnecessarily hostile and even out-of-touch. The "cathedral" style development is increasingly rare and it's not at all unreasonable for users to wander into the Clojure universe and not realize that they've crossed a political border from the usual community method.

I do appreciate that you're making your position very clear - hopefully this can help projects and companies make better-informed decisions about whether they want to be locked in to a project that operates this way. Just dial it back a bit, eh?

@LVMBDV

This comment has been minimized.

LVMBDV commented Nov 27, 2018

Agreed, also thanks for Clojure 👍

@tommyettinger

This comment has been minimized.

tommyettinger commented Nov 27, 2018

I mean, we aren't entitled to good software. We aren't entitled to working software, even. Since I'm not entitled to an explanation, either, I might as well guess on my own whether Clojure is good or working software, no? It seems to have a lot of people posting some one-line piece of idolizing praise unrelated to the content of the post. Again, with no explanation given, I could guess by the character of posts here that Clojure is some kind of mid-level marketing gambit or a cult. But if I was permitted explanations, perhaps I wouldn't think that.

Open source may be a gift, but it doesn't come with batteries included, and so there's a cost for adopting such a "gift." If you want people to use your software, closed- or open-source, you do need to make it worth their time and show some basic decency to your users. I do wonder what necessitated this bizarre post in the first place, but I suppose I'm not entitled to an answer. And since open source isn't a community, only a licensing and delivery mechanism, I'm not entitled to show you any adulation or even respect; you need to deserve it as an individual. You had some respect before from me for recognizing important concepts regarding immutability and identity and building a language that elegantly handles them, but this post isn't helping in the respect department.

@pbalduino

This comment has been minimized.

pbalduino commented Nov 27, 2018

Thank you for Clojure. And also thanks for all the contributors and those who make this community awesome.

@ianchanning

This comment has been minimized.

ianchanning commented Nov 27, 2018

@tommtommyettinger

you do need to make it worth their time and show some basic decency to your users

No they don't.

By releasing the code it's implicit that the person open sourcing it has spent a lot of their own personal free time producing software that they believe is ready to share with the world. They've show the basic decency above and beyond what you'll get from any corporation. It's up to users of the project to show basic decency and respect for what the maintainers have done.

FOSS project maintainers need support not criticism. People are very happy to hand out the criticism for free but not the support.

@opvasger

This comment has been minimized.

opvasger commented Nov 27, 2018

This resonates with how I feel about these online interactions with projects maintainers. I try to be humble and respectful, as they've given me some of their time for free. Time and attention is in high demand these days...

@sadhu89

This comment has been minimized.

sadhu89 commented Nov 27, 2018

Thanks for all your hard work Rich!

@mrbig033

This comment has been minimized.

mrbig033 commented Nov 27, 2018

I don't know what this is an answer for, nor how public this was meant to be, but I must point out that, for someone who's not part of the Clojure community, you sure sound like a dick. And since I have good reasons to believe you are in fact not a dick, it might be a good idea to rethink your rhetoric.

@azzamsa

This comment has been minimized.

azzamsa commented Nov 27, 2018

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.

I will do the this ❤️ . Thanks Rich.

@rory

This comment has been minimized.

rory commented Nov 27, 2018

Excellent. As I've heard "If you don't like it, we'll give you a full refund"

@replomancer

This comment has been minimized.

replomancer commented Nov 27, 2018

Thank you for Clojure!

@andersmurphy

This comment has been minimized.

andersmurphy commented Nov 27, 2018

Thank you, Clojure is awesome! Love the healthy mix of stability and the steady pace of innovation. :)

@v-kolesnikov

This comment has been minimized.

v-kolesnikov commented Nov 27, 2018

Thank you, Rich! You are the best of us! ❤️

@claudiuapetrei

This comment has been minimized.

claudiuapetrei commented Nov 27, 2018

Thank you for Clojure ! ❤️

@halgari

This comment has been minimized.

halgari commented Nov 27, 2018

If you don't recognize yourself in the message above, it's not for/about you!

Well it is about me, so I've been tossing around the idea of replying, and figured it would be better to clear the air, than to let others draw their own conclusions as to how all this ended up.

Thank you @richhickey for taking the time to write this up. You very clearly explained something I haven't heard in the past, that there's a difference between "Open" and "Free" software. Some projects may work with an open contribution process, while others are designed as simply "a gift". I'm not sure I agree that this is a new distinction, as one could probably point to parts of the GNU projects or even Blender 3d as examples of long-running community run projects, but that's not the point you're making.

But I think, perhaps this is where these expectations arise. Blender, was the first OSS project I worked with, and of-course that bias moved with me into the Clojure world. And so I got increasingly frustrated when those expectations weren't met.

If I can be completely honest, a lot of the process in place with Clojure and the general tone of this write-up rubs me the wrong way. Mentally I agree with you, you owe me nothing. Emotionally it's hard to hear. It's hard to hear that I can work for many weeks on a idea, and that that idea may be thrown away with little more than "thanks, but no thanks". I'm a person who likes to collaborate, and to help others collaborate. That's the whole reason I love working on compilers, by improving my code (the compiler) I can improve the lives of many others. But, as we'd all agree, emotions don't write good software.

So what's the big deal? If I wanted to leave Clojure, why make all this huff and fuss? Part of it was expectations, and part of it is that Clojure had become part of my identity. I thought of myself as a Clojure Programmer, and so naturally I had a certain amount of inner turmoil when I realized that I was loosing the ability to influence my own identity. Rich, you have taught me so much over the years, directly and via Clojure, and that teaching became part of who I am. Over time that began to come at odds with the rest of my life: "Hey, you're the Clojure dude, why doesn't Clojure do X.", "Why does your company think Y is okay in Clojure?" are phrases I've heard more times than I can count. Sometimes I was well equipped to answer those questions, sometimes I agreed with them. Other times I found myself wanting to say "I haven't a clue why that bug hasn't been looked at". And so each new terse "we're fine with that the way it is" from the core team was yet another log to the fire. And this past week I snapped.

So let me formally apologize. I'm sorry I snapped and drug the community down with me in the process. I allowed Clojure to become part of who I was as a person, and that's something dangerous to do in any situation. As the leader of the community, you do owe me nothing, and as such, I thank you for taking time to reply to my gripes.

I wish I could say all this would be different if somehow I had done X or you had done Y, but I really am at a loss to have any suggestions in this area. A "hands-off" approach to a community means that you may inevitably get people, like me, who become a bit overly invested in what you wrote. So the only advice I have to the readers is, be careful what you consider part of your identity. I think your statement (and those from Stu) will be very helpful to any newcomers in setting expectations for how the Clojure community is run. Perhaps in a slightly different form they can be put on Clojure.org as a "rationale for how Clojure runs its contribution process".

Thanks for everything Rich, and please don't take my current leave-of-absence from the community as anger. It was out of anger last week, but now I'm using it as a way to reflect and think about where I want to spend my free time. And if/when I do come back, I promise, it will be without expectations.

@margerum

This comment has been minimized.

margerum commented Nov 27, 2018

The entitlement/PC culture is nauseating. I do more than express gratitude when I use the works of others. I pay them through patreon. Nice writeup Rich and I wholeheartedly agree.

@scientific-coder

This comment has been minimized.

scientific-coder commented Nov 27, 2018

Thank you for making the language I enjoy the most programming in (and that is saying something !)

@ccidral

This comment has been minimized.

ccidral commented Nov 27, 2018

Thank you for Clojure and all the hard work and sacrifice to build it! It's truly a gift, I love it!

@chaos-generator

This comment has been minimized.

chaos-generator commented Nov 27, 2018

To be honest, the stupidity of some people that drove you to write this article amazes me.

@guilespi

This comment has been minimized.

guilespi commented Nov 27, 2018

In our company, we've been using Clojure professionally -to make software that makes money for us- for the last 6 years.

For us, it wasn't a fashion thing, we've really being way more productive because of it. In a way, it was an "enabler" for us to do what we did.

From early on, community involvement was great, conferences were great, and the care and commitment to do something that didn't suck, was palpable, from everyone involved (including the people that has now deflected, which is IMO a real loss).

As @halgari said, identity and emotional involvement may have something to do with everything, most of us who are minding our own business, "only" see Clojure as something great, created by some really smart people with the time and resources to make it happen. Without even taking the time to stop by and say thank you, much less to get involved in this kind of battle over who controls what. (Which by the way, taking it public doesn't seem to be the smartest move)

So, from a happy user, thank you, we value the way Clojure is designed and managed, we've even had more time with our family because of it.

As they say, the problem of our time is that men don't want to be useful, but important.

G.-

@chpill

This comment has been minimized.

chpill commented Nov 27, 2018

@halgari Thank you very much for this honest response.

It's easy to dismiss all this as entitlement, but I don't think it's fair. Clojure also shines through the hard work of library authors like you. People care about Clojure, and as a result, they feel invested in its future. If they feel they cannot meaningfully weigh in on it, they will hurt, and they will go away.

I am extremely grateful for your work @richhickey. Without Clojure, I may not have continued working as a software engineer. But I am also afraid of what we lose when great contributors from the community are driven away.

@colonelpopcorn

This comment has been minimized.

colonelpopcorn commented Nov 27, 2018

@guilespi Where is that quote from?

Not personally using Clojure but I would like to thank the Clojure team for putting it together over the years. It's always nice to have different languages and ideas to choose from when building projects.

@thenailedone

This comment has been minimized.

thenailedone commented Nov 27, 2018

Well said.

@jerger

This comment has been minimized.

jerger commented Nov 27, 2018

+1

@tomhodgins

This comment has been minimized.

tomhodgins commented Nov 27, 2018

Thank you for taking the time to write and share this, most of what you said applies across all open-source projects. Even this explanation is a gift <3

@baldmountain

This comment has been minimized.

baldmountain commented Nov 27, 2018

I agree with all Rich had to say and wish to thank him for all he has shared with us.

There are a lot of people who seem to appear entitled, but I think that some of that may be a frustration that manifests itself as entitlement. Let me explain.

Businesses rely heavily on open source software. They have to because very few companies can start from scratch and write everything themselves. A large part of building a company, especially a startup, is fitting many pieces of OSS together into something useful. Occasionally, someone will decide that they want their project to go in a different direction, or they just delete it outright. A good example is when a developer removed all of their projects from npm and broke many projects that depended on one of them (left-pad specifically.) I don't disagree with why he took down his projects, or his right to, but he caused a lot of pain.

A closer example for me is a Clojure library that was a central part of our company's business. The developer renamed the project and took it in a completely new direction. Since we were dependent on this project; I forked it, rolled back many changes, and renamed it back to its original name. Since then we've worked to deprecate that system and replace it with a new one. In the long run this has worked out for us, but it did cause us a lot of anxiety at the time. I can't imagine what we'd have done if he had deleted it.

I guess the point I'm trying to make is there is a level of trust between an OSS developer and the users of the project. From a user's view it is extremely frustrating when he's bet the life of his business on a piece of OSS and the developer does something unexpected with it. Especially if the change breaks his business.

Having said all that, I'll mention that we are happy Clojure users and thanks for sharing. :)

@lukaszpiwko

This comment has been minimized.

lukaszpiwko commented Nov 27, 2018

Very well said!

I'm +1 on this

@bpiel

This comment has been minimized.

bpiel commented Nov 27, 2018

@halgari I have long believed this to be an excellent piece of advice. I applaud you for recognizing this in yourself and sharing.

be careful what you consider part of your identity

Thank you @richhickey and @halgari for this and everything else you've done that has improved my life.

@MalloZup

This comment has been minimized.

MalloZup commented Nov 27, 2018

👍

@ericnormand

This comment has been minimized.

ericnormand commented Nov 27, 2018

Clojure is awesome because of the conservative development process, not in spite of it.

@seancorfield

This comment has been minimized.

seancorfield commented Nov 27, 2018

As a long time open source contributor (since the early 90's) and owner/manager of a lot of projects over the years, I can only agree with Rich here and thank him for stewarding Clojure in such a careful, calculated manner -- that allows me to make a good living as a developer using Clojure in production for over seven years so far and being able to run pre-release builds in production because they're so stable.

Having run a lot of projects over the years, with varying degrees of control, I can say that it doesn't matter how you manage the OSS process, there will always be people who are unhappy with that process. Being an OSS project maintainer can be really draining at times with all the demands people make of you and the expectations they try to lay on you. If people complain that "the contribution process is too hard" and you make it easier, those people often still won't contribute (the process was just their excuse), and you'll still have people complain -- unless you allow the process to become a complete free-for-all (which won't produce good software).

If you set rules, there will always be some people who make a public fuss about a rule and some of those will loudly flounce out of your community. It can be a very thankless task -- so, on this Giving Tuesday, let's remember to thank Rich and Cognitect and everyone else who has contributed to Clojure and its ecosystem over the years!

@rhacker

This comment has been minimized.

rhacker commented Nov 27, 2018

This is an honest explanation for most of the open source projects out there. I hope this will reach to more readers.
I love both Rich and Halgari since I have learned a lot from you guys. Very well said you both.

@joshlawrence

This comment has been minimized.

joshlawrence commented Nov 27, 2018

I find that the majority of the people who feel that open source maintainers owe them something missed out on many of the things that make the hacker culture what it is (or was). If you don't understand what this means, start here: http://www.catb.org/~esr/ This should tell you everything you need to know.

@staypufd

This comment has been minimized.

staypufd commented Nov 27, 2018

Amen! You said what I have been trying to say for days but in a much more eloquent way. At Redhat and JBoss we had similar issues with entitlement attitudes. I for one appreciate what you have given and as a former owner of a Lisp Machine it was Clojure that made me not leave The software industry. I’d spent early years doing Smalltalk and Lisp and after they both died down going into work got super depressing with tons of wasted time and effort to fight systems that were soul sucking.

I for one said, “A-fucking-men!” When I read this. I felt exactly the same way for the last year and a half as I read and heard people complaining and having a entitled attitude about something you could have kept private and that you shared instead. For all that left or will leave, they have my best wishes, but so for one will be glad to get back to people focusing on what Clojure allows us to do, as being a Lisp it is almost entirely moldable. And where it isn’t what may be needed, it is easy enough to make another lib with some other Java language and call it from Clojure. I for one am glad we have people who keep the change slow and think and consider changes with such careful consideration. Common Lisp is stable as well and yet still to this day is one of the most capable systems out there.

To all that claim I and others a cultists of Rish, I say BS! I just have the expierence both commercially and in open source to know what I consider valuable. And I agree with Rich and have since the very first time this kind of topic came up years ago. Clojure has a long life ahead and I believe the community will continue to create great things bc Clojure gives pragmatic power via a Lisp for the JVM, CLR and Browser. Clojure is still the most powerful system across the board for a huge swath of problems.

Thanks for reading and Clojure’s future is bright in my opinion.

Sam Griffith

@jorinvo

This comment has been minimized.

jorinvo commented Nov 27, 2018

❤️

@fversnel

This comment has been minimized.

fversnel commented Nov 27, 2018

Dear Rich,

Not only do I completely agree with your statements about (non)-entitlement I also want to say: thank you! Thank you and the rest of the Clojure team. I have learned and am still learning many things from coding in Clojure.

Kind regards,
Frank

@kulminaator

This comment has been minimized.

kulminaator commented Nov 27, 2018

Rich, you nailed it (and you also nailed Clojure, it's awesome, thanks!)

@smnplk

This comment has been minimized.

smnplk commented Nov 27, 2018

I can already see the future of many Clojure dialects running on the JVM and I don't like this one bit.

@the2bears

This comment has been minimized.

the2bears commented Nov 28, 2018

Thank-you Rich for Clojure, and thanks to everyone who has contributed. You've helped me become a better programmer, and to love what I do for a living. Thanks also to the Clojure community in general. Proud to be a part of it.

@chadhs

This comment has been minimized.

chadhs commented Nov 28, 2018

Simply brilliant. This is the type of model for software i prefer. It's why I gravitate towards FreeBSD and Clojure.

@lifranc

This comment has been minimized.

lifranc commented Nov 28, 2018

It means you get the source for software and the right to use and modify it.

False; that right is natural. Any Idea can be copied by anyone without anyone's permission. Intellectual property is pure nonsense.

@corporatepiyush

This comment has been minimized.

corporatepiyush commented Nov 28, 2018

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.

It was the primary reason I adopted Clojure. Thank You Rich.

@purtuga

This comment has been minimized.

purtuga commented Nov 28, 2018

Thank you for writing this. It captures (IMO) the true purpose behind open source from an author/creator's standpoint when they make their software freely available to others. I'm thinking the first 5 paragraphs should be worked into a LICENSE.md file :)

@noahlz

This comment has been minimized.

noahlz commented Nov 28, 2018

As an open source...steward myself (Salat), I agree with the content 100%, but frankly the tone is a bit off-putting.

Clojure very much reminds me of an indie rock band that has a devoted following but never went mainstream. Of course, the band starts out learning and then making original music for free. Who doesn't? And, once they can make a modest living off their music, damn straight they will continue making it how they want, and can give the major labels - with their idea of what makes a "marketable" music - the proverbial finger. Of course, they might have concerts where the crowd boos b/c them for playing a set "from the new album" instead of the classics - but they still have a solid backlist sales that let them get away with it.

Like that indie band, probably the worst thing that could happen to Clojure (for its fans "who liked it before it was cool") would for it to make it big - a breakout hit. Imagine that IBM and Oracle decided that Clojure was part of their core strategy. Like Ruby and Python - which have competing interpreters - they might decide to re-implement (not fork) a Clojure - say "Conjure" - and have their own governance. Until that happens, Clojure users will have to live with the philosophy of the band leader - or as Rich says, start their own label!

@noahlz

This comment has been minimized.

noahlz commented Nov 28, 2018

@ianchanning

By releasing the code it's implicit that the person open sourcing it has spent a lot of their own personal free time producing software that they believe is ready to share with the world.

While Clojure is an example of this sentiment (thank you Rich) it's not a universally true statement. Corporations do(and should, dammit) pay developers both to open source new code and contribute to OSS projects. A library or entire system being open-sourced is very often not due to the altruism of an individual, but rather part of a technical and - yes - marketing strategy.

Old example: https://www.informationweek.com/enterprise/linux-kernel-maintainers--accountable-to-all-beholden-to-none/d/d-id/1061839

@nssalian

This comment has been minimized.

nssalian commented Nov 28, 2018

Thank you for sharing this!

@ianchanning

This comment has been minimized.

ianchanning commented Nov 28, 2018

@noahlz Good point, I hadn't considered corporations, but I think it's more reputational risk to release bad software than none at all. I wouldn't hold it against a company for releasing code that isn't ready, I just wouldn't use it. I'd also welcome any company wanting to open source their code and even better if they are willing to fix issues that others spot. They might do it for selfish reasons but if its any good we all win. But I think it's always user beware, neither the company nor any maintainer owe the user anything.

@rosejn

This comment has been minimized.

rosejn commented Nov 28, 2018

Punk rock! Here's to creating over community managing. Not that communities are bad, but they shouldn't be forced on anyone.

@superstructor

This comment has been minimized.

superstructor commented Nov 29, 2018

Hear, Hear @richhickey and thank you for all the Clojure! 👍

@zcaudate

This comment has been minimized.

zcaudate commented Nov 29, 2018

If you don't recognize yourself in the message above, it's not for/about you!

I'm not sure. Maybe. Though I've never attempted to contribute to core - I have been called entitled before.

But kindly don't burn the community down on your way out, with self-serving proclamations.

I did write an article that blew up but I haven't left the language. It's very difficult when the tooling and the design of core is just that good. Clojure is a great project and I'm still using it to this day.

@richhickey, you have the loudest voice with by far the most standing within a language that is essentially yours to do whatever you want with. I don't know anybody who disputes that. I don't think you should either.

Looking forward to the release of 1.10

@zcaudate

This comment has been minimized.

zcaudate commented Nov 29, 2018

Also, doing a bit more reading from the twitter feeds and from the Oxford Dictionary:

Entitled: Believing oneself to be inherently deserving of privileges or special treatment.

‘kids who feel so entitled and think the world will revolve around them’
‘his pompous, entitled attitude’

I think it's wrong to give that label to people that say want to leave something that they had passionately believed in. I am very thankful for @halgari's contributions to the core as well as core.async (also the videos were a big help), the llvm-compiler, pixie-lang and fn-fx. For me, it pushed the boundaries of what I thought code could do. I hope to see more of that, in whatever form (but hopefully still within a parens).

@greydrizzle

This comment has been minimized.

greydrizzle commented Nov 30, 2018

I appreciate your honesty. I think it's really important to know your personal views because it sets expectations fairly. The more clear your positions are, the easier it is to figure out how to make progress. And you should be able to run the project the way you want to.

Just today I was reading one of the negative discussions about patch submission on ClojureVerse and I finally got to the page where you said that patches were just faster for you to process and that was that. I could accept that easily. Helps to know it and move on.

I happened to be thinking earlier today about the very issues you discussed here and I concluded the same thing you said: there are plenty of ways to contribute and help improve the things you want to improve in Clojure, and it's a matter of picking something and doing it.

Believe me, every time I use Clojure I appreciate the good design decisions and the work that has been put into it. Thank you for that!

@mwpowellhtx

This comment has been minimized.

mwpowellhtx commented Dec 1, 2018

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

@dgustaf

This comment has been minimized.

dgustaf commented Dec 3, 2018

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

@dnando

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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.

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