Re: Why We Should Use the STL (fwd)


Subject: Re: Why We Should Use the STL (fwd)
From: Eric W. Sink (eric@sourcegear.com)
Date: Sun Jun 04 2000 - 18:06:47 CDT


>However, I've recently had to scale back my role considerably. I strongly
>feel that if I don't have the time to follow-through on my pronouncements,
>then I shouldn't be making them.

Nice. To some extent, that approximates the position in which
I find myself.

>Sure, very experienced C++ coders will want to make use of more advanced
>features of the language, but every one of those features we add makes it
>*harder* for other folks to read and expand our code.

Thanks for including this point in your summary as well. It is remarkable
how many people in the Linux-centric portion of the Open Source community
are unwilling to entertain the use of C++ at all.

>>2. I still don't see how a switch to STL helps us achieve the
>>kinds of major user-visible improvements which we still need in
>>order to reach a version 1.0.
>
>This the the bottom line, right?

Yes! I have found that putting your work in the hands of a normal
person and seeing them use it productively is a buzz that *every*
geek can grasp. Even the most early-adopting software developers
can feel the sense of accomplishment which comes from seeing their
code by *used* by someone. Not a demo. Not a test suite. A real
person who doesn't give a #@$!# about technology, but who just wants
to get something done. The ability to meet that person's expectations
is *so* much harder than most people think, and the successful result
is so very gratifying.

At this particular season in the life of abiword-dev, the group is
more heavily weighted toward developers who appear to enjoy the use
of technology for its own sake. There's nothing wrong with this.
We *need* that sort of people around, because they are usually the
best at software architecture. However, the genetic code of AbiWord
includes a very strong element of passion for solving the real needs
of real end-users, and allowing that passion to shape the choices
we make in driving the project forward.

I make no secret of the fact that I can hold great empathy for both
worlds. I have learned my appreciate for focus on the end user.
But, I love technology for its own sake, and that's why I am
somewhat more likely to be a sucker for proposals which lack an
end-user focus.

AFAIK, Paul has successful insulated himself from that tendency for
the entire duration of his career. :-)

I don't want to kill the notion of using templates. Rather, I
want to elevate the amount of conscious attention we spend on
thinking about the needs of the end-user. A group of people
with enough user focus would never even think of replacing
UT_Vector with STL.

Stop for a moment, and think about the least-technical person in
your life. When contemplating any code change, ask yourself if
that change would make a real difference to that person in their
effort to use AbiWord.

In fact, take a step backward. Ask yourself: What could I do
to improve that person's experience as a user of AbiWord?

I promise you all that right now, AbiWord will benefit far more
from this kind of attention than it will from the replacement
of working code with new code that is faster.

To be fair, I'll acknowledge that "there is a season for everything".
Want to replace UT_Vector with something faster? Fine, but I
would *love* to give ourselves more latitude for that kind of effort
*after* we have proven AbiWord's ability to be useful to real
people. The number of real AbiWord users is a number so small that
it rounds down to zero.

Actually I know a few people who are real users of AbiWord.
One of them always sticks out in my mind. He is a journalist, not
a programmer. However, he is a journalist at a leading Linux
magazine. On the one hand, I'm proud of the fact that AbiWord is
being used by someone who makes his living with the written word.
But, this guy definitely fails my litmus test for normalcy.
I want to see AbiWord get used by people who are far more mainstream
than this fellow.

In the end, I am merely on my soapbox, making an impassioned plea
to the other members of abiword-dev on behalf of focus on "the user".
I would love to be able to convince everyone here that, at this
stage in the development of AbiWord, anything which does not result
in a highly visible benefit to the usability of the app by a real
person, is a waste of time.

But, I believe this project must live its life as a meritocracy, and
the only true source of influence here is "follow-through". If I have
not succeeded in making my point, and if the result of this discussion
is a decision to make use of STL, then so be it. However, I can assure
you all that I will push for great accountability on the "follow-through".
If STL causes AbiWord to break on one of our existing platforms, or if
the STL switchover turns into a can of worms, or if the STL switchover
results in no perceptible performance gain, all of us Luddites will be
deflecting the moans like Teflon. :-)

I'll go back to my soapbox for the finish:

It's been years since anyone made a Motorola 68K CPU with anything close
to modern performance. That means the only way to run the classic
word processor WriteNow is to use Macintosh PowerPC emulation of the 68K
chipset. Thus, I declare AbiWord to be the victor. There is no word
processor on the planet which is faster.

Sure, the risks of switching to STL may actually be quite low, but that
doesn't change my thesis, repeated with emphasis:

At this stage in the development of AbiWord, *anything* which does
not result in a highly visible benefit to the usability of the
app by a real person, is a *waste of time*.

Eric W. Sink, Software Craftsman
SourceGear Corporation
eric@sourcegear.com



This archive was generated by hypermail 2b25 : Sun Jun 04 2000 - 18:02:51 CDT