Thanks, Adrian. I'm unsure about the disrespectful part - as I mentioned,
discussions around community problems are always difficult, but they are
important. As with all internet conversations, of course, tone is
everything.

But since this is very well-trodden ground, and for whatever reason it's
clear it won't change, I definitely agree they're unproductive. I'll be
leaving the non-error-message aspects of this conversation alone now.

On 26 August 2016 at 12:03, <adrian.med...@mail.yu.edu> wrote:

> Colin,
>
> FWIW, I think you're doing a great job of articulating your points (which
> I largely agree with) and are providing great feedback for the core team
> and community to think about. This conversation is supposed to happen as
> the alpha versions are being iterated on.
>
> But I think continually resurfacing meta issues one has with Clojure's
> management (and I'm not saying you're doing this, but others are) instead
> of engaging thoughtfully with a team who is engaging you thoughtfully is
> both disrespectful and unproductive. Actually, it's counter productive
> because it can unfortunately make people think twice before taking you
> seriously in the future.
>
> Like you, I think friendly error messages is an important issue for
> Clojure. We have an amazing source of heavily annotated information we can
> use to generate best-in-class error messages thanks to clojure.spec. We
> should refocus this in thread.
>
> But I'm not a moderator, so I guess take whatever I say with a grain of
> salt. :)
>
> On Thursday, August 25, 2016 at 7:12:04 PM UTC-4, Colin Fleming wrote:
>>
>> I really don't understand how you expect anyone to take your criticism
>>> seriously if you keep implying you're happily abandoning the language for
>>> greener pastures.
>>> Why would anyone developing Clojure look at anything you have to say at
>>> this point as anything less than trolling?
>>
>>
>> Because if we're genuinely interested in improving the language and the
>> community around it, the people who are deliberately choosing to leave it
>> have the answers to what we need to do that.
>>
>> I develop Cursive, and I'm always very interested in feedback from users,
>> and I'm really *more* interested in feedback about what they don't like
>> because my opportunities for improvement are there. It's always nice to
>> hear that people love Cursive and those messages are an important part of
>> maintaining my motivation to continue working on it. But in terms of
>> feedback that I can directly action, problems are where it's at.
>>
>> Of course, sometimes that feedback is not useful, actionable or valuable.
>> "IDEs suck" gets ignored, in much the same way that "Clojure sucks because
>> it's dynamically typed" should. "I don't use it because I find IDE's too
>> heavy" (like "I don't use Clojure because I prefer strong types") is fine,
>> there are lots of people out there with different preferences and I can't
>> cater to everyone. Being based on IntelliJ is what Cursive *is*, and I
>> can't change that. But if someone uses Cursive a lot, likes it, talks
>> publicly about how much they like it, participates in the issue tracker and
>> on the mailing list etc etc but then says "I'm taking up Emacs because I
>> can't stand how Cursive does x, y, and z" then I will absolutely try to
>> make those things better.
>>
>> Criticisms about how the community works are perhaps the hardest to hear
>> since they seem very personal - if we're active in the community, in some
>> way they're directly criticising the ways we behave. Similarly, they're
>> much harder to fix. But they are essential, since no-one uses a programming
>> language purely because of the language itself these days.
>>
>> FWIW, I share many of Brian's concerns.
>>
>> On 26 August 2016 at 03:46, <adrian...@mail.yu.edu> wrote:
>>
>>> I really don't understand how you expect anyone to take your criticism
>>> seriously if you keep implying you're happily abandoning the language for
>>> greener pastures.
>>>
>>> Why would anyone developing Clojure look at anything you have to say at
>>> this point as anything less than trolling?
>>>
>>> Back on topic, I find Colin's suggestions about implementing an error
>>> reporting heuristic intriguing. What he has laid out could form the basis
>>> for a solution to this problem which can satisfy everyone's requirements
>>> when integrated well with spec's explain-data. I am curious to hear what
>>> Alex and others think about it.
>>>
>>> On Thursday, August 25, 2016 at 11:18:28 AM UTC-4, Brian Marick wrote:
>>>
>>>>
>>>> On Aug 24, 2016, at 9:28 PM, adrian...@mail.yu.edu wrote:
>>>>
>>>> I do not think your tone and lack of constructive feedback to Alex's
>>>> (and others) thoughtful responses is helping your case.
>>>>
>>>>
>>>> Probably not(*), though I would characterize the responses differently.
>>>> They are polite, and they are intended to be helpful to someone who already
>>>> agrees with axioms like “good error-handling is a nail for which core.spec
>>>> is the hammer” and “it is wise to push the responsibility for error
>>>> understanding to third-party libraries or diligent study”. They do a
>>>> service in that they lay out the rules under which Clojure users should
>>>> expect to live. But they are largely reiterations rather than engagement. I
>>>> find that rather frustrating.
>>>>
>>>>
>>>> Let me point to an essential book on business/community management,
>>>> Hirschman’s /Exit, Voice, and Loyalty/. https://en.wikipedia
>>>> .org/wiki/Exit,_Voice,_and_Loyalty, and to a clever take on group
>>>> behavior, “Evaporative Cooling of Group Beliefs”, http://lesswrong.com
>>>> /lw/lr/evaporative_cooling_of_group_beliefs/. I think there is much to
>>>> learn from reflecting on those and the direction of Clojure design and the
>>>> Clojure community over the past few years. (I’m not a huge fan of the
>>>> application of Satir’s family counseling theory to software management -
>>>> Gerald Weinberg and the like - but it’s hard not to read books like the
>>>> /Quality Software Management/ series and see people in the Clojure
>>>> community - including me! - playing out stereotypical dysfunctional roles.)
>>>>
>>>> Read me as someone who’s publicly and self-destructively giving up on
>>>> Voice and is on the way to Exit. As someone who tends to Loyalty (though
>>>> perhaps the loyalty of the traditional Catholic Devil’s Advocate), it’s
>>>> rather agonizing. That is, I still think Clojure is the best raw language
>>>> out there for broad-spectrum work. However, its design has been doubling
>>>> down on long-unfortunate tendencies, and - I’d argue - new languages like
>>>> Rust, Elixir, and Elm (even Pony) - are raising the bar for both community
>>>> management and “peripheral” concerns like documentation and error handling.
>>>> In the meantime, the Clojure ideology - reinforced by memes like
>>>> “complecting” - has been getting more rigid.
>>>>
>>>> The result is that what seem to me bizarre decisions are treated as
>>>> normal. We have an `any?` in clojure.core that always returns `true`. This
>>>> deviance from probably every other programming language is justified as
>>>> obvious for a feature - clojure.spec - that is largely unproven, certainly
>>>> when it comes to error reporting. (Even worse, we have `any?`, `some?`, and
>>>> `some` - all idiosyncratic.) Yet the idea of changing the name of `any?` is
>>>> completely dismissed, with the justification that people complain about
>>>> every new name. (Think about what that decision criterion entails, broadly
>>>> applied.)
>>>>
>>>> Also bizarre: the idea that error messages that amount to essentially
>>>> dumping a parse tree + BNF-ish grammar clause (possibly twice with a
>>>> vomitous stack trace between) is a *good* thing. Not a “we wish we could do
>>>> better, but software development is about constraints and tradeoffs” thing.
>>>> Not a “yeah, but Rich Hickey doesn’t want to bother with that stuff” thing.
>>>>
>>>> (I was honestly flummoxed that, although clojure.spec is supposed to be
>>>> the answer for error handling, there’s been no attempt to work through what
>>>> good error messages would be like and how the current infrastructure would
>>>> support the translation from raw data to such error messages.)
>>>>
>>>> I cannot help but think of this as groupthink. And - to be grandiose -
>>>> having people like me Exit will increase that, per evaporative cooling.
>>>>
>>>>
>>>> I also note that my library, Midje, is typically insulted on this
>>>> mailing list whenever a newbie brings it up. One of the contributors to
>>>> this thread has called it “an abomination”. There was no similar concern
>>>> about *his* tone. Because, I suspect, he's on the inside, punching out.
>>>>
>>>> ---
>>>>
>>>> (*) Might that not be my fiendish plan? Perhaps I’m being abrasive on
>>>> this list exactly to associate ideas like “error messages are the
>>>> responsibility of the compiler” as being from a hated Other, thus hardening
>>>> a position that I think is bad for Clojure. Why would I do that? Because
>>>> I’m 90% likely to be going all-in on Elixir and Elm. Encouraging
>>>> destructive behavior in a competitor language increases my languages'
>>>> chances of success. Bwahaha! (Oops, just violated rules 6 and 7 of
>>>> http://www.eviloverlord.com/lists/overlord.html )
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+u...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> 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
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to