Autocoding project proposal.

Christopher Browne cbbrowne at acm.org
Sun Jan 27 00:40:27 EST 2002


Jonathan Hogg <jonathan at onegoodidea.com> writes:
> On 26/1/2002 20:03, in article 5203.791T524T9503446threeseas at earthlink.net,
> In another article in this thread, Phil Hunt wrote:

>> In that case, please explain why many of the most talented
>> programmers are developing open source software, which they are
>> giving away to anyone who wants it, and that many open source
>> projects are explicitly aimed at making things easier for
>> end-users?

> I think that's a bogus argument. I've not seen any Open Source
> software that makes any particular effort to open up the internal
> functionality to non-programmers. Having access to the source
> doesn't make it more "open" in this respect, since the learning
> curve to be able to use the source is too high.

GNOME had that as part of its explicit intent, with, as the intent,
that applications be constructed with conspicuous "CORBA hooks."

For instance, the "Gnome Transfer Manager" has the conspicuous hook:

module GTM {
    interface Download {
        boolean add_url (in string url, in string dir,
                         in boolean disable_proxy, 
                         in boolean disable_auto_dl);
    };
};

The point of that is that if you have an application that's supposed
to download something, you would do something like:

  object GTM = request_reference_from_name_server ("GTM//Version 1.0");
  GTM::Download::add_url ( "http://fuzzy-pics.com/something.jpg",
                           "/tmp", NULL, NULL); 

That could get compiled into an application, or scripted using a
scripting language.

A number of GNOME applications expose interfaces of this sort:
 - MultiTerminal lets you ask to create a new terminal;
 - There's a way of requesting that a file get opened using your
   favorite editor;
 - You can query the vCard "address book" app for some records;
 - There's an interface for the XINE video viewer that lets you
   control it using such functions as play(video, position), pause(),
   stop(), eject(), get_position(), get_PlayerStatus, and such.

The ability to use that to script the control of applications is
pretty limited, at this point, because there isn't a terribly "rich"
set of controls.  

For instance, there are _NO_ such controls for the "desktop"
applications like Gnumeric (spreadsheet), AbiWord (word processing)
and such.

> The problem with the primary user interface to a program is that it
> is based on what the programmer thought would be useful to the user
> - the menus, buttons, windows, etc. that they have defined. It is
> limited by their imagination instead of the user's imagination.

Just so.  

And the notion that this is something that an unsophisticated user
could hook in after the fact represents wishful thinking, rather like
the mice that wish they could get a bell onto the mouse.

> I wrote a bunch of small AppleScripts in the past that would send
> commands to a larger script running on a computer across the room
> that would interrogate the Finder to get a list of mp3 files on the
> harddrive, choose one at random, then ask the QuickTime player to
> open and play it. I drew icons for the small scripts and put them
> into a toolbar utility that would execute them when clicked. By
> sending commands to the toolbar utility I was able to get it to
> display different icons indicating the stopped/playing/paused
> status.

> None of the applications I scripted to do this were designed to be a
> jukebox. In fact none of them on their own could have done it. But
> since all of the programmers had provided me with the hooks
> necessary to use their functionality directly, I was able to make
> one.

Using the "XINE" IDL interface, you could do something sort of like
this for XINE, but that obviously only gets one application involved.

That being said, for a _musical_ jukebox, it makes more sense to have
the script talk to a "command line" program such as MPG123.

At the sophisticated end of things, what Gnumeric would need would be
something rather like the following API that (already is published,
and has been available for YEARS) for NeXS:
<http://www.greytrout.com/manuals/conNExions-manual.php3>

> I honestly do agree with you Timothy, but the problem is that unless
> you can persuade programmers to make these "side doors", to convince
> them of the freedom they provide to the user, then your machine is
> going to grind away with nothing to talk to.

Just so.

Note that attempts to fix this are likely to be more successful if
they involve _luring_ programmers towards things they might consider
_attractive_ than if the attempts merely involve hurling abuse at the
programmers.

> Unfortunately, programmers are a prickly bunch and you won't get far
> by accusing them of being elitist or ignorant (even if they might
> be).

Unfortunately, the formula our would-be "21st Century Einstein" is
going by involves the assumption that he knows better than any
programmer.  And anyone that objects is merely "proving" his point
that they're both elitist _and_ ignorant.

Reality is that if he can't explain his ideas to programmers, maybe
the ideas need to be taken back to the drawing board.

And Carl Sagan said something profound that is relevant:

  "They laughed at Columbus, they laughed at Fulton, they laughed at
  the Wright brothers.  But they also laughed at Bozo the Clown." 
  -- Carl Sagan

It is at least faintly conceivable that there may be something of
merit in the 'VIC' thesis.  The fact that the author thinks himself to
have a genius idea does _not_ establish that he's like Columbus,
Galileo, and other laughed-at geniuses.

There are a LOT more "flaky idiots" out there that _deserve_ to be
laughed at than there are made-fun-of-geniuses.  
-- 
(concatenate 'string "aa454" "@freenet.carleton.ca")
http://www3.sympatico.ca/cbbrowne/linuxdistributions.html
Rules of  the Evil  Overlord #55. "The  deformed mutants  and odd-ball
psychotics  will have  their place  in my  Legions of  Terror. However
before I send them out  on important covert missions that require tact
and  subtlety,  I will  first  see if  there  is  anyone else  equally
qualified who would attract less attention."
<http://www.eviloverlord.com/>



More information about the Python-list mailing list