Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

NeWS ( сетевая расширяемая оконная система ) - это прекращенная оконная система, разработанная Sun Microsystems в середине 1980-х годов. [1] Первоначально известный как «SunDew», [2] его основными авторами были Джеймс Гослинг и Дэвид С.Х. Розенталь . Интерпретатор NeWS был основан на PostScript (как и более поздний Display PostScript, хотя в остальном эти два проекта не были связаны), расширяя его, чтобы разрешить взаимодействие и несколько «контекстов» для поддержки окон. Подобно PostScript, NeWS можно было использовать как законченный язык программирования, но в отличие от PostScript, NeWS можно было использовать для создания полных интерактивных программ с поддержкой мыши и графическим интерфейсом пользователя .

Дизайн [ править ]

NeWS начал с реализации интерпретатора PostScript, работающего в режиме совместной многозадачности , поскольку, в отличие от PostScript в принтере, NeWS будет отображать несколько программ PostScript одновременно на одном экране. Он также добавил полную иерархию представлений, основанную на видовых экранах, известных как холсты , и систему синхронного распределения событий, поддерживающую события , интересы , потоки и мониторы .

Как и система представлений в большинстве графических интерфейсов пользователя, NeWS включал концепцию дерева встроенных представлений, по которым проходили события. Например, щелчок мышью вызовет событие, которое будет передано объекту непосредственно под указателем мыши, например, кнопке. Если этот объект не ответил на событие, объект «под» кнопкой получит сообщение и так далее. NeWS включает полную модель для этих событий, включая таймеры и другие автоматические события, очереди ввода для таких устройств, как мыши и клавиатуры , и другие функции, необходимые для полноценного взаимодействия. Система обработки ввода была разработана для обеспечения надежных гарантий синхронизации событий, которые были невозможны с асинхронными протоколами, такими как X. [3]

Для поддержки виджетов пользовательского интерфейса NeWS расширил исходный стековый язык PostScript до полного объектно-ориентированного (OO) стиля программирования с наследованием . Это устранило необходимость во внешнем объектно-ориентированном языке для создания полного приложения. Поскольку все эти дополнения были реализованы как расширения PostScript, можно было написать простой код PostScript, который приводил бы к работающей интерактивной программе на экране. Двумя популярными демонстрационными программами были экранные часы, для которых требовалось около двух страниц кода, и программа, которая рисует пару глаз, которые следят за курсором, когда он перемещается по экрану. Программа "Глазное яблоко" была показана на SIGGRAPHв 1988 году и послужил источником вдохновения для более позднего известного приложения X xeyes .

NeWS включал в себя несколько библиотек элементов пользовательского интерфейса ( виджетов ), написанных на NeWS. Эти виджеты выполняли все свое поведение в интерпретаторе NeWS и требовали связи с внешней программой (или другим кодом NeWS) только тогда, когда виджет требовал этого. Например, процедура отображения кнопки-переключателя может запрашивать состояние кнопки (нажата или нет) и соответственно изменять ее отображение. Код PostScript кнопки также может реагировать на щелчки мыши, изменяя свое состояние с «нажата» на «не нажата» и наоборот. Все это может происходить на сервере окон без взаимодействия с клиентской программой, и только когда мышь отпущена на кнопку, событие будет отправлено для обработки. Это было сложнее, чем система X Window.модель сервера, которая может сообщать только о событиях «здесь была нажата кнопка мыши», «мышь здесь», «здесь была отпущена кнопка мыши», который затем должен выяснить, находится ли событие в кнопке, переключатель состояние и, наконец, дать серверу команду отобразить новое состояние. Если клиент и сервер не находятся на одном компьютере, эти взаимодействия должны проходить по сети, что приводит к задержке ответа .

NeWS был архитектурно похож на то, что сейчас называется AJAX , за исключением того, что NeWS последовательно:

  • для программирования использовал код PostScript вместо JavaScript .
  • использовала графику PostScript вместо DHTML и CSS для рендеринга.
  • использовал данные PostScript вместо XML и JSON для представления данных.
Приложения на базе TNT

