Slashdot Log In
What GUIs Came Before X11?
from the knowing-your-history dept.
"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."
LISP Machines (Score:3)
Here are a few people's pages about Lisp Machines, for the curious (Some links are MIA; can anyone find a new valid address for them?):
- Symbolics [symbolics.com] machines: Peter Paine [freeserve.co.uk] | Bob Kerns [brightware.com] | [MIA] Rainer Joswig [lavielle.com] | dr. P.M.E. De Bra [win.tue.nl] | Ralf Moeller [uni-hamburg.de] | PT Withington [pobox.com]
- LMI machines: [MIA] Joe Marshall [cape.com]
- There were other LISP Machines: Ti Explorers, Xerox Dandelions, etc... Check the FAQ [faqs.org] for comp.lang.lisp [lang.lisp], make a Google search, etc.
The curious can acquire an old LispM or a NuBus board from Symbolics for $600; the rich can acquire a license for OpenGenera running on top of a Tru64 Alpha for a mere $5000... Maybe a university near you has one somewhere.X Origins (Score:4)
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! ;-)
Well, don't forget Sunview (Score:3)
Re:What was NeWS (Score:3)
It's been a while - forgive me if I get some of the details wrong. Basically NeWS consisted of a display server (much like an X server) that spoke postscript. Everything was done in postscript, from defining windows, drawing text, handling mouse events, etc. But the really nice thing was that the client could extend the postscript interpreter on the server. In the usual postscript/forth way, new commands can be defined and run, but the client could determine where they ran - if they were closely coupled to the data, it was best to define and run them on the client machine. If they were closely coupled to the display, best to define and run them in the server's postscript interpreter. So, for example, if your app wanted rubber-banding as you drag the mouse, then it was best to extend the server to do rubber banding. The commands associated with getting the mouse events and drawing the rubber bands would then all happen in the server causing no network traffic, and when the final rubber band position was ready, a single response would go back across the network to the client. In this way, interactive NeWS applications behaved nearly as well if the client was running on the other side of the planet as if it was running locally. At least for applications where the client and server could be relatively loosly coupled anyway. This wouldn't work well for GIMP for example unless almost all the rendering happened in the server, and for that quantity of data, postscript probably wasn't all that fast.
Shame Sun didn't learn the lesson about open standards earlier, but at least they did learn and do things a little differently with Java.
-Fzz
Common Thread: Licensing Is Important (Score:4)
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, [berlin-consortium.org] which represents the "spiritual parent" of Berlin, [berlin-consortium.org] 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...
Re:The Andrew Window Manager (Score:3)
Sketchpad
"...Ivan Sutherland designed Sketchpad in the early 1960's for his graduate thesis."
Xerox
"Xerox was researching [GUI] tools at [PARC] throughout the 1970s. The historical roots of GUIs at Xerox go back to early work done in Smalltalk and the Star. Nearly all the features that are now expected on a windowing system were available on the Xerox Star... Star was the first fairly complete implementation of what is now considered a GUI... even though the Xerox Star is generally recognized as the main introduction of the GUI, Xerox's own developers cite 14 earlier computer systems that influenced their work."
Englebark
"The inventor of the mouse was Douglas Englebark at Xerox Parc... because of the inaccuracy of Englebark's early analog mouse, his design did not include what is known today as modeless interactivity... the schema was: move word, the click the mouse to indicate which word, then pick the object, and then do a command accept."
RAND SYSTEM
"One of the first systems to offer intimacy between computer and user (i.e. the threshold of charm) was the RAND system developed... in 1967. Initially done as an interface system for financial analysts who couldn't type, it employed the world's first data tablet. It had automatic sizing and object linking capabilities and character recognition. The user could draw symbolic boxes, interconnect them for their relationships, and label them (using hand printed characters), as well as erase and other logical, normal day-to-day functions.
"This system also had automatic geometry correction so that the user could draw an approximation of a box and the computer would automatically square it up and make it look like a box. The system had the first resizable capabilities, which were the inspiration for resizable windows on the Macintosh. The RAND system is literally where the Macintosh Window control capability came from, according to Alan Kay, one of the inventors of the GUI at Xerox PARC."
X Windows
"The X Window system originated with James Gettys, a [DEC] researcher assigned to MIT's Project Athena, and Robert Scheifler, a reseracher with the MIT [Lab for C.S.] In the summer of 1984 both had been struggling with a need for a windowing system in their separate projects... The only window software available at the time for the VS100 was some software called W, which Paul Asente and Brian Reed had worked on at Stanford University to run under the Stanford V [OS]. So the project started with W, but after they had been working (hacking) on it for a few weeks, it clearly wasn't W anymore. They had to call it something, so they decided to use the next letter, and that is why X is called X."
On page 32 there is a wonderful visual history of OS and GUIs which i'll try to render here (my fiefdom for a "pre" tag!):("--" == begat)
AppleDOS--ProDos
CP/M-80--CP/M-86--Conc-CP/M-86
CP/M-80--(2nd branch)--DOS1.0--DOS-2--(DOS-2 then branches into 4 sub groups: DOS3.0 (ends with DOS5.0 and another branch to OS/21.0--OS/2 PM); Windows1.0 (branches into Windows2.x and Windows386 which reunite into Windows32.x(NT) but since this is from 1991 it would of course branch also into Win9.x later); GEM; Desqview
Xerox Alto (and) Xerox Star--Apple Lisa--Apple Mac
Multics--(in one gigantic conglomeration)--UNIX, XENIX, AIX, AUX, MACH (out of which emerges)--Open Look, --OSF/1 Motif, --NeXTstep, and --MS System v/386 3.2--MS System V/386 4.0
There is still more historical detail on the other, later GUI systems... Windows, NewWave, NeWS, NeXTstep, etc. but my hands are a bit raw from the typing!
Thank You and Goodnight!
my fun with graphics (Score:3)
This doesn't necessarily cover GUI's, but it is my personal history with graphic calls. Well, to really begin, there was Calcomp plotting calls; we had no display CRT's, just paper. Then on to Tektronix plotting on the good old 4010 green screen of death. The Tek4010 was great. Just sit there in a dark room while hitting the clear/refresh button; poof, poof, poof. Apollo DomainOS with either gpr(?) or core graphics was fun. Direct memory access on a NumberNine graphics board to manipulate the pixel values. NeWS and GL on a SGI (IRIX 3.0, IIRC). Then onto SunView which was pretty easy to learn. But once I learned SunView, OpenLook came out.
Then back to GL and the use of a new widget set called Forms written by Mark Overmars; this eventually became xforms. I think I still have the Forms source code. Then, drumroll please, X11 and, *gasp* Motif with IRIX 4.0. Did I mention steep learning curve. I'm now dabbling around with openGL and Gtk (BTW, Gtk looks pretty good).
Never got to play with PHIGS, nor wrote code for the MacOS.
Sorry for rambling, but I guess what I'm saying is that it was a real mess back then. Definitely roll your own. The concept of a uniform cross-platform GUI is a relatively "new" development.
Look around you (Score:4)
"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.
Display Ghostscript (Score:3)
Re:why a mouse (Score:3)
It's ironic that Doug Engelbart is most widely known as 'the inventor of the mouse', but specifically created it to be used in combination with a chord keyset so that you could (with practice) point, click with one hand, and type content or CLI commands very rapidly with the other.
On this subject, Alan Kay said:
Looking back I think that one of the paradoxes is that we made a complete mistake when we were doing the interface at PARC because we assumed that the kids would need an easy interface because we were going to try and teach them to program and stuff like that, but in fact they are the ones who are willing to put hours into getting really expert at things - shooting baskets, learning to hit baseballs, learning to ride bikes, and now on video games.
I have a four-year old nephew who is really incredible and he could use NLS fantastically if it were available, he would be flying through that stuff because his whole thing is to become part of the system he's interacting with and so if I had had that perspective I would have designed a completely different interface for the kids, one in which how you became expert was much more apparent than what I did. So I'm sorry for what I did. The Brown/MIT Vannevar Bush Symposium [brown.edu], Oct 1995
See
Re:UIs at Xerox PARC (Score:3)
A point I didn't see in that article is that, as I understand it, PARC didn't have overlapping windows redrawing properly. The Apple engineers didn't notice that and went back to work and developed QuickDraw -- basically reverse engineering something that didn't actually exist yet.
Someone should ask Rob Pike (Score:3)
AmigaOS (Score:3)
Not forgetting that Amiga had a bunch of very cool graphics primitives that you could play with. The design of Amiga UI's have always seemed very logical, and I think wb3.0 looked sweet. You had your gadgets, and once you put a gadget that was it. Contrast with Win32 or X-windows.
The real story is, however, the underlying OS. When I got hold of ROM Kernel Reference Manual - Exec, I was kind of overwhelmed. It took time to understand what was going on there. The fast message passing, pre-emptive multitasking lightweight kernel, dynamic device drivers and libraries. Thanks to Carl Sassenrath! Man, you could not possibly ask for more then. And it all was packed in 512K of ROM. It sure went up to 1MB but it was worth it. If the Amiga hadn't gone down due to the stupidity of Commodore it would still stand straight in the world of multi-user OS's. And possibly POSIX compliant. Those were the days...
I also remember an object oriented programming model in the recent versions of AmigaOS, what was that called?
UIs at Xerox PARC (Score:4)
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 ...
FAQ from 1996 about X (Score:4)
http://wwwipd.ira.uka. de/~frueauf/FAQ/NetBSD-Amiga-X-FAQ.txt [ira.uka.de] 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
why a mouse (Score:4)
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
The Andrew Window Manager (Score:5)
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.
--
original interface (Score:3)
Emacs! (Score:4)
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.
Slashdot covered this last year - "15 years of X" (Score:5)
What was NeWS (Score:5)
I first heard of it in the X chapter of the UNIX haters handbook [catalog.com], 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 [catalog.com], 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..)
Re:X Origins (Score:3)
the authors of the Andrew window system, and NeWS. I did the first port of
the X Window System to non-DEC hardware and was one of the team that got X11
release 1 out the door.
This comment has good references, all worth reading. The Methodology of Window
Management book is the record of a workshop in 4/85 - it has a lot of pointers
to work further back, in particular a paper called "Ten Years of Window
Systems" by Warren Teitelman, who was at PARC and then ran the Windows group
at Sun. This describes many of the early window systems at PARC.
I'm not going to try to write a complete history, but I do want to correct
several misleading statements in the comments to this post. There were
several streams of development which naturally influenced each other- broadly:
- Libraries supporting multiple windows from one or more threads in
a single address space, starting from Smalltalk leading to the Mac
and Windows environments.
- Kernel window systems supporting access to multiple windows from
multiple address spaces on a single machine, starting with the Blit
and leading to SunWindows and a system for the Whitechapel MG-1.
- Network window systems supporting access to multiple windows from
multiple address spaces on multiple machines via a network, starting
from work at PARC by Bob Sproull & (if memory serves) Elaine
Sonderegger, leading to Andrew, SunDew which became NeWS, and W
which became X.
Gosling & I & others at C-MU's Information Technology Center wrote the Andrew
window system. We were all post-docs by then, not students. My memory
is that it was working OK in the spring of '84.
NeWS was not based on Display Postscript. Gosling built a completely
independent (and much faster) implementation of PostScript from the
specification that Adobe published as a book. This was SunDew. It was
never a fully functional window system. NeWS was a ground-up re-write
of SunDew, adding extensive multi-threading and garbage collection to
the PostScript clone. My memory is that it was working pretty well by
the summer of '86.
Early versions of X were specific to bizarre DEC hardware. While I was
working on NeWS at Sun I also did the first port of X10 to non-DEC
hardware - to Sun 1,2 & 3 workstations. Experience from this and later
ports of X10 was a major input to the redesign that resulted in X11,
and this careful design has led to reasonably easy porting to X11 to a
wide range of hardware.
I'm not going to comment on the politics which have surrounded window
systems, except to say that an individual's rankings of the importance
of different technical, aesthetic or licensing features are no more than
an individual's views. The market's view of the same features can be
quite different without the operation of conspiracies or malign forces.
It may simply be that the majority of customers don't agree with your
priorities.
X, W, and ttys (Score:4)
(scroll down, the X articles are toward the bottom)
Re:why a mouse (Score:5)
Anyway, I've been using a mouse for about 14 years, and have never had any carpel tunnel problems, from the mouse. A typical crapo PC keyboard will have my fingers knotted in 5 minutes, however. So, I normally run with an IBM Trackpoint II keyboard plus a MS optical mouse just because the trackpoint 'seems' quicker (not necessarily easier), and typing is definately quicker on the clickity-clack. I do wish there was a scroll wheel on this old IBM keyboard, though.
--