Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!indri!nic.MR.NET!eta!com50!pai!erc From: erc@pai.UUCP (Eric Johnson) Newsgroups: comp.lang.c Subject: Re: Book on MS C (really user interface portability) Summary: Try the X Window System Message-ID: <452@pai.UUCP> Date: 31 Mar 89 15:26:45 GMT References: <754@oravax.UUCP> <225800147@uxe.cso.uiuc.edu> Organization: Prime Automation, Inc., Burnsville, MN Lines: 99 In article <225800147@uxe.cso.uiuc.edu>, mcdonald@uxe.cso.uiuc.edu writes: > > mcdonald@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@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@pai.mn.org | yet?