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."
(and was not NeWS based.)
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 machines: Peter Paine | Bob Kerns | [MIA] Rainer Joswig | dr. P.M.E. De Bra | Ralf Moeller | PT Withington
- LMI machines: [MIA] Joe Marshall
- There were other LISP Machines: Ti Explorers, Xerox Dandelions, etc... Check the FAQ for comp.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.Both gwm and the more recent Sawfish are extensible window managers which are implemented in an elisp-like language.
Somebody suggested, as a 'blue-sky' feature for GNOME a while ago, a kind of Emacs window manager where you have each app open in its own buffer and switch between them with C-x b, C-x o and so on. For the special case of shell buffers, we already have this. Something like a VNC-mode for XEmacs would probably allow you to implement this fairly easily.
-- Ed Avis ed@membled.com
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! ;-)
NeXT did, but Sun didn't - NeWS contained an PostScript implementation of its own, not any from Adobe, and NeWS was not, as I remember, a compatible superset of Display PostScript ("superset" - the PostScript in NeWS included operators to handle input events, so you could download a program to a server that would respond to keyboard and mouse events and do work on the server, rather than the client having to handle all input events).
(The latter parenthetical note brings to mind NeFS, which Brent Callahan at Sun came up with - think "PostScript with the imaging model removed and a file system model put under it", so that NeFS requests consist of PostScript programs sent to the server and interpreted by the server.)
...Sun's pre-X windowing environment. Although pretty hard to find in its original form, Xview is pretty much a straight port on top of X11 -- even the API calls are very Sunview-ish
Then you apparently never use Word Processors (no, troff is not a substitute), nor do you use markup editors (no, TeX is not a substitute). Apparently you also:
Thank god the world is not run by people like you. We'd all be living in unpainted concrete cubes without any windows (pun intended). DrWiggy: "Go outside if you want to see outside! Color is just useless decoration! I'll have the last laugh with my concrete cube in the next earthquake, by god!"
P.S. This is not to say that I never use CLI's... I use them quite often when programming. But for application work, frankly, I am not a savage.
--
Sometimes it's best to just let stupid people be stupid.
This is all well and good... but what's wrong with raw vegetables? I hardly ever cook my food, and don't see how it adds enjoyment to eating...
Sure, we could all live on raw veggies, but who wants to? I say cook my food, and my interfaces.
Your complaint about lack of shortcut keys brings up a point about the inefficiency of "modern" GUI's. You are absolutely correct, they cannot be called shortcut keys. What I do at work (where I have to use Windows sometimes) is just keep a DOS window open perpetually. I do everything in this window. This is the strength of the CLI, that it is very efficient for actually getting work done. As mentioned in another post, the GUI is great for graphics (irreplacable really) and word processing, etc. If you have a command line controlling a GUI (really nice in X), then you get the best of both worlds. A really efficient method of setting this up for Windows users is to change the SHELL=Explorer.exe line in C:\WINDOWS\SYSTEM.INI to SHELL=C:\COMMAND.COM (or to a PIF file, this may be necessary to get it to run in a window), that way you get all the functionality and none of the extra crap.
Well, that's a typical attitude to people who are usually a lot older :P, and got too used to CLIs.
:) - intellisense being tooltips and popups of function signatures and class members.
GUIs offer many many advantages, every tried doing any form of drawing with the keyboard and text?
You can tend to display HEAPS more information with GUIs without clutering than you can with text based systems, where the amount of individual symbols available is quite limited (sure you could remap them and form bitmaps - but then you're just going graphical in a lame sort of way).
Even for programmers, having nice highlighting, different fonts etc for different parts of the source code can aid reading immensly. Hey you can't have intellisense (very easily anyway) without a GUI based system
I suppose you could work with CLI, but why not make it easier on yourself? There are things which make it easier for humans, and though it might feel cool to make things difficult on yourself (if you even know you're doing that) but you can probably get a lot more work done making it easier on yourself.
You can use GUIs, and not have to give up your CLI shells either.. xterm, cmd.exe etc
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
On the subject of textmode windowing systems...
Another really nifty one is TWIN (forget the URL). It uses ncurses and libgpm to create a console windowing system with widgets, scrollbars, etc - even overlapping windows.
It comes with a terminal emulator and a few other apps; one of my friends has written a CD player for it (TWIN CD). Supposedly the API is really nice.
Oh, and it has screen-like functionality - you can detach a TWIN desktop and reattach it on another tty (even over telnet/ssh, although no mouse over that).
"If ignorance is bliss, may I never be happy.
-- Veni, vidi, dormivi
For more information, click here.
I remember Andrew Tanenbaum (ast@cs.vu.nl) making a comment something to the effect that even though his window system for Amoeba(?) was smaller and faster than X, he couldn't prevail against the MIT juggernaut. I checked Tanenbaum's home page, but I didn't find any references. Perhaps someone could email him a question. [Amoeba is a distributed operating system that is available free-of-charge from ftp://ftp.cs.vu.nl/pub/amoeba/amoeba5.3/.)
I think X won because Display Postscript was proprietary and expensive.
My site had mostly NCD terminals and wasn't about to spend a fortune on Display Postscript licenses when a free alternative existed. I wish they felt the same way when they decided to replace the NCDs with PCs. Why use NT when Linux and BSD are still around.
-- Don't Tase me, bro!
Moderators: wrong information is not really "insightful".
W was not an OS. W was a Window System. X replaced it (because W was proprietary).
-- Don't Tase me, bro!
Try out this old article on Ars Technica about the issue. Basically, everything that holds true for Quartz also held true for Display Postscript. The originating markup language behind the display version has just changed from Postscript to PDF. DPS was WAY ahead of its time. I just hope Apple keeps the networked aspect of the rendering system or makes it easy to extend to do networking.
If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
Emacs is basically a full-fledged operating system running a text-editor as a shell. Whaddya expect?? Of course it must be the first windowing system. And not only so, its successor, XEmacs, even extends its ASCII-graphic capabilities to real pixel-graphics! With this latest innovation, we finally have the XEmacs OS, a full-featured replacement for all other poor attempts at an operating system, like winblows, linsux, etc., as well as all other poor attempts at windowing environments like winblows, X, Mac, etc., ad nauseum.
X is but a weenie off-shoot from the ultimate XEmacs OS. Not only the Emacs OS predates X, it will also ultimately be its replacement.
Sarcasmometer reading: 1000
---
mikre he sophia he tou Mikrosophou.
Please, don't say "X-Windows", "XWindows" or such. It's not the correct name for the windowing system that XFree86 is compatible to. The proper name for it is either X11, X, X Window System, X Version 11 or X Window System, Version 11. See the man page (man X) if you don't believe me.
Speaking of it as "X-Windows" is like calling the linux kernel "linux32.dll".
Well, some of us are better with the command line than others. Maybe "we" don't need GUIs, but I'm afraid that "I" do.
http://www.farmerbob.org
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.
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!
I flee dead people.
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.
"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, a part of the GNUStep project is coming along, slowly but surely. - what I want to know is: Seeing as Ghostscript supports PDF as well as PS, will we therefore see a Libre version of the Display PDF technolgy that Quartz is based on ???
Choice of masters is not freedom.
GEOS is (apparently) the only 8-bit GUI operating system being sold, and the only 8-bit GUI that is a success. Over 1.6 million copies of GEOS were sold by Berkeley Softworks, or came bundled with new Commodore 64s and 128s. The GEOS operating system was first sold in 1986; the last version, GEOS 2.0, was released in 1988. GEOS is very remarkable, especially considering the hardware it was written for. The GEOS deskTop is document-oriented, and allowed drag-and-drop file printing, deleting, and copying. (Windows did not offer drag-and-drop file printing until a latter date with Windows 3.1; and did not offer drag-and-drop file deleting until Windows 95! Macintosh did not offer drag-and drop printing until a latter date with System 7.5!) While the PCs being sold today have multi-megabytes of disk space and RAM, GEOS ran in 64K of RAM from a single 170K floppy disk drive! ------------------------------------------------ The above is quouted from the following sites, you can check out some screenshots there: http://www.pernet.net/~james1/cbm_geos/intro.htm http://www.zimmers.net/geos/
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, Oct 1995
See
Here's a link about the PARC - Apple relationship. Like all David Every's stuff, it's worth taking with a grain of salt but is informative and offers a new perspective.
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.
What I'm listening to now on Pandora...
http://www.cs.bell-labs.com/cm/cs/who/rob/ He is credited with the first bitmapped display for a Unix system. Not really a GUI (really just a bunch of bitmapped TTY's) but the infrastructure was available to develop one.
Well, the Amiga 1000 surely had a graphical interface, and way back in 85. AmigaOS "graphics.library" and other UI layers on top were pretty excellent, and almost a breeze to code with. That I felt when I first coded in xlib and xtoolkit. I was thinking how easy it was to get good looking and functional interfaces on the Amiga. Any X program would look brain dead to me. That is especially true if you're using emacs or axe as your editor :) Then, I remember the slickest editor was Cygnus Ed on the Amiga. I used assembler "IDE"s, but there were a lot of apps that rocked. Some of the best computer graphics were drawn with DPaint for sure. That was so great then! None of the Photoshop/GIMP belly aches. And I think DevPac was great. Hmm, hey who can forget DOpus? Those x86 users had the poor norton commander. That used to feel good. When they saw an Amiga desktop, they would go *gasp*. And those great DTP programs. I'm afraid there's just too many to tell...
:\
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?
--exa--
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."
I have a Smith & Wesson, which is the original point and click interface. The results are also quite graphical when the system is loaded.
When the Alto (the first personal computer) was invented at Xerox PARC (around 1974, I think) they tested lots of "pointing" devices with users. The programmers were favoring a "chord" device which had five electric organ keys, so that you could "chord" any of 31 different combinations. Imagine trying to convince users to memorize those!
The winners in the ease-of-use-with-real-users competition were the mouse and the trackball, with the mouse just slightly favored. You see the results of those tests today, where scratch-and-sniff pads, which work like flat trackballs, are common on laptops.
Those same programmers took over the Lisp Machine world in the eighties, which is why the Symbolics Lips machine had Shift-, Ctrl-, Meta- and Hyper- keys. I recall that at MIT Meta-Hyper-E (some combination involving E, anyway) would call the very slow elevator up to the AI Lab floor. Considerably more useful than a Web client in your refrigerator, IMO.
... an idea, the fugitive fermentation of an individual brain ... -- T. Jefferson
Actually, if you want a good text-based windowing system, use screen.
It sets up several different virtual "VT100s" that are easily switched between with a key combination (^A+X, where X is a letter cooresponding to a certain command you wish to use. C is spawn new window, N is switch between, K is kill window, D is detach from VT) and also lets you detach from it and logout, leaving whatever you had running easily accessible.
That right there is a nice feature because you don't have to drop everything into background mode. You could leave a tail -f /var/log/messages open in one window, and have apache pumping status info into another one, and have three or four epic's running in their own windows, even from a telnet or ssh connection.
And it will run under X, even though most people wouldn't do that. :)
Sgi started with a GL (the thing that came before OpenGL for those of you too young to remember) based windowing environment called Mex. I don't have any idea what it stood for, but it was in existence around 1987 on their 3130 series of workstations. About that time Sun had their Postscript based NeWS (NEtwok Windowing System) out and Sgi later switched to this model. I can't remember the exact date, but I think they switched around 1988. NeWS was starting to see some acceptance in the minsupercpmputer market as Alliant Computer Systems used it in a distributed model to talk to sun workstations and later as the basis for their Raster technolgies based graphics subsytem. Competing windows systems from Apollo, Intergraph, and DEC (as seen on the microVax workstations) also existed, but remained proprietary and not network transparent as X and NeWS were. Sgi's NeWS server also incorporated an X11 interpretter which allowed it to accept X11 connections, although the performance was less than stellar. Around 1991, Sgi switched entirely to X11 and added dgl (distributed GL) to the mix allowing GL to run over the network in a similar way that X11 did. The dates are best guesses for memory, so I may be off a bit.
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
As usual, there is a middle ground, a place where GUI-decadents and CLI-saurians meet. Many, many people run (many) shell "terminal" windows at once. There is a place and time and application for both worlds. Just like the best music (IMHO) is made from combining the electronic and the acoustic, the best working environment for me has the best of both GUI and CLI. So let's cut out the old X/Y warz (Gods, I'm so tired of those) and do some *on*-topic things.
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
Maybe they can still redeem themselves for one of the biggest sins in computer science history. The code is dated but it still exists. Perhaps they can release it for free today?
I just sent Email to James Gosling about this, actually. I don't know if he'll respond, or what he'll think of the idea, but if he wants to see it released, I'm betting he has enough influence within Sun to make it happen. I would love to see the original NeWS code (not just the X11/NeWS merged server) released under a true Open Source license (not SCSL!); NeWS was a really nice system, and I think it still has a place in today's world, but not as a proprietary product.
Back in 1987 when I used NeWS as my primary windowing system (on a diskless Sun 3/50 running SunOS 3.x), I could see how much of a lead X11R3 was already taking over NeWS, despite the obvious superiority of NeWS. It was obvious to me at the time that Sun could beat X11 in the marketplace if they would just release the source. Sadly, Sun continued to live in a world of wishful thinking, believing that they could beat open standards with closed standards entirely under their exclusive control, even when it became obvious that this was a failing strategy. Sun still lives in that dream world today, as evidenced by their SCSL license. Sun doesn't seem to learn well from experience.
But, as you say, Sun could finally redeem themselves for the NeWS fiasco by finally releasing that code, dated though it may be. NeWS will never succeed as a proprietary product; that has been blatently obvious for over a decade. It could succeed as an Open Source project, if Sun can stand to relinquish control for once. They don't have much to lose; NeWS is already a dead product, and represents no value at all for them in its current proprietary state...
Maybe we need a petition to free NeWS at last?
Deven
"Simple things should be simple, and complex things should be possible." - Alan Kay
Where Java improves over NeWS is that the language part of it is actually pretty usable and mainstream, that its multithreading works a lot better, and that it manages to isolate code from each other much better. Java also, so far, has been delivered to run on top of existing window systems, but Java can run standalone.
You can already use Java as a display server for Java itself using RMI (IBM has put together a package; see alphaworks.ibm.com). And, of course, it's used as a GUI server for many web applications.
What is really missing is a set of C/C++/OC widgets that work analogously to the NeWS or NeXTStep widgets. I sense a good open source project here :-)
See the history articles at http://www.enteract.com/~enf/afc/tty
(scroll down, the X articles are toward the bottom)