Subject: So now you're a BigShot now? (clarification re. "MinGW Glib")
From: Soren A <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]
Date: Sat, 28 Sep 2002 23:23:21 +0000 (UTC)

The topic is build configuration of software packages as done by many
authors/maintainers who used GNU Autotools as their build system. I was
challenged on a patch I showed readers of the "mingw-users" List, a
patch to the current glib 'configure.ac' file. My response, which I
"crossposted" to the Autoconf-Users List because of the salience of the
issues, may leave some readers with confusion (even if they don't know
it) about the intent of my statements (especially in view of some
portions with numerous typos ;-). I am going to try to clarify my main
point here. Many may react with disagreement; the views I am expressing
are expected to be seen as "controversial." 

I wrote in <[email-masked]> on Sat, 28 Sep 2002 
18:16:09...
>      Almost no degree of invective would suffice to express how
>      resentful I feel I justifiably am on account of this blindness or  
>      warped perspective on the part of people who have become
>      comfortable and dogmatic about Autotools. It has made people who
>      write or maintain Autotools-based 'configure' scripts complacent
>      and mediocre about the quality of their scripts and a huge part of
>      the problem lies there. I cannot even blame the maintainers of
>      autoconf and its chums to the degree that I blame the package
>      maintainers out there for laziness and lack of empathy and insight
>      into what they are inflicting on their users.

What I meant by that is explained from here.

"So You are a BigShot now"
--------------------------

This is addressed to people who have taken up maintainership of Open Source  
software packages (either as an inheriter or especially as an original 
author). You know better than anyone what sort of thought process you lived 
as you reached a decision to undertake this.

I've read a lot of defensive vitriol in the past along the lines of "how 
DARE you criticize or complain about people who voluntarily and without 
compensation maintain Free Software for you, the Obviously Ungrateful User, 
to enjoy." I have a got a couple observations to make about that old 
schtick now.

First of all, in Hackerdom, the line between "Users" and "Producers" is far 
from cut-and-dried. Many users of somebody's package are authors or 
maintainers of other packages. There's mutual interdependency here.

Secondly there is the fact of human nature that there ARE compensations
for maintaining Free / Open (abbrev "F/O" from here) Software. They are
intangible compensations. Developing software is innately rewarding for
many people who do it (hopefully for those for whom it is not, they'll
eventually get into a different line of work more suited to them). There
is the justifiable pride of workmanship. Software is a creation of the
mind and it *does* things, useful things. Developing a good piece of
software is no different from inventing or making a good tool or
machine. 

Also, there are the opinions of peers (others who are 'in the know' about 
programming) and the regard one can come to be held in by producing a good 
software tool. If your tool is VERY successful, it might become the 
foremost of its kind, dominating an entire niche. If it becomes something 
that other tools rely on, then you'll be in the position of having others 
dependent on you (which is a fundamental type of _power_ in all realms of 
human affairs).

Some authors or maintainers also have philosophical beliefs and
convictions that concern a different, more abstract level than the
pragmatic "what it does" -ness of the package. Such people feel a sense
of being a part of an important and liberating movement in Human
history, that supporting a piece of the Free Software movement and Open
Source is promoting values and principles that can lead to a better
society and way of life for all people in the future. 

Finally there is an aspect of reward that's possibly more fundamental
than any of the others mentioned above. That is simply the sense of
righteousness or worthiness one gets from giving something to others,
from being the giver of the gift. Individual people vary in capacity in 
terms of to what extent they experience this or can be conscious of 
experiencing it.

"So You are a BigShot now" means simply to make reference to the fact that 
for all these reasons, something we finally have to admit is about "status" 
in the F/O Community being connected to authorship or maintainership of 
software packages. It is not just ME who says so; those who have read Eric 
S. Raymond will be familiar with this discussion. And "BigShot" refers not 
only to how others view you, but also to how you (in the secrecy of your 
own heart) view yourself.

