A postscript about the validity of claims
The problem with talking about the tone of the Clojure community is that almost no statement can ever be proven. Rich Hickey and I went around and around about this on Twitter. So after citing this statement of his:
If people think that spending fifty percent of their time writing tests maximizes their results—okay for them. I’m sure that’s not true for me—I’d rather spend that time thinking about my problem.
… I could say that I read a snarky “[those losers]” implicitly attached to “okay for them.” I could say that “fifty percent of your time writing tests” and “rather spend that time thinking about my problem” are complete mischaracterizations of TDD as it’s actually done. And I can say that those mischaracterizations and that snark will be aped by programmers who want to be Rich Hickey.
I could say all those things, but the statement as written isn’t false. It can even be given a generous reading. But—if I’m right—programmers like me won’t stick around to hear defensible statements defended. They’ll just look for friendlier places where they aren’t expected to deal with decade-old arguments as if they were new and insightful.
Please note that I’m not saying Rich Hickie’s design approach is wrong. I suspect for the kinds of problems he solves, it may even be true that his approach is better across all designers than TDD is.
September 30th, 2011 at 12:29 pm
[…] A postscript on the validity of what I claim […]
September 30th, 2011 at 7:50 pm
What Hickey missed - probably because it’s hard to be observant - is that the person spending 50% of their time writing tests is using *that* time to think about their problem. Tests are not only for making the code right but for testing our understanding of the problem.
October 1st, 2011 at 11:57 am
I–unfortunately–have to chime in on the claim that the Clojure community is what I call “newcomer-hostile.” I *love* Clojure, despite all the problems I’ve had with it, and the experts in the community have been polite and have tried to be helpful, but there is a resistance to taking the problems of newcomers seriously (see the incredibly arcane “solutions” proposed to the simple problem of getting a Clojure program to read a line of text input: http://groups.google.com/group/clojure/browse_thread/thread/9261480fbea72ead/c2fb8a910ee410cf?hl=en&lnk=gst&q=Gregg+Williams#c2fb8a910ee410cf ).
I later wrote a detailed post describing how I saw the community’s attitude (”We’re smarter than you, and it shows in everything we do. If you can’t keep up, too bad. If you don’t do things the proper way–that is, the way *we* do them–you’re not welcome here.”).
In that post, I also argued that if newcomers aren’t welcomed and nurtured, they will leave, with disastrous consequences for Clojure itself: “Here’s what will happen: Newcomers will walk out the door if we don’t give them every encouragement to stay, if we don’t actively help them with whatever problems they experience themselves as having. Clojure will remain this quirky little fringe language with a small oddball (but very smart!) following, less important than R or Lua or any number of niche languages that have reached out to the larger programming community.”
The responses were very discouraging, and none (that I can remember) acknowledged that I had any valid points. (The discussion, on the Google Clojure group, is named “Clojure stack” and is at http://groups.google.com/group/clojure/browse_thread/thread/f97699164e9be29e/84b9a6e846ded882?hl=en&lnk=gst&q=Yegge#84b9a6e846ded882 . My post is the 14th from the top, and responses are among those that follow. I *really* recommend that people read my post and the responses to it.)
At that point, I gave up. But I was encouraged by your recent post, and I’m using this response to bring attention to my concerns again. I *don’t* want to see Clojure become a niche language. But if the community doesn’t address the needs of newcomers (don’t call us “newbies” or, worse, “n00bs”), Clojure will never be an influential, widely-used language.
October 1st, 2011 at 2:44 pm
@GreggInCA, as with any open source project, itches get scratched based on perceived need and priorities. I don’t think clojure tries to be more useful for console entry than other languages. I think there is some unneeded sense of entitlement there. If you really like clojure but have some trivial hang-ups about it, it’s within your power to change it for your purposes, especially with tools like github at your disposal. This is why we have a project like leiningen in the first place, it’s less of a pain than maven. A community both gives and takes.
October 1st, 2011 at 7:43 pm
@GreggInCA: the clojure.org Getting Started page now links out to the community page http://dev.clojure.org/display/doc/Getting+Started. This should become a landing page where people can self-identify their interest and level and select the style of documentation most useful to them.
Improving the pages (and navigation model) at dev.clojure.org is a great way to help out if you want to make a smoother path for beginners. Hope to see you there.
October 2nd, 2011 at 4:20 pm
I walked away from the Clojure community a couple of years ago, because I found the demeanour of the community distasteful. I was wrong to do so, and I regret it. I shouldn’t have let the attitudes I perceived in others take something wonderful away from me.
A few months ago I decided to adopt an attitude of “Illegitimi non carborundum” and started actively working with Clojure again. I’ve made three discoveries since then.
1) Consciously deciding that I wouldn’t allow things I would find upsetting or irksome to upset or irk me has worked better than I expected.
2) The Clojure community, whilst challenging at times, also has a remarkable generosity. Consider the recent (successful) efforts of the community to help Ambrose Bonnaire-Sergeant and Laurent Petit get to Clojure/Conj.
3) Internalising that, whilst they might be gruff bastards on the outside, but still good people made it easier again to shrug off the negativity I sometimes feel.
Just a few thoughts from someone who appreciates what you do.
Rob.
October 2nd, 2011 at 8:51 pm
Great comment Rob - and it applies to all aspects of life: we control how things make us feel. Glad you’re back in the community!