Path: utzoo!attcan!uunet!lll-winken!ncis.tis.llnl.gov!helios.ee.lbl.gov!pasteur!ucbvax!bloom-beacon!SUN.COM!dshr From: dshr@SUN.COM (David Rosenthal) Newsgroups: comp.windows.x Subject: Re: X Toolkit portability Message-ID: <8905092243.AA03536@devnull.sun.com> Date: 9 May 89 22:29:06 GMT Sender: daemon@bloom-beacon.MIT.EDU Organization: The Internet Lines: 41 "Don't, don't believe, don't believe the hype." Public Enemy Peter Scott writes: > One of the main justifications I am required to provide for the powers-that-be > for our investment in X is that programs written using it are completely > portable, or, at least, if they are not, the non-portable code will not be > part of the X code. > followed by a (self-admitted) flame about the toolkit. Unfortunately, it is not true that even programs written only using Xlib calls are "are completely portable, or, at least, if they are not, the non-portable code will not be part of the X code." X exposes a number of features of the underlying displays, keyboards, and machines. X client programs, even those written using only Xlib, that do not take proper account of variations between servers including, for example: - The different keysyms available on different keyboards. - The different number of buttons on different mice. - The different types, depths and numbers of Visuals. - The different amounts of memory available to different servers. will not port automatically between servers. This topic is far from trivial - David Lemke and I were able to write an entire Usenix paper on just one of these classes of difference (Visualizing X11 Clients in the Winter '89 Usenix). If Peter has been selling his management the concept that X provides automatic and total portability, he has much more to worry about than the availability of the toolkit. In fact, in most cases the toolkit (whichever toolkit he uses) is actually helping his portability by being properly designed to cope with some of the differences between servers. X makes portability much easier to achieve, but it does not guarantee it. Only you, as the client programmer, can guarantee that. David.