Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!snorkelwacker!bloom-beacon!THUMPER.BELLCORE.COM!nsb From: nsb@THUMPER.BELLCORE.COM (Nathaniel Borenstein) Newsgroups: comp.windows.x Subject: Re: Abstracting the Windowing System Interface Message-ID: Date: 1 Feb 90 14:41:57 GMT References: <100920158@hpcvlx.cv.hp.com> Sender: root@athena.mit.edu (Wizard A. Root) Organization: The Internet Lines: 36 Excerpts from internet.xpert: 31-Jan-90 Re: Abstracting the Windowi.. Benjamin Ellsworth@hplab (2065) > This is a hopeless task. It's not that it can't be done, but the impact > to the product and the costs of even coming close to making it work are > at least as great as the costs of moving to newer standards. I speak > from experience with user interface systems, business applications and language systems. I can't agree with this. There are tradeoffs that can be made. In particular, if you are willing to settle for doing without some of the fanciest functionality of any given window system, it is possible and productive to define a window-system independent layer on which to build your software. As proof of this claim, consider the Andrew software. It runs daily on two different window systems (the old WM developed in the Andrew project, and X11). WIth X11R4, they even run at comparable speeds and robustness (this was not true of the previous release). The code has also been partially or fully ported to at least three other window systems, to my knowledge. The secret to Andrew's window-system-portability is that it defined a portable graphics layer that mapped well onto multiple window systems. Using this model, you can't get at every bell and whistle of X11, but you really do get portability without paying a significant performance price. (With Andrew, you even get binary compatibility -- the same binaries will run on multiple window systems, and can even, I believe, open an X window on one display and a WM window on another. Now *that's* portability!) The Andrew Toolkit and many application programs are available on the X11R4 tape under "contrib/toolkits/andrew". -- Nathaniel S. Borenstein Bell Communications Research