|Original author(s)||James Gosling, David S. H. Rosenthal|
|Initial release||October 1986|
NeWS (Network extensible Window System) is a discontinued windowing system developed by Sun Microsystems in the mid-1980s. Originally known as "SunDew", its primary authors were James Gosling and David S. H. Rosenthal. The NeWS interpreter was based on PostScript (as was the later Display PostScript, although the two projects were otherwise unrelated) extending it to allow interaction and multiple "contexts" to support windows. Like PostScript, NeWS could be used as a complete programming language, but unlike PostScript, NeWS could be used to make complete interactive programs with mouse support and a GUI.
NeWS started by implementing a PostScript interpreter running in a cooperative multitasking fashion, since, unlike PostScript in a printer, NeWS would be displaying a number of PostScript programs at the same time on one screen. It also added a complete view hierarchy, based on viewports known as canvases, and a synchronous event distribution system, supporting events, interests, threads and monitors.
Like the view system in most GUIs, NeWS included the concept of a tree of embedded views along which events were passed. For instance, a mouse click would generate an event that would be passed to the object directly under the mouse pointer, say a button. If this object did not respond to the event, the object "under" the button would then receive the message, and so on. NeWS included a complete model for these events, including timers and other automatic events, input queues for devices such as mice and keyboards, and other functionality required for full interaction. The input handling system was designed to provide strong event synchronization guarantees that were not possible with asynchronous protocols like X.
To support user interface widgets, NeWS expanded the original PostScript stack-based language into a complete object oriented (OO) programming style with inheritance. This eliminated the need for an external OO language to build a complete application. Since all of these additions were implemented as extensions to PostScript, it was possible to write simple PostScript code that would result in a running, onscreen, interactive program. Two popular demonstration programs were an onscreen clock, which required about two pages of code, and a program which drew a pair of eyes that followed the cursor as it moved around the screen. The eyeball program was shown at SIGGRAPH in 1988 and was the inspiration for the later well-known X application xeyes.
NeWS included several libraries of user interface elements (widgets), themselves written in NeWS. These widgets ran all of their behavior in the NeWS interpreter, and only required communications to an outside program (or more NeWS code) when the widget demanded it. For example, a toggle button's display routine can query the button's state (pressed or not) and change its display accordingly. The button's PostScript code can also react to mouse clicks by changing its state from "pressed" to "not pressed" and vice versa. All this can happen in the windowing server without interaction with the client program, and only when the mouse is released on the button will an event be sent off for handling. This was more sophisticated than the X Window System server model, which can only report "mouse button was clicked down here", "mouse is now here", "mouse button was released here" events to a client, which then has to figure out if the event is in the button, switch the state, and finally instruct the server to display the new state. If client and server are not on the same machine, these interactions must travel over the network, which results in a delay in responding.
NeWS was architecturally similar to what is now called AJAX,[original research?] except that NeWS coherently:
- used PostScript graphics instead of DHTML and CSS for rendering.
- used PostScript data instead of XML and JSON for data representation.
The best example of such a library is TNT (The NeWS Toolkit) which Sun released in 1989. Sun also shipped an earlier "Lite" toolkit intended for example purposes and making small programs.
Although adoption was never widespread, several companies and universities licensed NeWS and adapted it for various uses, creating both commercial and non-commercial ports.
- SGI used a version of it named 4Sight to replace their proprietary MEX windowing system.
- Grasshopper Group created a Macintosh port called MacNeWS.
- Parallax extended it to be able to deal with live video.
- Architech Corporation ported NeWS to OS/2, calling it NeWS/2
- Columbia University ported it on HP 9000 series 3000
- Los Alamos National Laboratory ported it on a Cray XMP-24
- TGV ported X11/NeWS on a VAXstation 2000 running VMS
- Wedge Computer Inc. ported it to MacOS
- Whitechapel ported it to their MIPS workstations
- Acorn ported it to their computers
- Ameristar ported it on the Amiga 2000
- Alliant ported X11/NeWS on their Visualization minisupercomputers
- University of Michigan ported it on Apollo workstations, in monochrome mode
- Pixar ported it to their Image Computer
The OPEN LOOK version of the FrameMaker desktop publishing program, developed by Frame Technology Corp. with funding mainly from Sun Microsystems and NSA, was one of the few commercial products that ran on NeWS. HyperLook, developed by Arthur van Hoff at The Turing Institute, was an interactive application design system. Don Hopkins developed a NeWS version of SimCity that was built with HyperLook.
A commercial drawing program, Altsys Virtuoso, was produced for NeWS; it was a port of FreeHand with additional functionality that took advantage of the PostScript environment. Unfortunately Sun announced the end of support for NeWS just as Virtuoso became ready to ship.
Competition with X Window System
Compared to X, NeWS was vastly more powerful, but also slower (especially for local connections). The C API was very low level and difficult to use, so most NeWS programs tended to be entirely written in PostScript. Another factor in the popularity was that Sun charged a fee to license the NeWS source code, while the MIT X11 code was free of cost.
The first versions of NeWS emulated the X10 protocol by translating the calls into NeWS PostScript. Speed problems plus the existence of programs that relied on the exact pixel results of X10 calls, and the obsolescence of X10, forced Sun to release an X11/NeWS hybrid called Xnews which ran an X11 server in parallel with the PostScript interpreter. This seriously degraded the NeWS interpreter performance and was not considered a very good X11 server either. Sun also implemented the OPEN LOOK user interface specification in several toolkits: The NeWS Toolkit (TNT) was an OPEN LOOK toolkit written in PostScript that ran in the NeWS server. OLIT was built on the same Xt (X Intrinsics) base as Motif, and XView used the same APIs as Sun's earlier SunView window system.
After it was clear that OPEN LOOK had lost out to Motif in popularity, and after Adobe acquired FrameMaker, Sun stopped supporting NeWS, and products on NeWS simply vanished.
- ^ Don Hopkins. "NeWS - Network extensible Window System". Retrieved 2008-01-08.
- ^ Gosling, James (1986). "Article 5 - SunDew". In F.R.A. Hopgood, D.A. Duce ... (ed.). Methodology of Window Management (Eurographics Seminars) Proceedings of an Alvey Workshop at Cosener's House, Abingdon, UK, April 1985. UK: Springer-Verlag. ISBN 3-540-16116-3. Retrieved 2008-01-08.
- ^ "SunDew - A Distributed and Extensible Window System".
- ^ "Ports of Sun's NeWS". groups.google.com. Retrieved 2022-07-01.
- ^ James Gosling, David S. H. Rosenthal, Michelle J. Arden (1989). The NeWS Book. Springer Verlag. p. 193. ISBN 978-0-387-96915-2. Google Book Search. Retrieved 2009-03-29.
- ^ magazine :: Datamation :: Datamation V33 N17 19870901. 1987-09-01.
- ^ Alliant - The Visualization Series, retrieved 2022-07-01
- ^ "NeWS on the Apollo". groups.google.com. Retrieved 2022-07-01.
- ^ "From Pixar To Velocity Engine". 2001-07-06. Archived from the original on 2001-07-06. Retrieved 2022-07-02.
- ^ HyperLook (aka HyperNeWS (aka GoodNeWS))