Extensible software

Luis Villa louie@ximian.com
23 Apr 2002 15:08:08 -0400

On Tue, 2002-04-23 at 13:44, Gary Lawrence Murphy wrote:
> >>>>> "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.
> Voila!

Which is still not a solution for 99% of users in the real world.
Certainly not an option for people who don't have emacs gurus in house
or in family to find and configure such options.

>     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.

Didn't claimg it answered your question :) just alleviates it a bit.

>     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.  

That's actually not completely unreasonable; I believe someone did it
for evo (though the code has bitrotted) and it would have been fairly
usable for anything that used bonobo to embed emacs that way. There is a
push to do that again in the new gtk2 code, though I have seen no
results from that as of yet.

> 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.

I think that 'admittedly' is a real kicker, there. You're talking about
how usable emacs is... after you've sunk tons and tons of man hours into
customization and training. That suggests to me that maybe it isn't that
usable nor customizable [if by customizable one means customization that
could be done with reasonable amounts of time and skill.]

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

As an aside I yearn for the day when someone ports xemacs to gtk2 and
gets me some anti-aliasing in my emacs text. :) [Yes, I'm definitely an
emacs user.]

> 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).

Small tools that are obvious and easy to grasp. She can quite literally
pick up kitchen tools and sewing needles; not so true of cat and |; I'd
have to teach her apropos and pray she stumbled on the right keywords
before she could even /find/ the right tools much less play with them.
That's a big difference from Real World small tools; the analogy starts
to break down there. 

> 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.

Agreed. Old School Unix Small Tools are not a simpler way, though, to
anyone who is not on extremely familiar terms with their machine.

> 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.

You didn't read the link to the GNOME A11Y Project, did you? :)
Evolution will not do voice/tts- it will just use stock GTK2, which will
provide the ability for arbitrary accessible hardware to plug into gtk,
not just for display but also for control. This will include but is very
definitely not limited to voice/tts. No one is playing god here.

> 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 ;)

Any app coded with stock gtk2 widgets will automatically provide this
functionality to any language that has gail bindings; perl, python, c,
and c++ so far; applications using custom widgets will also be able to
provide the same functionality, albeit not merely by being written in

> 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.

Proprietary APIs in gnome apps? eh? Yeah, there is a lot of re-inventing
the wheel in Free Software- but there is also a ton of code and library
sharing- Evolution uses Free libraries shared with other projects for
SSL, text editing, calendar storage, spell checking, palm syncing,
configuration storage, printing. And much of our code is also being
reused by other projects.

>     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" :)

My home LUG isn't exactly silicon valley lug either ;)


P.S. How exactly does porting all useful tools into elisp fit in with
'small tools'? As per http://www.dina.dk/~abraham/religion/ed-standard
we all know that emacs is Not Small and that ed is the One True Small
Editor. :)