Лучшим примером такой библиотеки является TNT ( The NeWS Toolkit ), выпущенная Sun в 1989 году. Sun также поставляла более ранний набор инструментов Lite, предназначенный, например, для целей и создания небольших программ.

Лицензирование [ править ]

Хотя широкое распространение никогда не применялось, несколько компаний лицензировали NeWS и адаптировали ее для различных целей.

  • SGI использовала его версию под названием 4Sight, чтобы заменить свою проприетарную оконную систему MEX .
  • Grasshopper Group создала порт для Macintosh под названием MacNeWS.
  • Architech Corporation перенесла NeWS на OS / 2 [4]

Приложения [ править ]

Версия OPEN LOOK программы настольных издательских систем FrameMaker , разработанная Frame Technology Corp. при финансировании в основном Sun Microsystems и NSA , была одним из немногих коммерческих продуктов, работающих на NeWS. HyperLook, разработанный Артуром ван Хоффом из Института Тьюринга , представлял собой интерактивную систему разработки приложений. [5] Дон Хопкинс разработал NeWS-версию SimCity , созданную с помощью HyperLook.

Для NeWS была создана коммерческая программа рисования Altsys Virtuoso; это был порт FreeHand с дополнительными функциями, в которых использовалась среда PostScript. К сожалению, Sun объявила о прекращении поддержки NeWS сразу после того, как Virtuoso была готова к выпуску.

Конкуренция с X Window System [ править ]

По сравнению с X , NeWS был намного мощнее, но и медленнее (особенно для локальных подключений). C API был очень низким уровнем и сложен в использовании, поэтому большинство программ NeWS, как правило, полностью написано на PostScript. [ необходима цитата ] Еще одним фактором популярности было то, что Sun взимала плату за лицензирование исходного кода NeWS, в то время как код MIT X11 был бесплатным.

Первые версии NeWS эмулировали протокол X10, переводя вызовы в NeWS PostScript. Проблемы со скоростью плюс наличие программ, которые полагались на точные пиксельные результаты вызовов X10, и устаревание X10 вынудили Sun выпустить гибрид X11 / NeWS под названием Xnews, который запускал сервер X11 параллельно с интерпретатором PostScript. Это серьезно ухудшило производительность интерпретатора NeWS и также не считалось очень хорошим сервером X11. Sun также реализовала спецификацию пользовательского интерфейса OPEN LOOK в нескольких наборах инструментов: NeWS Toolkit (TNT) - это набор инструментов OPEN LOOK, написанный на PostScript и работавший на сервере NeWS. OLIT был построен на той же базе Xt (X Intrinsics), что и Motif , и XView.использовали те же API-интерфейсы, что и в более ранней оконной системе SunView от Sun.

После того, как стало ясно, что OPEN LOOK проиграл Motif в популярности, и после того, как Adobe приобрела FrameMaker , Sun прекратила поддержку NeWS, и продукты на NeWS просто исчезли.

Ссылки [ править ]

  1. ^ Дон Хопкинс . «NeWS - Сетевая расширяемая оконная система» . Проверено 8 января 2008 .
  2. ^ Гослинг, Джеймс (1986). «Статья 5 - SunDew» . В FRA Hopgood, DA Duce ... (ред.). Методология управления окна (Eurographics семинары) Материалы с Alvey семинара в Доме Cosener в, Abingdon, Великобритания, апрель 1985 года . Великобритания: Springer-Verlag . ISBN 3-540-16116-3. Проверено 8 января 2008 .
  3. ^ «SunDew - Распределенная и расширяемая оконная система» .
  4. ^ Джеймс Гослинг, Дэвид С.Х. Розенталь, Мишель Дж. Арден (1989). Книга NeWS . Springer Verlag. п. 193. ISBN 978-0-387-96915-2 . Поиск книг Google. Проверено 29 марта 2009. 
  5. ^ HyperLook (он же HyperNeWS (он же GoodNeWS))

Внешние ссылки [ править ]

  • краткое описание NeWS
  • Программа глазного яблока NeWS
  • NeWS: сетевая и расширяемая оконная система, лекция Джеймса Гослинга