This mutual-interdependency thing is innate in the philosophy of code
re-use that is a primary principle of GNU. I having been trying to
express something that I see more and more of that I think threatens to
rot the underpinnings of this F/O software world.  As I learn, I try
more and more packages, and am especially inclined as a "consumer" of
software to invest my time and attention in F/O software. If there exist
two or more projects that do roughly the same thing, I want to use
("support" by increasing the user-base of) the Free alternative. One
reason is that historically it is becoming clear that F/O software can
often beat any other sort in quality. 

But the quality of software isn't just a question of today, the day it
is first released; it is a question of future maintainance and support
and extending of the software. Supposedly F/O software can be evaluated
as much higher in quality than proprietary alternatives, by this
standard. Supposedly. 

It is also, in the case of F/O software, very much a question of how the
build support is done. And that's where I am seeing the Open Source
paradigm beginning to list badly in the water. I have been repeatedly
getting obnoxious, ignorant replies from package maintainers (and others
who seem to have some "loyalty investment" in the package in question --
an "affiliation relationship") when I attempt to state my experience and
observations about some aspect of the package and its build setup. The
kind of replies I get are nothing short of *disrespectful* at best. At
worst they can be said to embody a kind of "passive violence."  

***********************************************************************
I'd like to tell the maintainers and authors how I feel about this, as a
user. I feel like someone has held out a gift to me in one hand while
with the other hand they are slapping me in the face. 
***********************************************************************

I think the people who do this -- and often they have been maintaining a
package for a lengthy time -- have maybe decided that the forms of
"compensation" (intangible) enumerated above are no longer sufficient.
They have decided that their "reward" for the "selfless" work of
maintaining the Open Source software package is going to be to indulge
their own arrogance. Arrogance is a strong word but really is the right
word that fits the situation where someone has decided that their own
instincts about "What To Expect" are beyond questioning and that any
volunteered feedback or expressed opinion directed to them, that
contradicts, it is beneath their contempt. 

"TMTOWTDI" is the catchphrase of Perl, the computing language I learned
first. But not all "ways to do it" are equal (and Larry Wall believes as
I do). I believe that factors of human psyche (how we are 'wired') make
some ways more intuitive and natural than others for the majority of
users (whilst I acknowledge that there are important diversities amongst
human beings in how we are 'wired' internally). In the course of
developing a software project, or authoring the build configuration
system in the case of the package maintainer who is not the primary
author, that individual is engaged in a sometimes-lengthy and isolated
task and can *lose touch* with a solid sense of "what to expect". In
that case the thing that needs to happen is *feedback* from users. This
goes as much for issues pertaining to build, in the case of F/O software
where the 'consumers' may be a mass market of people who will be building
the software from source code, as it does for the UI of the package
itself, etc.

Previously I wrote (but typos fixed):
>      Experts ignore or dismiss this kind of data point at peril of
>      being completely, truly disconnected from the reality of what the
>      users they are supposedly 'serving' have experienced. If it's
>      just me saying this, then how many other people who you will
>      never hear from (because it doesn't seem worth it to them to make
>      the effort, because they don't think 'you can fight City Hall',
>      or whatever) have similar experiences? You really ignore and
>      reject this broad point at risk of being a person who believes in
>      a view of reality that is false. Those who believe in false
>      realities -- whether religious, or philosophical, or technical --
>      are doomed to hit a brick wall sooner or later. And seldom seem
>      to even see it coming.

What I was trying to express in the para above is what I expounded on at
length above. The nature of programming as work itself is such that most
if not all developers need at least occasional feedback in order to
improve the useability or robustness of their project. What seems to
have happened is a general subtle shift in attitudes in which more and
more authors and maintainers seem to feel that what amounts to a defeat
and a betrayal of the principles of interdependence (and that which
ought to accompany it: openness and basic showing basic respect for
others) is "OK" behavior. Whatever it is that people think they see
elswhere in the World -- from CEOs and politicians and the like -- the
fundamental truth is that this decision to pay one's self off with
indulgence of one's arrogant nature is a deal with the devil. 

