[comp.windows.x] Help on Motif builders

ROBY%POGUN@dupont.COM ("Trey Roby Ponca City, OK", ETN 442-4848) (12/22/90)

I need input...

     Where I work, there are certain people searching for the easiest way
     to start their programmers writing with X and Motif.  Some think
     that it is possible to buy a Motif builder that will totally insulate
     the programmers from having to learn any X or Motif.

     The Motif builders I have seen so far (EasyX and DEC's VUIT) will
     only write the initial Widget creation.  However, the callbacks are
     left to the  programmer, which means to me (and please correct me if
     I am wrong) that a programmer must know at least Motif and Xt to
     handle callbacks.

	My questions:
               1. Has anyone seen a Motif builder that requires no knowledge
                  of X or Motif to use?
               
               2. Is it true that Motif builders are not a short cut for 
                  learning Motif, but only helps to speed up writing
                  an application?
    
               3. What percent of your time does a Motif builder save you 
                  when you write a front end?

     I would greatly appreciate input from anyone who has experience or
     knowledge of Motif builders.

nazgul@alphalpha.com (Kee Hinckley) (12/24/90)

In article <9012221248.AA01095@expo.lcs.mit.edu> ROBY%POGUN@dupont.COM ("Trey Roby  Ponca City, OK", ETN 442-4848) writes:
>               1. Has anyone seen a Motif builder that requires no knowledge
>                  of X or Motif to use?
No.  Although even using the Motif toolkit you often won't need much knowlege
of X.  However you should have a grounding in the basic concepts (particularly
in the ways in which X is asynchronous).

>               2. Is it true that Motif builders are not a short cut for 
>                  learning Motif, but only helps to speed up writing
>                  an application?
I can imagine using an IDT to help learn widget capabilities.  There are
some interactions that aren't clear from simply reading the docs, and a
builder can make it easier to play.  Unfortunately most of the interactions
that aren't clear occur when things change dynamically, and most IDTs aren't
any help there.

						-kee
-- 
Alphalpha Software, Inc.	|	motif-request@alphalpha.com
nazgul@alphalpha.com		|-----------------------------------
617/646-7703 (voice/fax)	|	Proline BBS: 617/641-3722

I'm not sure which upsets me more; that people are so unwilling to accept
responsibility for their own actions, or that they are so eager to regulate
everyone else's.

Erik.Hardy@SEI.CMU.EDU (12/27/90)

Trey Roby asks:

> 1. Has anyone seen a Motif builder that requires no knowledge
   of X or Motif to use?

Simply put, Serpent requires no knowledge of X or Motif to use it, i.e., it
requires no coding of Motif or X; you still have to know what attributes you
want to set for a particular Motif widget. If you want more information
about Serpent, write me.

> 2. Is it true that Motif builders are not a short cut for
   learning Motif, but only helps to speed up writing
   an application?

Well, some Motif builders are a short cut, whereas some make it so you don't
have to learn Motif (coding) at all.

Erik Hardy (erik@sei.cmu.edu)
SEI/User Interface Project

nazgul@alphalpha.com (Kee Hinckley) (12/27/90)

In article <9012262204.AA01041@gh.sei.cmu.edu> Erik.Hardy@SEI.CMU.EDU writes:
>Simply put, Serpent requires no knowledge of X or Motif to use it, i.e., it
>requires no coding of Motif or X; you still have to know what attributes you
>want to set for a particular Motif widget. If you want more information
>about Serpent, write me.

All you've done is transfer the work to another area.  If someone has already
done the particular task you need to have done, then you don't have to
worry about it (but that's true if I write my interface in C too, although
Serpent's structure probably encourages reusable code).  On the other hand,
if the operation I need *hasn't* been done by someone, I not only have to
learn how to do it in Motif, I need to learn how to write the Serpent code
*too*.  Tanstaafl.

I have a Selection Dialog that lets you change the name of a folder.
Anytime I create it, I want to set the typein focus to the input area
(it starts off on the Okay button) and select the current foldername.
Seems reasonable.  Do I need to learn Motif to do it?  Yes.  Do I need
to learn Xt to do it?  Yes.  Can I do it in Serpent?  Almost certainly,
but I'm still going to have to learn Motif/Xt in order to do it the
first time.  From then on I can presumbably just use the Serpent interface
that I wrote.  Is it worth it to use Serpent?  Perhaps.  UIMS' like
Serpent and Open Dialogue have advantages, they can make some things
easier.  They can also make some things harder.  If you think the advantages
outweigh the disadvantages then go for it.  But the ride's free only where
the road has already been paved.

						-kee
-- 
Alphalpha Software, Inc.	|	motif-request@alphalpha.com
nazgul@alphalpha.com		|-----------------------------------
617/646-7703 (voice/fax)	|	Proline BBS: 617/641-3722

I'm not sure which upsets me more; that people are so unwilling to accept
responsibility for their own actions, or that they are so eager to regulate
everyone else's.

Erik.Hardy@SEI.CMU.EDU (12/30/90)

Kee eloquently explains how using a tool like Serpent allows one to not have
to learn Xt/Motif/whatever only if someone has already done the Motif work;
he also correctly points out that the Motif code has 'just' been shifted to
another place.

But therein lies the 'big win': by shifting the Motif work away from the
application and away from the dialogue, the designers responsible for
those tasks are free to work their respective magics without having to deal
with Xt coding; they work within paradigms that are appropriate to their
jobs. Motif (or any other technology) integration and maintenance is, and
should be, left to technology experts.

erik
SEI/User Interface Project

marbru@attc.UUCP (Martin Brunecky) (01/03/91)

In article <9012300134.AA17670@gh.sei.cmu.edu> Erik.Hardy@SEI.CMU.EDU writes:
>
>But therein lies the 'big win': by shifting the Motif work away from the
>application and away from the dialogue, the designers responsible for
>those tasks are free to work their respective magics without having to deal
>with Xt coding; they work within paradigms that are appropriate to their
>jobs. Motif (or any other technology) integration and maintenance is, and
>should be, left to technology experts.
>
   WHAT technology experts are you talking about ?
   The application writer or the user-interface writer ?

   The application writer must know/understand enough about the principles
   of the Xt user interface methods/style/operation mode to make the
   user interface writer's job even possible. The tool like Serpent is
   no help to him, because he *should not* even attempt to write UI.

   The user interface writer is the likely target of Serpent. However,
   beyond simple test programs, every single application I have seen
   requires damned well and deep knowledge of Xt, Motif (or another
   toolkit). Using UIMS (like Serpent) DOES increase productivity
   in some areas, but those are often the 10% of the entire effort
   (depends great deal on application, I don't happen do design the
    interfaces to "ls" command).

   In my case, I am finding a simplistic tool - Wcl - by fare the most
   adequate. It sure does not have the bells and whistles. But it also
   does not require me to study an entirely new paradigm. It only
   promotes and emphasizes the Xt approach. And it is extensible, easily
   and naturally. And repeating the work that has been done before ?
   What about the cut-and-paste approach so familiar in coding ?



-- 
=*= Opinions presented here are solely of my own and not those of Auto-trol =*=
Martin Brunecky                           {...}sunpeaks!auto-trol!marbru
(303) 252-2499                        (sometimes also:  marbru@auto-trol.COM )
Auto-trol Technology Corp. 12500 North Washington St., Denver, CO 80241-2404 

Erik.Hardy@sei.cmu.EDU (01/03/91)

Let's see...I wrote:

>>But therein lies the 'big win': by shifting the Motif work away from the
>>application and away from the dialogue, the designers responsible for
>>those tasks are free to work their respective magics without having to deal
>>with Xt coding; they work within paradigms that are appropriate to their
>>jobs. Motif (or any other technology) integration and maintenance is, and
>>should be, left to technology experts.

then Martin Brunecky <attc!marbru@bloom-beacon mit edu> wrote:

>   WHAT technology experts are you talking about ?
>   The application writer or the user-interface writer ?

Well, actually, neither. Perhaps you're under the impression that one or the
other *must* perform Motif coding. Application writers have an abysmal
record writing good user interfaces; this is even worse when there are 50
application writers all writing their own UIs and all thinking they own the
screen. Ever look at the UIs in some of the current defense systems?

>   The application writer must know/understand enough about the principles
>   of the Xt user interface methods/style/operation mode to make the
>   user interface writer's job even possible.

In a word, no. The AW need know nothing about the underlying technology, be
it Xt, CORE, Xlib, PHIGS, or whatever.

>   The tool like Serpent is
>   no help to him, because he *should not* even attempt to write UI.

Well, here's something we both agree on, to an extent, i.e., I agree with
the secondary clause in this sentence, but Serpent (or anything else that
shields the AW from the specifics of the UI) can help him by the simple fact
that he need not even consider the UI.

>   The user interface writer is the likely target of Serpent. However,
>   beyond simple test programs, every single application I have seen
>   requires damned well and deep knowledge of Xt, Motif (or another
>   toolkit).

Yes, the UI writer was the primary target, but it requires no knowledge of
Xt, although it does require knowledge of the underlying object system. If
you like, you can think of Serpent as providing a different toolkit than Xt;
however, note that Serpent is not limited to Xt-based object systems: you
could integrate CORE into Serpent if you wanted to, and it wouldn't change
the Serpent language one wit.

>   Using UIMS (like Serpent) DOES increase productivity
>   in some areas, but those are often the 10% of the entire effort
>   (depends great deal on application, I don't happen do design the
>    interfaces to "ls" command).

It has been suggested that, even if there's no other reason, Serpent can
easily be used as a prototyping system, so that one can get a quick look at
the layout and the behavior of a UI. If this is the place where one spends
10% of the entire effort, it can certainly be worth it down the road.

I would never advocate using Serpent to design or implement the UI for
something as simple as the ls command. But, if one was to build a large
system (for instance, an operating system and all of its attendant
utilities), then I would advocate it.

erik

BTW, your Wcl cut-and-paste argument is not convincing, as one could use that
approach no matter what the language.

marbru@attc.UUCP (Martin Brunecky) (01/04/91)

In article <9101030322.AA07340@gh.sei.cmu.edu> Erik.Hardy@sei.cmu.EDU writes:
>
>then Martin Brunecky <marbru@auto-trol.com> wrote:
>
>>   The application writer must know/understand enough about the principles
>>   of the Xt user interface methods/style/operation mode to make the
>>   user interface writer's job even possible.
>
>In a word, no. The AW need know nothing about the underlying technology, be
>it Xt, CORE, Xlib, PHIGS, or whatever.
>
     I can't disagree more. The event driven model of Xt based application
     is so significantly different from the old-style, solicited-input
     approach, that an application writer MUST be aware of it.
     
     There are lots of applications with graphical user interface based
     on Apollo GPR, Sun's Pixrect, DEC UIS etc etc. Convreting, twisting
     and munging those applications to run under the X event driven model
     is a nightmare. Just because the *application* code was not *designed*
     for an event-driven user interface.

     You may suggest that a UI living as a separate process can solve the
     problem. May be - for the "ls" command. But my CAD/CAM applications are
     heavily graphics oriented. The graphics application design *must*
     be aware of the new interaction model, otherwise it is doomed to cause
     an enormous amount of pain.

-- 
=*= Opinions presented here are solely of my own and not those of Auto-trol =*=
Martin Brunecky                           {...}sunpeaks!auto-trol!marbru
(303) 252-2499                        (sometimes also:  marbru@auto-trol.COM )
Auto-trol Technology Corp. 12500 North Washington St., Denver, CO 80241-2404 

nazgul@alphalpha.com (Kee Hinckley) (01/04/91)

In article <9101030322.AA07340@gh.sei.cmu.edu> Erik.Hardy@sei.cmu.EDU writes:
>>   The application writer must know/understand enough about the principles
>>   of the Xt user interface methods/style/operation mode to make the
>>   user interface writer's job even possible.
>
>In a word, no. The AW need know nothing about the underlying technology, be
>it Xt, CORE, Xlib, PHIGS, or whatever.

Idealism is nice, but it doesn't work.  Domain/Dialog was written with
this separation mandated.  The next generation (Open/Dialogue) allowed
the separation but no longer mandated it.  There's a reason for that.
In an ideal world my app never has to know about the underlying technology,
but we don't live in a ideal world.  There are things I can do on the
Mac which aren't practical under X.  There are quirks in Xt that I
have to work around in my application.  There are operations that I
add to my application because the interface makes them necessary.  I'm
not saying that the separation isn't a good idea - just that I don't
believe in absolutes.

>Yes, the UI writer was the primary target, but it requires no knowledge of
>Xt, although it does require knowledge of the underlying object system. If
>you like, you can think of Serpent as providing a different toolkit than Xt;
>however, note that Serpent is not limited to Xt-based object systems: you
>could integrate CORE into Serpent if you wanted to, and it wouldn't change
>the Serpent language one wit.

At the risk of being rude:
    however, note that C is not limited to Xt-based object systems: you
    could integrate CORE into C if you wanted to, and it wouldn't change
    the C language one wit.
The question then becomes, "How is writing in Serpent different than
writing in C?"  The answer is presumbably that Serpent is a language
tuned to writing interfaces.  That might even be a good answer.  But
it's important to remember the question.

>>   Using UIMS (like Serpent) DOES increase productivity
>>   in some areas, but those are often the 10% of the entire effort
>>   (depends great deal on application, I don't happen do design the
>>    interfaces to "ls" command).
>
>It has been suggested that, even if there's no other reason, Serpent can
>easily be used as a prototyping system, so that one can get a quick look at
>the layout and the behavior of a UI. If this is the place where one spends
>10% of the entire effort, it can certainly be worth it down the road.

Now we're talking - except that I don't want to learn a new language
just to prototype, but on the other hand I need some sort of language,
because many of the problems that make applications have to worry
about the interface have to do with the dynamic changes that occur
when the application is running.  (At this point I expect Neil to
say "WinterP is the answer!" :-).  It's not clear that there is any
answer here that would make me happy.  Right now I think a good IDT
would be nice, but I haven't seen one that does the kind of stuff
I want yet.

>I would never advocate using Serpent to design or implement the UI for
>something as simple as the ls command. But, if one was to build a large
>system (for instance, an operating system and all of its attendant
>utilities), then I would advocate it.

But Serpent would actually probably be a good tool for "ls".  It's the
large system where performance, quirks, dynamic changes and the like
all start to matter.

I guess the other reason I shy away from the separation of church and
state (or whatever) right now is that today's toolkits just aren't
powerful enough.  As a result I need to exert a large amount of control
over each widget and the layout of multiple widgets that is very
specific to my application.  It would certainly be a good idea to
separate out that from the rest of my application, however the interface
still ends up being a *lot* of C code.  Furthermore, it's not trivial
C code, and it certainly isn't going to be written in Serpent.  The
correct model then is presumbably to create a Serpent interface to
that C code, and then access it using the standard Serpent mechanisms
from my application.  What is the advantage to doing that, as opposed
to creating an object model (I'm using C++) for my interface and
simply using the objects to access the interface?  It seems to me
I still get much the same level of abstraction, but actually have
less work to do (not to mention one less thing to port to each
platform).

						-kee
-- 
Alfalfa Software, Inc.		|	motif-request@alfalfa.com
nazgul@alfalfa.com		|-----------------------------------
617/646-7703 (voice/fax)	|	Proline BBS: 617/641-3722

I'm not sure which upsets me more; that people are so unwilling to accept
responsibility for their own actions, or that they are so eager to regulate
everyone else's.

Erik.Hardy@sei.cmu.EDU (01/04/91)

Martin Brunecky:

>>>   The application writer must know/understand enough about the principles
>>>   of the Xt user interface methods/style/operation mode to make the
>>>   user interface writer's job even possible.

me:

>>In a word, no. The AW need know nothing about the underlying technology, be
>>it Xt, CORE, Xlib, PHIGS, or whatever.

Martin again:

>     I can't disagree more. The event driven model of Xt based application
>     is so significantly different from the old-style, solicited-input
>     approach, that an application writer MUST be aware of it.

There is nothing in Serpent that presupposes the event model; solicited input
is handled just fine.

Martin (and others), I presume you'll be at the X Conference. Whaddya' say
we table this for now and pick it up there?

erik

yaccity yacc (don't awk back)