140 The X-Windows Disaster X Graphics: Square Peg in a Round Hole Programming X Windows is like trying to find the square root of pi using roman numerals. —Unknown The PostScript imaging model, used by NeWS and Display PostScript, solves all these horrible problems in a high-level, standard, device indepen- dent manner. NeWS has integrated extensions for input, lightweight pro- cesses, networking, and windows. It can draw and respond to input in the same arbitrary coordinate system and define window shapes with Post- Script paths. The Display PostScript extension for X is intended for output only and doesn’t address any window system issues, which must be dealt with through X. NEXTSTEP is a toolkit written in Objective-C, on top of NeXT’s own window server. NEXTSTEP uses Display PostScript for imaging, but not for input. It has an excellent imaging model and well- designed toolkit, but the Display PostScript server is not designed to be programmed with interactive code: instead all events are sent to the client for processing, and the toolkit runs in the client, so it does not have the low bandwidth, context-switching, and code-sharing advantages of NeWS. Nevertheless, it is still superior to X, which lacks the device-independent imaging model. On the other hand, X’s spelling has remained constant over the years, while NeXT has at various times spelled their flagship product “NextStep,” “NeXTstep,” “NeXTStep,” “NeXTSTEP,” “NEXTSTEP,” and finally “OpenStep.” A standardized, consistent spelling is certainly easier on the marketing ’droids. Unfortunately, NeWS and NEXTSTEP were political failures because they suffer from the same two problems: oBNoXiOuS capitalization, and Amiga Persecution Attitude.
X: On the Road to Nowhere 141 X: On the Road to Nowhere X is just so stupid, why do people use it? Beats us. Maybe it’s because they don’t have a choice. (See Figure 2) Nobody really wants to run X: what they do want is a way to run several applications at the same time using large screen. If you want to run Unix, it’s either X or a dumb character-based terminal. Pick your poison.
Previous Page Next Page