NeWS
Encyclopedia
NeWS was a windowing system
Windowing system
A windowing system is a component of a graphical user interface , and more specifically of a desktop environment, which supports the implementation of window managers, and provides basic support for graphics hardware, pointing devices such as mice, and keyboards...

 developed by Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 in the mid 1980s. Originally known as "SunDew", its primary authors were James Gosling
James Gosling
James A. Gosling, OC is a computer scientist, best known as the father of the Java programming language.-Education and career:In 1977, Gosling received a B.Sc in Computer Science from the University of Calgary...

 and David S. H. Rosenthal
David S. H. Rosenthal
- Biography :Rosenthal received an MA degree from Trinity College, Cambridge, England, and a PhD from Imperial College, London.In the 1980s he worked on the Andrew Project at Carnegie Mellon University with James Gosling....

. The NeWS interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

 was based on PostScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

 (as was the later Display PostScript
Display PostScript
Display PostScript is an on-screen display system. As the name implies, DPS uses the PostScript imaging model and language to generate on-screen graphics...

, 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
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

.

Description

NeWS started by implementing a PostScript interpreter that runs 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
Event (computing)
In computing an event is an action that is usually initiated outside the scope of a program and that is handled by a piece of code inside the program. Typically events are handled synchronous with the program flow, that is, the program has one or more dedicated places where events are handled...

, interests
Callback (computer science)
In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine defined in a higher-level layer....

, threads
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

and monitors
Monitor (synchronization)
In concurrent programming, a monitor is an object or module intended to be used safely by more than one thread. The defining characteristic of a monitor is that its methods are executed with mutual exclusion. That is, at each point in time, at most one thread may be executing any of its methods...

.

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 keyboard
Computer keyboard
In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

s, 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. http://www.chilton-computing.org.uk/inf/literature/books/wm/p005.htm

To support user interface widgets, NeWS expanded the original PostScript stack-based language into a complete object oriented (OO) programming style with inheritance
Inheritance (computer science)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...

. 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
Xeyes
xeyes is a graphical computer program showing two googly eyes which follow the cursor movements on the screen as if they were watching it. According to the X Window System manual page, it was initially written by Jeremy Huxtable for the NeWS system and presented at the SIGGRAPH conference in 1988....

.

NeWS included several libraries of user interface elements (widgets), themselves written in NeWS. These widgets ran all of their behaviour 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
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 server model, which can only report "mouse was pushed down here", "mouse is now here", "mouse 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
Round-trip delay time
In telecommunications, the round-trip delay time or round-trip time is the length of time it takes for a signal to be sent plus the length of time it takes for an acknowledgment of that signal to be received...

.
The best example of such a library is TNT (The NeWS Toolkit) which was released by Sun in 1989. Sun also shipped a smaller toolkit intended for example purposes and making small programs.

Licensing

Although adoption was never widespread, several companies licensed NeWS and adapted it for various uses.
  • SGI
    Silicon Graphics
    Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark...

     used a version of it named 4Sight
    4Sight
    4Sight is the name of a desktop computer telephony software product made by 4Com. 4Sight is the name of the client software product. The associated server product is called 4Sight Server. The main purpose of the software is to provide integration between business telephone systems and CRM software...

     to replace their proprietary MEX
    MEX (computing)
    MEX was "Silicon Graphics' original high-performance windowing system", used on 68k-based IRIS systems and early IRIS 4D systems. MEX was originally loaded over a network through the utilization of GL1 routines kept on a remote host machine, usually a VAX. When the IRIS 1400 workstation and GL2-W ...

     windowing system.
  • Grasshopper Group created a Macintosh port called MacNeWS
  • Architech Corporation ported NeWS to OS/2
    OS/2
    OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...


Applications

The OPEN LOOK
OPEN LOOK
OPEN LOOK is a graphical user interface specification for UNIX workstations. It was originally defined in the late 1980s by Sun Microsystems and AT&T.-History:...

 version of the FrameMaker
FrameMaker
Adobe FrameMaker is a document processor for the production and manipulation of large structured documents. It is produced by Adobe Systems. Although FrameMaker has evolved slowly in recent years, it maintains a strong following among professional technical writers.- Overview :FrameMaker has more...

 desktop publishing program, developed by Frame Technology Corp. with funding mainly from Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 and NSA, was one of the few commercial products that ran on NeWS. HyperLook, developed by Arthur van Hoff, was an interactive application design system. Don Hopkins
Don Hopkins
Don Hopkins is an artist and programmer specializing in human computer interaction and computer graphics.He inspired Richard Stallman, who described him as a "very imaginative fellow", to use the term copyleft. He coined Deep Crack as the name of the EFF DES cracker, and built "AJAXian"...

 developed a NeWS version of SimCity
SimCity
SimCity is a critically acclaimed city-building simulation video game, first released in 1989, and designed by Will Wright. SimCity was Maxis' first product, which has since been ported into various personal computers and game consoles, and spawned several sequels including SimCity 2000 in 1994,...

 that was built with HyperLook.

Competition with X Window System

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
OLIT
OLIT is a widget toolkit from Sun Microsystems introduced in 1988, providing an OPEN LOOK user interface for X Window System applications...

 was built on the same Xt
Intrinsics
X Toolkit Intrinsics is a library used in the X Window System. More precisely, it is a library that uses the low-level Xlib library and provides a friendly API to develop X11 software with graphical widgets...

 (X Intrinsics) base as Motif
Motif (widget toolkit)
In computing, Motif refers to both a graphical user interface specification and the widget toolkit for building applications that follow that specification under the X Window System on Unix and other POSIX-compliant systems. It emerged in the 1980s as Unix workstations were on the rise, as a...

, and XView
XView
XView is a widget toolkit from Sun Microsystems introduced in 1988. It provides an OPEN LOOK user interface for X Window System applications, with an object-oriented application programming interface for the C programming language...

 used the same APIs as Sun's earlier SunView
SunView
SunView was a windowing system from Sun Microsystems developed in the early 1980s. It was included as part of SunOS, Sun's UNIX implementation; unlike later UNIX windowing systems, much of it was implemented in the system kernel...

 window system.

After it was clear that OPEN LOOK had lost out to Motif in popularity, and after Adobe
Adobe Systems
Adobe Systems Incorporated is an American computer software company founded in 1982 and headquartered in San Jose, California, United States...

 acquired FrameMaker, Sun stopped supporting NeWS, and products on NeWS simply vanished. Most Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 workstations (including Sun's own) now run the X Window System.

Reasons for failure of NeWS

In many ways NeWS had an excellent design for thin-networked clients
  • moving much of the processing to the display
  • allowing clients to reduce network traffic by defining new operators
  • separating graphical user interface semantics from client program semantics.
  • the PostScript drawing model, which is far easier to use and more powerful than other graphical APIs, even compared to ones being used 20 years later.


NeWS was architecturally similar to what is now called AJAX
Ajax
- Mythology :* Ajax , son of Telamon, ruler of Salamis and a hero in the Trojan War, also known as "Ajax the Great"* Ajax the Lesser, son of Oileus, ruler of Locris and the leader of the Locrian contingent during the Trojan War.- People :...

, except that NeWS:
  • used PostScript code instead of JavaScript for programming.
  • used PostScript graphics instead of DHTML/CSS for rendering.
  • used PostScript data instead of XML/JSON for data representation.


Many expected it to be a huge success. Possible reasons for its failure in the market include:
  • NeWS needed to be licensed from Sun, while the source code for the X Window System was freely distributed under the MIT License
    MIT License
    The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

    . Any commercial code shipped using the NeWS libraries required licensing fees to be paid to Sun, Adobe Systems
    Adobe Systems
    Adobe Systems Incorporated is an American computer software company founded in 1982 and headquartered in San Jose, California, United States...

    , and Xerox PARC
    Xerox PARC
    PARC , formerly Xerox PARC, is a research and co-development company in Palo Alto, California, with a distinguished reputation for its contributions to information technology and hardware systems....

    .
  • NeWS lacked a robust library of reusable code until well after the X Window System had become the dominant paradigm. This mistake was obviously not repeated in Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    . Making matters worse, the variety of widget sets offered by Sun was confusing to developers.
  • PostScript is an atypical language to write math expressions in, due to its postfix and stack nature. That was not a detriment to printing, but math is needed extensively for user interface routines such as the calculation of how far down a slider a mouse was clicked. Several compilers from C-like syntax were available, such as pdb (PostScript Done Better) and c2ps, but were cumbersome to use and not supported by Sun.
  • Writing NeWS applications required coding the client- and server-side parts of the application in two very different programming languages and communicated asynchronously. Coordinating the communication between the two sides was difficult and Sun provided little support for it.
  • The implementation of the NeWS window server never achieved the level of robustness of competing window systems. The situation was made worse with the NeWS/X11 merge, and was compounded by the timing of its release as part of the first Solaris 2 release, which itself had performance issues.
  • Management was confused as to what market NeWS applied to and how to best leverage its strengths when comparing to X11
  • Adobe refused to port their popular PhotoShop and Illustrator graphics editing applications to SunOS or Solaris until Sun moved from NeWS to Display PostScript.


It is interesting to contrast NeWS with Display PostScript
Display PostScript
Display PostScript is an on-screen display system. As the name implies, DPS uses the PostScript imaging model and language to generate on-screen graphics...

 (DPS), which used the same underlying imaging model and language, but did so in a very different way. In DPS the PostScript commands were limited to what was needed to draw things; all other operations (such as creating a window to draw into) had to be implemented using other system interfaces. In comparison with NeWS, DPS lacked interesting features such as the ability to use a PostScript path to describe the shape of a window, which also meant DPS required use of the low-level Xlib
Xlib
Xlib is an X Window System protocol client library written in the C programming language. It contains functions for interacting with an X server. These functions allow programmers to write programs without knowing the details of the protocol...

library and very unwieldy glue code to make sure both DPS and X were agreeing about what to do. However, it also meant that the majority of the system and application code was compiled rather than interpreted, making it many times faster and considerably easier to write and debug. The result was a much smaller engine that like NeWS offered a PostScript-based display, but had higher performance and a somewhat more "natural" programming environment.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK