Book on MS C (really user interface portability)

Eric Johnson erc at pai.UUCP
Sat Apr 1 01:26:45 AEST 1989


In article <225800147 at uxe.cso.uiuc.edu>, mcdonald at uxe.cso.uiuc.edu writes:
> 
> mcdonald at uxe.cso.uiuc.edu:
> 	"Portability" is a word seldom heard outside the academic discussions
> 	of Usenet.

I find it rather amusing that I never really heard the dirty word
"portability" while in college.  Only out in the so-called "real world"
did it rear its ugly head.




> 
> gwyn at smoke.brl.mil (Doug Gwyn):
> 	That's utter nonsense.[....]

I usually agree with this chap, and this is no exception. (But I would,
perhaps, use less strong language.)


> 
> Me again [Doug McD.]:
>        It is silly to assume that there is no tradeoff between portability
>        and performance. It is true that in most cases it can be carefully

> 
>        But, doing certain things portably can cost dearly. Graphics is
>        one area. Not using the full functionality of a machine's
>        special features is another. I was, and am, talking not so much
>        about the "core" functionality of a program as I am about 
>        the user interface. And, I must emphasize most emphatically,
>        that a portable user interface MUST either be machine-specific
>        or be crippled by using the lowest common denominator (i.e.
>        a tty emulator text interface.) People who think that they can 
>        get away with a (codewise) portable user interface are either
>        deluded or working in a sheltered market segment (accounting
>        programs for cookie shops?)
> 
> Doug McDonald

Maybe I am deluded...

Have you ever looked at the X Window System?  Right now, I am writing this
on a Sun 386i running X11 R3.  The HP 9000/320 in the next room also runs
X.  A Sun-3/260 we had on loan awhile back ran the exact same code as the
Sun 386i--all under X. Under X, I find the user interface is the easiest
to port between machines (if they run X of course :-).  The silly little
processor stuff like Intel and Motorola byte-ordering is usually harder.

You can run X on an IBM PC.  You can run X programs (but apparently not
an X server) on a Cray supercomputer.  Right now, X is just about your
only hope for providing a consistent look and feel on a graphical interface
across machines from multiple vendors.  X is most definitely NOT a
"tty emulator text interface."  X supports most any graphics you can
imagine and a lot you would never think of.  It supports zillions and
zillions of options (which, of course is a two-edged sword). 

Being network transparent (what a wonderful term, almost as good as
"ether" net :-), you can run a number-crunching program on the Cray
and display the program's output on an Apollo or a DEC. 

Don't get me wrong, X is not perfect.  It could be made simpler and more
consistent.  X's performance could be snappier.  But, again, X is just
about your only hope for graphical user interface portability across
multiple vendors, multiple machines, multiple keyboards and multiple
operating systems.

Besides all that, X is free :-).


Now, I am not working in what I consider a sheltered market segment.  And,
I constantly have to deal with machines from multiple vendors.  Portability
is possible.

But, I must admit that you have a point.  You can always improve performance
by optimizing for a particular architecture, or a particular graphics
monitor, or a particular co-processor.  The question is, is it worth it?
In some cases, the answer will be yes.  In other cases, though, a company
cannot afford to devote scarce resources developing code for what is
essentially a dead end.  If the code only works on a particular machine,
it does not help the company's overall software product.  The code is
only useful for the one architecture and cannot be used elsewhere.

The customization, however, may be necessary: The product may not sell 
without it.  Software development consists of many tradeoffs (and
the mere fact that IBM PCs exist is a major tradeoff :-).




Have fun,
-Eric

-- 
Eric F. Johnson          | Phone +1 612-894-0313             | Are we
Prime Automation,Inc     | UUCP:   bungia!pai!erc            | having
12201 Wood Lake Drive    | UUCP:   sun!tundra!pai!erc        | fun
Burnsville, MN 55337 USA | DOMAIN: erc at pai.mn.org            | yet?



More information about the Comp.lang.c mailing list