NeWS

NeWS（"Network extensible Window System"）は、1980年代中ごろにサン・マイクロシステムズが開発したウィンドウシステム。古くは "SunDew" と呼ばれ、後にJavaを設計したジェームズ・ゴスリンが主任アーキテクトとして設計に当たった。NeWS インタプリタは PostScript に基づいている（後の Display PostScript に似ているが、2つのプロジェクトに関係はない）。
NeWS はプリンタとは違って、複数の PostScript プログラムによって生成されたウィンドウ群を同時に画面に表示するため、PostScript インタプリタをマルチタスク化するところから出発した。また、"canvases" と呼ばれる表示域に基づいた完全な表示階層システムを追加した。多くのGUIのビューシステムと同様、表示の木構造の概念があり、それにしたがってイベントが渡される。NeWS には、タイマや他の自動イベント、マウスとキーボードなどのデバイスの入力キュー、その他の対話処理に必要な機能など、完全なイベントのモデルが構築されている。
特に興味深いのは、継承を伴う完全なオブジェクト指向プログラミングスタイルが追加されていた点である。このため、アプリケーション構築に外部のオブジェクト指向言語を必要としなかった。
これらの追加機能は全て PostScript への拡張として実装されたため、単純な PostScript のコードを書くだけで、ウィンドウを表示するインタラクティブなプログラムとして動作させることができた。よく知られたデモとして、約2ページのコードでできた時計のアプリケーションと、視線でカーソルを追いかける一対の目玉を描くプログラムがあった。目玉のプログラムは1988年のSIGGRAPHで展示され、後に登場した有名な X Window System のアプリケーション xeyes に影響を与えた。
NeWS にはユーザインタフェースの要素（ウィジェット）のライブラリがいくつか含まれており、それら自身も NeWS で書かれていた。これらのウィジェットは NeWS インタプリタによって実行され、ウィジェットが要求したときだけ外部プログラム（または他のNeWSコード）と通信が必要になるだけである。例えば、トグルボタンの表示ルーチンはボタンが押されているかどうかの状態を問い合わせることができ、それに従って表示を変化させる。ボタンの PostScript コードは、マウスのクリックに反応することもできる。これらは全てウィンドウサーバ内でクライアントプログラムとやり取りせずに行われ、ボタンの上でマウスがリリースされたときだけ制御のためのイベントが送られる。
これは、X Window System のサーバモデルよりも洗練されている。X の場合、「マウスのボタンがここで押下された」、「マウスの現在位置はここ」、「マウスのボタンがここでリリースされた」といったイベントがクライアントに送られ、クライアント側でそれがボタンに関わるイベントかどうかを判断し、状態を変更し、新たな状態の描画をサーバに要求する。クライアントとサーバが同じマシンにない場合、これらのやり取りがネットワーク上を行き来し、性能が低下する。
そのようなライブラリの好例として TNT ("The NeWS Toolkit") が1989年、サンによってリリースされた。サンは例として示すためにもっと小さいツールキットもリリースした。
NeWS は広く採用されることはなかったが、いくつかの企業がライセンスを受け、様々な用途に利用した。SGIはこれを 4Sight と名づけ、従来使っていた独自の IRIS GL というウィンドウシステムの後継とした。NeWS 上で動作する数少ない商用製品としては、Frame Technology Corp. が開発したDTPソフトである FrameMaker の OPEN LOOK 版がある。その開発にはサン・マイクロシステムズとNSAが資金提供していた。また、 Arthur van Hoff の開発した HyperLook は対話型アプリケーション設計システムであった。
自由に利用可能な X11 が既に一般化しつつあったため、NeWS の最初のバージョンでは呼び出しを NeWS PostScript に変換することで X11 をエミュレートしていた。性能に問題があり、X11 の正確なピクセル結果に依存しているプログラムがあったことから、サンはXサーバとインタプリタを並行動作させるハイブリッド型の Xnews をリリースした。無理な統合をしたため、NeWS インタプリタの性能は大幅に低下し、Xサーバもよい実装とは言えなかった。サンはまた OPEN LOOK のルック・アンド・フィールを実装した2種類のツールキットを開発している。1つは OLIT であり、Motif と同様に Xt (X Intrinsics) を使っている。もう1つは XView で、サンの以前のウィンドウシステム SunView と同じAPIを実装していた。
OPEN LOOK が Motif に敗北したことが明らかになり、アドビシステムズが FrameMaker を取得すると、NeWS 上のアプリケーション製品は皆無となった。現在では多くのUNIXシステムが（サンの製品も含め） X Window System を使っている。
失敗の原因.
NeWS の設計は色々な意味でシンクライアント向きであり、ディスプレイ側に多くの処理を移動でき、クライアントプログラムの意味論からGUIの意味論を分離できる。PostScript の描画モデルを採用していたため、他のグラフィックスAPIよりもはるかに使い易くて強力である。従って、誰もが成功を信じて疑わなかった。
NeWS が市場に受け入れられなかった理由としては、以下のようなことが挙げられる。
NeWS と Display PostScript (DPS) を比較すると、どちらも同じイメージングモデルと言語を基にしていながら、その手法は大きく異なる。DPSでは PostScript のコマンドは描画でのみ使用され、他の操作（ウィンドウ生成など）は別にシステムインタフェースとして実装されていた。DPS には NeWS のような面白い機能（例えば、PostScript コードでウィンドウの形状を描くなど）はなく、低レベルな Xlib ライブラリを必要とし、DPS と X の調整のための扱いにくいグルーコードを必要としていた。しかし、そのためにDPSのコードの大部分はインタプリタで解釈実行されるのではなくコンパイルして実行されるので、作成とデバッグが容易で高速に動作した。結果として NeWS のように PostScript に基づいた表示であってもエンジン部分はかなり小さくなり、高速化され、「自然」なプログラミング環境になっていた。