Try to see the situation from the lead developer perspective
(e.g. Rich's perspective). I have been through the "head-punching",
as you call it and I don't want to put words in Rich's mouth but
I do see things differently.

To lead a project you need to make design choices.
To make those design choices you have to take a lot of factors
into account.
Those factors are optimized based on a lot of considerations,
most of which are stated in the project goal or justification.




As you say, "people who do not agree with the choices appear".
When they do, they generally advocate a particular position that
is in conflict with the project goals or justification. Or they
advocate for a new direction that gets rejected.

These "advocates" are of two varieties. Either they are casual
contributors (posters to the mailing list) or developers who have
invested a lot of time and effort going against the goals.

The "posters" who disagree tend to choose particular topics that 
they find familiar (e.g. autoconf, eclipse, emacs, maven, etc.).
These lead to mini-flame wars (head-punching, bike-shedding).

The developers who disagree tend to choose particular topics that
they have invested time and effort to develop code. These lead to
forks.

In either case, as the lead developer, you constantly have to 
justify your choices. The design space has a lot of freedom so
you have to make choices based on your best judgement. Not everyone
will agree, as you can see. This causes a great deal of stress
on the lead developer, which you DON'T see. Defending every choice
from every poster and developer takes a lot of time and effort.

What is particularly frustrating is the people who ignore your
effort to communicate. If you justify using Google Closure (as
Rich has), if you justify leaving out eval (as Rich has), if you
justify changing certain language features (as Rich has), then
it seems reasonable to expect that people pay attention to the
goals and choices. It is very tiring to keep repeating "the choice
has already been made", especially when code is being written to
support that choice.




As you say, "the language matters to them". Of course it does.
It also matters to Rich. The reason it "matters" is that Rich
is doing an excellent job navigating the design space based on
his considerable experience. He is solving deep problems, like
the expression problem, in novel and creative ways. He is making
tradeoffs based on a lot of factors (unlike the posters) which
take into account project goals such as important performance 
questions.

Posting emails about "who's unhappy with ..." is not constructive
criticism. And when it ignores already stated goals or justifications
it can only result in anger. As a Common Lisper, I see that Rich is
dancing all over my religious beliefs, but that seems to be my
problem, not his. If it makes me unhappy that's also my problem.
Being unhappy with design choices is NOT Rich's problem. So why
would I use Rich's mailing list to complain?

While it is fine to say "get involved in head-punching" I think
it is important to realize that it is Rich's head being punched.

Tim Daly


On Sat, 2011-07-30 at 01:26 -0700, Alexander Yakushev wrote:
> The moment I saw the previous controversial topic - about "yes
> language" push - I realized that Clojure has become mature. When the
> people who do not agree with some choices appear not just outside but
> in the community itself - it means that the language matters to them
> despite the parts they don't like. Matters enough not to just say "Ah,
> screw it, I'll just switch to FooLanguage".
> So, sit back, get involved in head-punching and just enjoy Clojure
> being a grown-up.
> 


-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to