Extensible software

Gary Lawrence Murphy garym@canada.com
23 Apr 2002 13:44:48 -0400

>>>>> "L" == Luis Villa <louie@ximian.com> writes:

    L> Of course, there is no good answer to [virtually[1]] any of
    L> those questions, if you're asking them of (1) a program that
    L> isn't emacs and/or (2) if the question is being asked by
    L> someone who isn't a lisp and/or shell programmer. So... for
    L> 99.9% of the planet, it isn't a very useful question :)

I will grant you (1) but not so with (2).  Our office staff are not
Lisp programmers, but they wanted some of these features, and I have
been adding such features to my Gnus since /long/ before I could code
eLisp (in which I am still but an egg).  All you have to do is fetch
the feature coded by someone else, and plunk it into your .emacs file.

    L> [1]of course, pine/mutt/any other terminal-based program can
    L> answer the remote-access question. As to other questions: the
    L> gnome2 port of evolution will be voice/tts enabled [as will all
    L> of GNOME2[2]], and the same technologies that allow that will
    L> also allow for answers for a lot of the other questions you
    L> ask. This does not really answer your question in a meaningful
    L> way, granted, but it's just something to be aware of.

Oh, I'm aware of it, and also aware that, if it's not exactly what I
need, tough titties, that's the way it is.

    L> Thanks :) I'm currently working my ass off to make GNOME2 even
    L> better...  we'll see how that works out :)

Well you just make sure you take good care of your ass because I hope
all you gnomic peoples are around for a long long time.  As I posted
before, the only thing I find less-than-perfection is that I want to
make all the edit windows gnuclient connections to Emacs gnuserv.  

What's more, in my past 10 years of experiments with extreme novice
users (children, office workers, gospel songwriters) I have found that,
despite popular believe, Emacs does /not/ confuse and confound them,
but quite the opposite: Once they grasp basic functions (admittedly
a full month of repeated questions) they actually /prefer/ it.  If
you read Jef Raskin's "Humane Interface", I think the reasons are
pretty obvious.

    L> Having already said the answer to your question is 'basically
    L> you don't' let me flip the question: How do I extend your gnus
    L> reality without years of training and experience in lisp and
    L> other unix arcana like shell and pipes?

Just as I've outlined above.

IMHO, and I have published elsewhere in detail about this (search on
Freshmeat for my name) the problem is not with the Emacs/GNUS /engine/
but with the very geek-oriented way it has been deployed.  There's
a long, long, long list of problems which have lead to your assessement
above, but the simple truth is that none of it is carved in stone: The
only thing required is to change it.

For example, to make Emacspeak palateable to a blind gospel songwriter,
I rearranged all the tutorial files to put simple questions first and
techie content last, I pre-configured templates for basic tasks like
letter writing and writing lyric sheets (using LaTeX!).  I stripped out
a lot of packages of no earthly use to the non-techie (they can always
put them back later) ... because the core Emacs is really just a lisp
machine, 90% of the shell around it can be completely rearranged.

If I ran Ximian (and thank your lucky stars I don't ;) I would have
focussed all the efforts on XEmacs/Gnome integration.

    L> This is an honest question- if I felt the 'small tools plus a
    L> little shell to bind them together' unix philosophy was ever
    L> something my mother could grasp or appreciate, I'd push it like
    L> hell, both in the GNOME community and elsewhere. But I honestly
    L> don't see how that can happen.

Look at how your mother uses non-computer stuff.  How much of it is
threading together small tools.  My mom does a lot of needlepoint, and
that is small tools applied in new ways.  Cooking?  Small tools (she
hates single-purpose appliances almost as much as I do).

As Jef Raskins rightly points out, just because that's the way Windows
is does not give you any advantage of "legacy skills" -- the Mac and
the PalmPilot both proved that.  If you create a simpler way, people
will recognize it.

I began to really tune out, turn on and drop out of the IT world with
the introduction of MsWord: There was something about the monolithic
app that just irked me.  For one thing, there was huge amounts of
duplication on my hard disk because each app has this whopping Great
Wall around it declaring "Only /we/ know how to code a thesaurus!"

BS.  Some people do some things better than others. That's how the
world works.  There's no way I'm going to try to rebuild my deck this
summer regardless how good I am at Java servlet programming.  I expect
the carpenters I hire won't know much about J2EE even if we both
understand about the same of Design Patterns.

In a small tools world, there's no need for Evolution to do voice/tts,
it only needs to "pipe this buffer to an external process"; with that
one surrender, that one admission that the Evolution programmers are
not omnipotent, a whole world of extensibility opens before them.
Another is to make every function of the program into a symbolic name
accessible through any kind of scripting interface, and then tack on
Python or Scheme or Ruby ... who cares if mom can't build new scripts:
Mom's have this habit of having kinds who do ;)

Again, it's not just the Gnome apps.  It's Quickbooks, it's OpenOffice
it's all the "We Say So" monolithic walled apps and proprietary APIs.

It's even some of my clients where they can freak to learn that I
included an opensource component to do database connection pooling,
but would be perfectly happy if, instead of using something being used
by thousands and built by dozens over several years, they instead got
a one-of prototype coded by me and their handful of developers over a
fraction of a week.  Go figure.

    L> Granted, I'm obviously biased, but no gnus user I know from
    L> school who has switched to Evolution has gone back to gnus.
    >>  Well, everyone at this office has ;)

    L> I'll add that to my data set then :)

Keep in mind TCI is a ruthlessly small business nanocorp, so "everyone
in the office" means "the mrs, the kids and myself" :)

Gary Lawrence Murphy <garym@teledyn.com> TeleDynamics Communications Inc
Business Innovations Through Open Source Systems: http://www.teledyn.com
"Computers are useless.  They can only give you answers."(Pablo Picasso)