Again, I wrote:
>    This is unbelievably unfriendly to novice users of Autoconf-based
>    'configure'. Somewhere there is this incredible disconnect in which
>    people like yourself say "users of XXX don't know about lib/ or DLLs"
>    but then expect someone who would be willing to try running a
>    'configure' script to be an all-out Guru with nearly supernatural
>    powers of diagnostic insight. 

The point of all this verbiage is *not* that I cannot accept criticism
of a patch I show or submit. I am only a fallible human and so my
suggestions aren't 100% perfect. But it is the _basis_ on which I have
been seeing objections raised that motivates me to compose this article.
More and more I have been seeing people respond in a dramatically
close-minded way, saying what amounts to "that's a stupid waste, it
isn't necessary." This kind of reaction is indicative of the kind of
creeping rot in people's brain cells that I have been describing above.
Because that IS what Arrogance does: it rots your brain (mind).
Criticizing someone for *working too hard* or making extra effort to
make things easier for users is backwards, wrong, foolish,
narrow-minded. And it has impacts that subtract from the vibrancy and
betterment of our whole F/O software movement. 

I am not suggesting that being a package maintainer means you ought to
be a doormat for abusive people to wipe their feet on, and I am far from
ignorant of the massive quantities of painfully ignorant ("clueless")
pleas for help you'll get from users who never learned to help
themselves by RTFM'ing before bugging the author. Or from the people who
just write "it doesn't work!" without giving the slightest effort to
providing descriptive detail so you can find an answer for them. I've
spent my time in the old USENET (and yes, even CompuServe before it
ended); many 1000's of hours trying to help newbie users out. I've paid
those dues and I know what I am talking about.

What I am seeing is that some maintainers seem to have no sense
whatsoever of there being a possible middle ground between being a
passive doormat and adopting a posture of passive-aggressive, full-blown
unresponsive arrogance. 

Somebody wrote to me:
> > -dnl Initialize maintainer mode
> > +dnl Turn on maintainer mode to save users from Automake Hell.
>
> I don't think GLib's configure.in is the right place for statements
> like this. Personaly, I don't think Automake is that bad. It's libtool
> which is the worst (most complex, hard to read, slow) of the auto*
> tools.

My response was:
>      I do not give a damn whether anyone thinks it is appropriate. The
>      brief phrase "Automake Hell" does not even begin to convey how much
>      trouble, how many umpteen gazillion wasted man-hours has been
>      caused by the fundamental design decisions / policies of the
>      'automake' authors. Placing it in a 'configure.ac' script that
>      users might read is my expression of my right to Free Speech (which
>      somewhere along the line WAS connected to what Free Software was
>      supposed to be about) and what's more, is done with the intention
>      of emphasizing to anyone who is or might become the author of a
>      'configure.ac' file or become a package maintainer, just how
>      crucial this belated Automake band-aide is (absent any better cure
>      for the badness that Automake inflicts on users).

I'd like to make the following request. If you, the reader, is a package
maintainer or will become one, and particularly if you decide to base
your package build configuration of full-blown Autotools treatment with
Automake as well as Autoconf and GNU libtool, then please consider this
well. 

If you are going to adopt the attitude that simply hacking out a basic,
standard Autotool'd build-config is all that's required by the standard
of Software professionalism / quality that you choose to adhere to, then
please put a BIG logo or something on your site so that I can avoid you
and your software like the Blue Plague. Something like 

   *******  ******* ******* ******* ******* *******
   *                                              *
   *     M A D E   W I T H  A U T O M A K E       *
   *                                              *
   *******  ******* ******* ******* ******* *******

ought to do the trick. That way I won't have to go to the trouble and
waste the time downloading your tarball, unrolling it and getting set to
build only to discover that it is Yet Another Half-Assed Autotool'd
Package (YAHAAP). And I won't have to pull out my Virtual VooDoo Doll and
sticky-note your name to it.

  Your Cassandra,
     Soren A

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/