Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!think!snorkelwacker!mit-eddie!bbn!diamond.bbn.com!mlandau From: mlandau@bbn.com (Matt Landau) Newsgroups: comp.windows.x Subject: Re: Abstracting the Windowing System Interface Message-ID: <13460@granite.BBN.COM> Date: 2 Feb 90 20:40:34 GMT References: <9002011637.AA04472@devnull.sun.com> Sender: news@bbn.com Lines: 55 dshr@SUN.COM (David Rosenthal) writes: >> The secret to Andrew's window-system-portability is that it defined a >> portable graphics layer that mapped well onto multiple window systems. >The secret to Andrew's portability to X11 is that X11 was designed from the >start to be capable of supporting Andrew because some of the people who >designed WM also helped design X11. If you want to make this case, >you need some less contrived example. There are one or two other examples. At BBN, the multimedia communications group (of which I'm a part) has its own toolkit for producing window-based applications. Our toolkit also implements its own abstractions for windows, events and event processing, menus, dialogs, and other user-interface components, for both input and output. Although our toolkit was originally written to run on top of SunWindows (yes, it predates the SunView programming interface), we've since ported it to X11, and in general applications simply recompile and run. It's true that we don't take advantage of ALL of the bells and whistles of X, but in fact we manage to make very good use of many of them. What's most important is that you view the abstract toolkit as an evolving entity that you can modify as you port to other underlying window systems. For instance, as we've ported our toolkit to X11, we've added new several abstractions and semantics to make the fit better (window groups, a model for transient vs. non-transient windows, etc.), then gone back and added the same abstractions to the Sun-specific version of the toolkit. In most cases, the result is that BOTH versions of the toolkit are improved by such additions. As proof of the fact that you CAN build a generic window system toolkit that's more than a toy, I will point out that we build our BBN/Slate product on top of this toolkit. Slate is multimedia document communications system that includes a document editor (documents contain text in English and other languages, graphics, monochrome and color images, spreadsheets, charts and graphs, voice annotations, and generic enclosures), mail reader and interface to the local mail system, and realtime conferencing system that allows multiple sites connected by TCP to examine and edit documents simultaneously in real-time. Both the user-interface components and the underlying conferencing architecture are implemented within our toolkit, and both run under SunView and X11 with no application-level source code changes. So it can be done :-) [Before anyone asks, I'll head off some questions: No, you can't get the toolkit sources -- they're considered proprietary software by BBN. Yes, you can buy Slate -- contact BBN Software Products Corp. for details and prices, 'cause I'm an engineer and not a salesman :-) No, it's not based on Andrew, although the two systems have some similarities and we've done some work with the Andrew folks in a reseach context. If you have other questions, email me directly rather than cluttering up the newsgroup.] -- Matt Landau Dancing with the Ice Weasels mlandau@bbn.com