What GUIs Came Before X11?
Avi Bercovich asks: "We all know the base facts about X11. Built by Scheifler and Gettys et al at MIT and DEC, for look 'n feel impaired, networked bitmap displays. But what about the details? Now it would seem from what I've read that it has roots in X10 and something called W. But I've had a hard time finding out anything online about these ancestral systems. Where are there articles published on these systems? So who's got the lowdown, URL-pointers or juicy personal stories on our GUI/Windowing pre-history?" (There's more...)
"I'm sure that X11/10 and W weren't the only windowing systems around. I know there was something called NeWS - a sort of windowing postscript - that according to legend - duked it out with X11 and lost. Even earlier there where 'sketchpad' and the famous Engelbart 5 fingered mouse demo, but I think that those systems were developed even before we where blessed with Unix. And what _was_ XEROX up to when Jobs & Co. came to visit? Either way, there must've been a whole bunch of proprietary and/or research GUI windowing environments out there before X and its extentions swept the Unix board."
Robert W. Scheifler, Jim Gettys, The X Window System, ACM Transactions on Graphics, 5(2), April 1986, pp 79-109
The paper is ~30 pages long and contains an excellent description of why X were designed like they were, and also a quite candid critique of the system's shortcomings by their authors. There is about 1+ page of history.
A brief quote from the intro: "At Stanford University, Paul Asante and Brian Reid had begun work on the W window system as an alternative to VGTS for the V system. Both VGTS and W allow network-transparent access to the display, using the synchronous V communication mechanism" [(c) ACM 1986]. More references:
P Asente, W Referece Manual, Internal document, Dept. of Comp. Science, Stanford Univ., 1984 KA Lantz, WI Nowicki, Structured Graphics for Distributed Systems, ACM Trans on Graphics, 3(1), Jan. 1984, pp 23-51
W Nowicki, Partitioning of Function in a Distributed Graphics System, PhD Thesis, Dept of Comp Science, Stanford Univ, 1985
D Cheriton, The V Kernel: A Software Base for Distributed Systems, IEEE Software, 1(2), April 1983, pp 19-42
I also found some surprising references, such as the one with James Gosling (of Java fame), in his youth (while a student at CMU): ;-)
J Gosling, D Rosenthal, A Window-Manager for Bitmapped Displays in Unix, in Methodology of Window-Managers, FRA Hopgood etal Eds, Springer-Verlag, NY, 1986
J Morris, M Satyanarayanan, M Conner, J Howard, D Rosenthal, F Donelson Smith, Andrew: A Distributed Personal Computing Environment, CACM, 29(3), Mar. 1986, pp 184-201
Andrew was a windowing system developed independently at CMU at about the same time X and Athena were being developed at MIT. Eventually, X dominated and an emulation layer was written for Andrew, to be able to run it's UI on top of X.
A number of these are available online from ACMs DL. Otherwise, a trip to the library will probably provide you with more info than you need to know! ;-)
The Andrew WM has been pointed out...
I'm not sure that anyone has pointed out NeXTstep/OPENSTEP, which is probably the other major option that was considered highly innovative.
I don't think anyone has pointed out Fresco, which represents the "spiritual parent" of Berlin, which was the "free" toolkit for X that was ignored in favor of Motif, and provided standardized interfacing via IDL (which was not yet formalized as CORBA), as well as some interesting ways of organizing output presentation.
A common thread across all of these (perhaps save for Fresco) is that Licensing Is Really Important.
NeWS and NeXTstep and the "Andrew thing" all had some technical merits that were overruled by licensing constraints. They were owned by major companies (Sun, NeXT, IBM), and in the scramble to maximize revenue, and, more importantly, maximize control, the notion of them having the potential to become industry-wide schemes was lost. (Microsoft took a different tack with Win32; MSFT fought long, hard, and nasty to ensure that their software would be dominant. If you can dominate, you don't need to "share" to see your system go industry-wide. Insert visions of leather-clad Bill Gates with a whip here... )
The "N" guys had a further constraint, that being that they both had dependancies on Display Postscript, from Adobe. The only way they could become ubiquitous was for Adobe to become more ubiquitous. Some of Apple's troubles in getting "Rhapsody/MacOS-X" released relate to that in that it appears Adobe has concluded they'd rather not sell DPS.
Fresco, in contrast, got "shafted" in the political wars between the UNIX vendors. It wasn't proprietary enough for their liking at the time, or so it would appear. I have a feeling that the UNIX world would be considerably different today if Fresco had been chosen over Motif...
If you're not part of the solution, you're part of the precipitate.
"I harldy ever use graphical environments, and don't see how it adds a huge amount to my work..."
Try (for just a few seconds) to look outside of your own personal sphere of computing experience, which you say requires very little, if anything, in the way of a graphical environment. Consider for a moment that there may be other people who perform tasks on computers totally unrelated to your line of work, that do require a graphical environment. Like photo-editting for example (I challenge you to name any popular magazine published in the last 5 years that does not use computers to (at the very least) touch up photos). Video-editting is another. CAD and 3D Design are more examples. How about architectural design programs? Virtual Reality? Games?
Humans naturally process information visually, so it makes sense to build tools that take advantage of that. It is far more useful for an architect, for example, to be able to see a graphical depiction of his design than a bunch of numbers in a text file. Photo editors may be able to do a lot of cool stuff with scripts - but with nothing graphical to display the results on, those scripts are useless.
Even in programming there are many possibilities for visualizing information in a useful way that would be much harder (or impossible) to do with just a CLI. For example, a profiler can use graphs to make it easy for a programmer doing optimizations to spot the trouble-spots in his code extremely quickly. Graphical tree or graph widgets can be used to help visualize the dependencies within modules in an application - allowing a newcomer to learn the overall layout of the source code in seconds, rather than hours.
Of course, the mere ability to display numerical data graphically is useful in almost any industry. E.g. by graphing a stock price over time you can glean information about the trends in a couple of seconds; that would take you hours to do manually by trying to stare at the numbers. Yes, you could draw a bar graph on a CLI - but you simply don't have quite the same sampling resolution. Neither do you have the ability to draw other types of graphs very well, such as pie charts. A CLI absolutely sucks when it comes to displaying mathematical formulas - or even simple superscript/subscript text for that matter.
Games are another technology driver that scream for cool graphics. The industry of computer games (and more generally, entertainment) form a large part of the economy and create many jobs. This industry would not be possible if we all used CLI's. I'm sure that a text mode Quake3Arena would just not have quite the same feel.
Virtual Reality applications absolutely have to have the best possible graphics. VR applications are immeasurably useful as industrial training tools that can be used to train workers to not only be more productive, but to be better equipped to handle emergency situations, and thus save lives (e.g. a coal-mining training simulator.) Can't do it with just a CLI.
I'm sure that sound mixing and editting could potentially be done using just a CLI; but just by using some more advanced visualization methods for sound (even a simple waveform for example) helps a sound editor immeasurably in getting his/her job done quicker and easier.
There are hundreds more potential applications for computers that have graphical environment.
Considering that a CLI can exist as a subset of a graphical environment (eg xterms) I don't see any reason not to build computers to support *both*.
If computers did not have graphic environments then they, as tools, would not be general-purpose enough to be very useful or popular.
You stick to your xterms (or DOS boxes if thats your thing) if you like, but open your mind a bit. Not only sysadmins and programmers sit behind computers.
When I visited PARC in the early eighties, the screens were still B/W and in portrait configuration. The Altos and 1100 series machines were mostly running Smalltalk-80 or Interlisp, both of which were pretty standard (for today) windowing systems: menu bars, pop-up right-button menus, etc. They were developing the icon interface which became the failed Lisa design, and were also programming in Mesa. Interlisp, Smalltalk and Mesa all had programming UIs similar to M$ofts Visual line.
The company I worked for (Schlumberger) took a flying leap at the Xerox Lisp machines. For a couple of years I programmed on 1132s (the Dorado, a $130,000 personal computer!) and 1100s (Dolphin) 1108/1109s (Dandelion). We were doing oil well log analysis; my bit was doing the graphics, scrolling the logs, picking features with mouse clicks, linking to the rest of the AI system.
So I think all this makes me feel very old ...
... an idea, the fugitive fermentation of an individual brain ... -- T. Jefferson
http://wwwipd.ira.uka. de/~frueauf/FAQ/NetBSD-Amiga-X-FAQ.txt is a rather lengthy FAQ dealing with X (servers, clients, etc). It mentions X10 as being the first X system.
"And what the people but a herd confus'd,
A miscellaneous rabble, who extol
Never trust anyone over 90000.
Until recently, it was always off to the side of the keyboard, requiring a user to take their hand off the keyboard in order to move the pointer. Most mice are still constructed in this fashion -- and people have no idea how much time they waste moving their hand between the keyboard and the mouse!
It provides the joys of carpal tunnel (at least for me) in a way that a keyboard never will.
I always liked IBM's trackpoint eraser mouse in the middle of the keyboard. You can type and mouse at the same time and I have no carpal tunnel problems with it, as my hands stay in the same place whether I'm typing or mousing. However, the movement was too sluggish and so I was damaging my pointer finger by using it.
Any have any good ideas for pointing devices built into a keyboard? It's pretty pathetic that we're still using the same equiptment to access our GUIs after all these years.
-- Diana Hsieh
-- Diana Hsieh
GeekPress: The Weirder Side of Tech News
What follows is an excerpt from "Programming as if People Mattered: Friendly Programs, Software Engineering, and Other Noble Delusions", by Nathaniel S. Borenstein.
The Andrew Window Manager
An interesting constrast to the UNIX success story is the less well known but far more typical tale of how the institutionalized greed of the men in suits managed to kill another promising piece of software, the Andrew Window Manager. In contrast to the UNIX story, which occupies a key role in the history of computer software, the Andrew Window Manager is nothing more than a footnote in that history, a minor story that has been quietly repeated many times without anyone ever seeming to learn anything from it.
The Andrew Window Manager (WM) is a program that, as its name implies, manages windows on a computer's screen. It was one of the first network-oriented window managers to run under the UNIX operating system on a scientific workstation with a bitmap display. It was fast, easy to use, and reasonably reliable. Among those who used this class of machine, it generated intense interest, and a steady stream of visitors came to its birthplace, Carnegie Melon University (CMU), to see it.
However, WM was not owned by CMU. It was developed as part of the Andrew Project, a joint venture of IBM and CMU. Part of the agreement that defined the joint venture stated that IBM would own the software, but that "reasonable" licensing arrangements would be available.
Unfortunately, there are many definitions of "reasonable." To a university, a licensing arrangement like the standard UNIX license was "reasonable." To IBM, such low-cost licensing sounded insane. While IBM and CMU argued over licensing arrangements, the people waiting for licenses got impatient.
One such group, from MIT, eventually gave up on WM entirely, and built their own window system instead. That system, which they called X Windows, has the traditional evolutionary relationship with its predecessor: it did everything WM could do, and more. Moreover, the MIT group managed to align itself with a multivendor consortium that funded the continued development of X Windows as a nonproprietary, easily licensed standard window system. Within a few years, IBM found that nobody even wanted to license WM any more, and that IBM was in danger of being entirely left out of an emerging standard. With little choice, IBM embraced the X Windows standard, and CMU began converting all of the Andrew application software from WM to X.
What is most notable here is that WM was a very promising and useful piece of software. It was ahead of its time, and many groups would have liked to pick it up, use it, and improve it. By trying to from the beginning to squeeze every possible penny out of it, IBM squeezed the life out of it instead. Good software needs to evolve, and it cannot evolve in the face of greedy licensing arrangements.
--
"Convictions are more dangerous enemies of truth than lies."
Along with emacs identity as a web browser, and email client, an editor, an ftp client, and even an irc client, emacs is a windowing system.
:)
Try firing up emacs and hitting C-x 2 if you don't believe me.
Oh sure, maybe it doesn't following the WIMP paradigm per se, and maybe it's only just text, but conniseurs of lynx know the value of text. It's better than eye-clogging graphics of indescribable shapes and colors that prove nothing other than that the author had WAY too much time.
Emacs is the ultimate windowing system. I haven't gotten around to write a window manager in elisp yet, but I'm sure there's somebody out there that would do it.
-- Truth goes out the door when rumor comes innuendo. -- Groucho Marx
i know nothing about NeWS, but have been very curious about it ever since i first heard of it.
I first heard of it in the X chapter of the UNIX haters handbook, which makes occational references to NeWS as a windowing system done right. It's also a very interesting read (not FUD at all, just reasonable if incendentary analysis..) and probably would tell you a little about NeWS..
The URL i just listed above, btw, which i just found now on Google, happens to contain a link to a series of NeWS resources, which i haven't read yet. draw your own conclusions.
I am very curious about NeWS, and if anyone out there has used it, please post and let us know anything about it you may have to say.. Or is there anyone who STILL uses it?
What are the differences between this, DPS, and Quartz? DPS and Quartz aren't capable of running over a network are they? (i fear this last sentance will ignite an irrelivant flamewar, but i'm curious, so i'll include it anyway..)
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
See the history articles at http://www.enteract.com/~enf/afc/tty
(scroll down, the X articles are toward the bottom)