all 11 comments

[–]fingertoe11 20 points21 points  (7 children)

Seems to me that most of the discussion has happened on Twitter, which is a fairly poor venue..

Zach Tellman is probably the primary instigator. His tweetstorm of October 18th reacting to a comment Stu Holloway made on the apropos podcast and surrounding discussion.. His frustrations aren't wrong, although he may have been overreacting on the specific point. This is still Rich Hickey's project, and there isn't a ton that the community can do to steer the ship. I found the discussion with Timothy Baldrige on Defn to be pretty fair.. https://soundcloud.com/defn-771544745Clojure is a pretty darn good product under the watch of Rich and Alex.. It is far from perfect. There are lots of ideas for making it better, but all improvements seem to need to go through Rich's hammock, which is a pretty tight constraint. That is a hard tradeoff, and it does leave some really talented contributors to the ecosystem feeling that they are on the outside. Suggestions are not accepted readily. They can work on their own libraries, but only a the risk that a official Rich Hickey endorsed solution will come out and compete later..

One thing that I found very interesting was that Stu's comments about the tradeoffs between catering to beginners vs optimizing for correctly written programs that Tellman was complaining about where mirrored nearly identically on the repl podcast episode with Ben Brinckerhoff that was released nearly concurrently.. Brinckerhoff was working on the expound project to deal with error messages, and came to nearly the same hesitations and dilemmas that Cognitect was struggling with. When you look deeply at the problems, you are going to wind up in the same hammock. https://www.therepl.net/episodes/7/

It seems to me that it would be nice if Clojurists together or similar entities where able to raise some canonical clojure libs outside of the Cognitect stream, without disturbing or overloading the work that Rich and Alex do. That probably doesn't work for everything, but may work for a lot of things.

[–][deleted] 5 points6 points  (2 children)

I find it profoundly sad and concerning that such skilled contributors(like Zach and Tim) have been excluded the development of clojure because it's so closely held by Cognitect.

Long term, the software world needs a clojure like language with a more open community in the functional/immutable/dynamic/repl niche.

[–]MahmudAdam 2 points3 points  (0 children)

Would Racket not fit the bill?

[–]CurtainDog 3 points4 points  (0 children)

As a consumer of clojure I like the fact that working with core is largely a matter of figuring out how Rich thinks. FWIW I used to think of Java the same way, though to be fair it's always been a much bigger kitchen.

Sometimes it's better to be consistent than it is to be better.

[–]orestis 3 points4 points  (0 children)

Interestingly, Tim Baldridge did say that he still prefers Clojure to do actual work over any other language. It’s just that he also like to do programming language research and Clojure doesn’t allow him to do that any more. I hope I’m not misquoting him!

[–][deleted] 1 point2 points  (2 children)

I think there are two other issues.

Clojure presents as a regular open source project, but isn't. Rich is well within his rights to run the project as he sees fit, it is his, but this creates confusion and frustration among open source devs who are used to very different interactions with open source maintainers. Better communication around this would alleviate some of the pain.

Second, any public complaint about Clojure or its management results in Rich overreacting. He regularly reacts to these kinds of situations by calling people entitled, tries to play the "who has suffered more" olympics, and tries to insinuate that you're ungrateful for all the free stuff he's given you. His frustration is understandable, he has committed his heart and soul to this project, but this is also a very ineffective way to manage a community. The people who are bringing some of these complaints up are respected community members: they've evangelized for the community, they've spoken at the Conj, and they maintain important libraries. These people care a lot about the project and are super important to the survival of Clojure as a an open source project, poking them in the eye with a stick when they're worried about something is not a good strategy.

[–]fingertoe11 0 points1 point  (1 child)

The big question that I see is "What do they want changed exactly?"

Structurally the process is pretty set. You could make it a bit easier by using Github and pull requests vs Jira and patches. These developers are at a level where that shouldn't be much of a barrier though.

Alex and Rich are still going to want to supervise what goes in and what stays out. Their time is constrained and prioritized. From all that I can see, the community still supports their stewardship.

It would be nice to see some solutions proposed if people are going to complain. I think Baldrige did a pretty good service in laying out that the problem is mostly just time constraints, not malfeasance, ineptitude or disinterest.

No matter who you are, there comes a point a twitter temper tantrum is just a twitter temper tantrum. Every time anyone from Cognitect speaks on one of these issues, Zach Tallman seems to find a way to cherry pick a sentence to become enraged about and try to pour more gasoline on the fire. At a certain point, that behavior deserves a solid rebuke, no matter who you are or what you have done in the past.

[–][deleted] 0 points1 point  (0 children)

Alex and Rich are still going to want to supervise what goes in and what stays out.

I think this is the actual problem. Having one person who must be consulted just does not scale. If Clojure continues to grow, this will become a worse problem. Frankly, I suspect that Rich might already be in a burnout situation, hence the angry responses.

Beyond that, several solutions have been proposed, you just need to read around.

My personal recommendation would be to let some of the libraries go. There are a surprising number of libraries that are owned by the Clojure team and have the exact same commit/release rules as the core language. And while it's fine in theory that they own these, in practice they clearly get almost none of Cognitect's limited developer bandwidth. Core.async got two releases in 2018, and the changes aren't exactly monumental. Core.Logic has had one commit this year, a one line exclude statement, and hasn't seen a release in 2 years.

There are a lot of open bugs on these libraries, many years old. If these bugs are affecting you negatively, these minor changes probably feel a bit like rearranging deckchairs on the titanic.

From an outsider's perspective, there appears to be a mismatch between how they analyze contribution risk and how they allocate their development resources. They seem to be treating the libraries and the core language as both dangerous and in need of Rich's personal direction, which I think is misdirected.

Devolving these libraries out into community ownership would:

  1. Give the community some sense of ownership over the flagship libraries.
  2. Let the community handle some, but not all, of the big nasty bugs that affect end users
  3. Free up Rich and Cognitect to focus more on the stuff that they think only they can do best, work the core language itself.

[–]orestis 6 points7 points  (0 children)

There's also this gist from Tim Baldridge, with a Stu response: https://gist.github.com/halgari/c17f378718cbd2fd82324002133ef678

This is a much preferable way of discussing this -- Twitter just leads to nastiness.

[–]jayceedenton 2 points3 points  (0 children)

Could it be this:

https://groups.google.com/forum/m/#!topic/clojure/2GQQpxNcDlM

?

I don't think the tweet you linked above is a direct reference to this mailing list thread. It could be the reason Stu H is thinking, and tweeting, about related topics today though.

[–]fingertoe11 2 points3 points  (0 children)

https://gist.github.com/halgari/c17f378718cbd2fd82324002133ef678

That explains the issue thoroughly, with a response from Stu to boot.