From: Rick Pikul on
On Fri, 18 Nov 2005 18:40:04 +0100, Peter T. Breuer wrote:

> In comp.os.linux.misc blmblm(a)myrealbox.com <blmblm(a)myrealbox.com> wrote:
>> In article <o4d153-rna.ln1(a)news.it.uc3m.es> [ptb wrote],
>>>> line. I did say that GUIs are good for some purposes. Can you give
>>>> an example of a GUI you think is "state of the art" (whatever that
>>>> means)?
>>>
>>>Grr .. I'll volunteer one: writing html.
>
>> Say what? "Writing HTML" is a task/job, not a UI, no?
>
> I mean it's an example of a purpose for which GUIs are well suited,
> which I thought he was trying to ask.

How do you get that from: "Can you give an example of a GUI you think is
'state of the art'...?"?

I'm honestly curious.

--
Phoenix

From: Peter T. Breuer on
In comp.os.linux.misc Rick Pikul <rwpikul(a)sympatico.ca> wrote:
> On Fri, 18 Nov 2005 18:40:04 +0100, Peter T. Breuer wrote:

>> In comp.os.linux.misc blmblm(a)myrealbox.com <blmblm(a)myrealbox.com> wrote:
>>> In article <o4d153-rna.ln1(a)news.it.uc3m.es> [ptb wrote],
>>>>> line. I did say that GUIs are good for some purposes. Can you give
>>>>> an example of a GUI you think is "state of the art" (whatever that
>>>>> means)?
>>>>
>>>>Grr .. I'll volunteer one: writing html.
>>
>>> Say what? "Writing HTML" is a task/job, not a UI, no?
>>
>> I mean it's an example of a purpose for which GUIs are well suited,
>> which I thought he was trying to ask.

> How do you get that from: "Can you give an example of a GUI you think is
> 'state of the art'...?"?

I daresay one get as far as "can you give" before the phone rings.

Peter
From: Peter T. Breuer on
Lee Sau Dan <danlee(a)informatik.uni-freiburg.de> wrote:
> repeat block? i.e. repeated whitespace characters affect semantics?
> That'd be very error prone!

Occam does that too - and occam is the basis of verifiably correct
programs (i.e. that meet their specifications) written for the
transputer.

Peter
From: Lee Sau Dan on
>>>>> "notbob" == notbob <notbob(a)nothome.com> writes:

>> It can! A command like: draw_line (0,0)-(20,10) draws a line
>> inclined at 30 degrees w.r.t. the x-axis. Much easier and
>> _more precise_ than having to aim at the exact coordinates with
>> a mouse.

notbob> You are correct, of course, but very few programs don't
notbob> have some sort of snap capability. I once used a early
notbob> computer graphics program where all lines were done with
notbob> coordinates. What a nightmare! This was made even worse
notbob> by the fact each line's x,y, and z coord had it's own
notbob> entry box in the gui and required hitting tab and arrow
notbob> keys move from one to the other. Very tedious and slow.

Metapost and metafont has a built-in entity representing points. You
don't have to specify coordinate values for drawing. You can use the
"point" objects to specifying how lines and curves are drawn. The
coordinates can be specified implicitly by giving equations relating
them to one another. Something like this:

(width,height) = (400pt, 300pt);
point a, b, c;
a = (0,0); c = (width,height);
b-a = c-b; % b lies midway between line-segment joining a and c
draw a--b; % draws a line from (0,0) to (200pt, 150pt)

where 'pt' is the unit "point" == 1/72.27 inch.

So, in metapost, one usually does not need to specify coordinates,
other than a few "anchor" points or parameters. Most points are
specified implicitly using equations. The section formula z = (1-t)*a
+ t*b even has a short form z=t[a,b], which is quite handy.



--
Lee Sau Dan §õ¦u´° ~{@nJX6X~}

E-mail: danlee(a)informatik.uni-freiburg.de
Home page: http://www.informatik.uni-freiburg.de/~danlee
From: Lee Sau Dan on
>>>>> "Jacob" == Jacob Sparre Andersen <sparre(a)nbi.dk> writes:

>> I think that one could design a GUI for programmers, for
>> example by providing a way to build a data flow from building
>> blocks (a bit like Apple's Automator, but more powerful).

Jacob> Maybe. A GUI would probably assist creating more
Jacob> complicated data flows than the single stream inherent in
Jacob> the traditional model with pipes in shells.

Bash allows multiple data flows and it's not difficult to do:

comm -12 <(sort a.txt) <(sort b.txt) | uniq -c | sort -nr

This command feed 2 pipes (from 2 'sort' processes) into the 'comm'
process, and then feeds 'comm's output to 'uniq' and the a third
'sort'.


>> I doubt one could design a shell for non-programmers that
>> suited them better than a GUI.

Jacob> Having seen travel agents working in their shell, and
Jacob> having tried to use the GUI's made available by the
Jacob> airlines on the web, I disagree with that.

I've also seen bond tradering using a Bloomberg terminal to query bond
prices and enter trades. It's a CLI, and they like it for the
brevity. The commands are cryptic, too. But they prefer to type less
and avoid the mouse, rather than forgoing speed and productivity.


Jacob> I think what matters isn't programmers/non-programmers, as
Jacob> much as how often you have to use the interface.

Exactly! Even on airline websites, I would type in airport codes
(whenever possible) rather than selecting from the lengthly list of
airports/cities in the combo box.


Jacob> It may though be that programmers have lower patience with
Jacob> the UI's interfaces, and thus are quicker to adopt the
Jacob> shell - especially if it actually is scriptable and not
Jacob> just a TUI.

If you have to do many things repeatedly, you'll appreciate the CLI,
which has history, and allows you to write shell scripts.



>> - Apple's commando interface that allowed one to pop up a
>> GUI-dialog with which one could both see and set all options
>> for a command

Jacob> That's a nice idea. Another nice idea (I can't remember
Jacob> _where_ I saw it) is to let a GUI generate commands in the
Jacob> shell. That allows the user to take the generated commands
Jacob> and generalize them as needed.

This is possible with Emacs, and I think also possible with the Gimp.
But this has to be done in an architectural level. Emacs maps every
key to a function with a eLISP name. You can always invoke the same
function from eLISP code. So, it's scriptable. Further, Emacs allows
the user to rebind the keys to any eLISP function. So flexible! Gimp
has a similar design: the menus invoke functions, which can be invoked
from the Scheme-based scripting language.

Too bad that most people who develop GUI-based programs do not
organize their programs this way. Many even put the code for the
operations into the callback/handlers of the GUI buttons/menus. The
IDE's used by them usually invite them to do this. (So, I think these
IDE's are flawed. They don't guide their users to do the right thing.
They only encourage dirty-and-quick development.)




--
Lee Sau Dan §õ¦u´° ~{@nJX6X~}

E-mail: danlee(a)informatik.uni-freiburg.de
Home page: http://www.informatik.uni-freiburg.de/~danlee