Notizia - NeWS

Notizia
Browser HyperTIES e strumento di creazione Emacs con menu a torta su NeWS
Browser HyperTIES e strumento di creazione Emacs con menu a torta su NeWS
Autori originali James Gosling , David SH Rosenthal
Sviluppatore / i Sun Microsystems
Versione iniziale Ottobre 1986 ; 34 anni fa  ( 1986-10 )
Sistema operativo SunOS
genere Sistema di finestre

NeWS ( Network extensible Window System ) è un sistema di finestre fuori produzione sviluppato da Sun Microsystems a metà degli anni '80. Originariamente noto come "SunDew", i suoi autori principali furono James Gosling e David SH Rosenthal . L' interprete NeWS era basato su PostScript (come il successivo Display PostScript , sebbene i due progetti non fossero altrimenti correlati) estendendolo per consentire l'interazione e più "contesti" per supportare le finestre. Come PostScript, NeWS potrebbe essere utilizzato come un linguaggio di programmazione completo, ma a differenza di PostScript, NeWS potrebbe essere utilizzato per creare programmi interattivi completi con supporto del mouse e una GUI .

Design

NeWS ha iniziato implementando un interprete PostScript in esecuzione in modo cooperativo e multitasking , poiché, a differenza di PostScript in una stampante, NeWS avrebbe visualizzato più programmi PostScript contemporaneamente su uno schermo. Ha anche aggiunto una gerarchia di visualizzazione completa, basata su viewport note come tele , e un sistema di distribuzione di eventi sincrono, che supporta eventi , interessi , thread e monitor .

Come il sistema di visualizzazione nella maggior parte delle GUI, NeWS includeva il concetto di un albero di viste incorporate lungo le quali venivano passati gli eventi. Ad esempio, un clic del mouse genererebbe un evento che verrebbe passato all'oggetto direttamente sotto il puntatore del mouse, ad esempio un pulsante. Se questo oggetto non ha risposto all'evento, l'oggetto "sotto" il pulsante riceverà il messaggio e così via. NeWS includeva un modello completo per questi eventi, inclusi timer e altri eventi automatici, code di input per dispositivi come mouse e tastiere e altre funzionalità richieste per un'interazione completa. Il sistema di gestione degli input è stato progettato per fornire forti garanzie di sincronizzazione degli eventi che non erano possibili con protocolli asincroni come X.

Per supportare i widget dell'interfaccia utente, NeWS ha espanso il linguaggio originale basato su stack PostScript in uno stile di programmazione completo orientato agli oggetti (OO) con ereditarietà . Ciò ha eliminato la necessità di un linguaggio OO esterno per creare un'applicazione completa. Poiché tutte queste aggiunte sono state implementate come estensioni di PostScript, è stato possibile scrivere un semplice codice PostScript che si tradurrebbe in un programma interattivo sullo schermo in esecuzione. Due popolari programmi dimostrativi erano un orologio su schermo, che richiedeva circa due pagine di codice, e un programma che disegnava un paio di occhi che seguivano il cursore mentre si muoveva sullo schermo. Il programma eyeball è stato mostrato al SIGGRAPH nel 1988 ed è stato l'ispirazione per la più tardi nota applicazione Xeyes .

NeWS includeva diverse librerie di elementi dell'interfaccia utente ( widget ), a loro volta scritti in NeWS. Questi widget eseguivano tutto il loro comportamento nell'interprete NeWS e richiedevano comunicazioni a un programma esterno (o più codice NeWS) solo quando il widget lo richiedeva. Ad esempio, la routine di visualizzazione di un pulsante di attivazione / disattivazione può interrogare lo stato del pulsante (premuto o meno) e modificarne la visualizzazione di conseguenza. Il codice PostScript del pulsante può anche reagire ai clic del mouse cambiando il suo stato da "premuto" a "non premuto" e viceversa. Tutto questo può avvenire nel server a finestre senza interazione con il programma client, e solo quando si rilascia il mouse sul pulsante verrà inviato un evento per la gestione. Questo era più sofisticato del modello di server del sistema X Window , che può solo segnalare "il pulsante del mouse è stato cliccato qui", "il mouse è qui", "il pulsante del mouse è stato rilasciato qui" a un client, che deve quindi capire se l'evento è nel pulsante, cambiare lo stato e infine istruire il server a visualizzare il nuovo stato. Se client e server non sono sulla stessa macchina, queste interazioni devono viaggiare sulla rete, il che si traduce in un ritardo nella risposta .

NeWS era architettonicamente simile a quello che ora viene chiamato AJAX , tranne per il fatto che NeWS coerentemente:

  • utilizzato codice PostScript invece di JavaScript per la programmazione.
  • ha utilizzato grafica PostScript invece di DHTML e CSS per il rendering.
  • ha utilizzato dati PostScript invece di XML e JSON per la rappresentazione dei dati.
Applicazioni basate su TNT

Il miglior esempio di tale libreria è TNT ( The NeWS Toolkit ) che Sun ha rilasciato nel 1989. Sun ha anche distribuito un precedente toolkit "Lite" inteso a scopo esemplificativo e per creare piccoli programmi.

Licenze

Sebbene l'adozione non sia mai stata diffusa, diverse aziende hanno concesso in licenza NeWS e lo hanno adattato per vari usi.

  • SGI ne ha utilizzato una versione chiamata 4Sight per sostituire il proprio sistema di finestre MEX proprietario .
  • Grasshopper Group ha creato un port per Macintosh chiamato MacNeWS.
  • Architech Corporation ha portato NeWS su OS / 2

Applicazioni

La versione OPEN LOOK del programma di desktop publishing FrameMaker , sviluppato da Frame Technology Corp. con finanziamenti principalmente da Sun Microsystems e NSA , è stato uno dei pochi prodotti commerciali che girava su NeWS. HyperLook, sviluppato da Arthur van Hoff al Turing Institute , era un sistema di progettazione di applicazioni interattive. Don Hopkins ha sviluppato una nuova versione di SimCity che è stata costruita con HyperLook.

Un programma di disegno commerciale, Altsys Virtuoso, è stato prodotto per NeWS; era un port di FreeHand con funzionalità aggiuntive che sfruttavano l'ambiente PostScript. Sfortunatamente Sun ha annunciato la fine del supporto per NeWS proprio quando Virtuoso è pronto per la spedizione.

Concorrenza con il sistema X Window

Rispetto a X , NeWS era molto più potente, ma anche più lento (specialmente per le connessioni locali). L'API C era di livello molto basso e difficile da usare, quindi la maggior parte dei programmi NeWS tendeva a essere scritta interamente in PostScript. Un altro fattore di popolarità era che Sun addebitava una tariffa per la licenza del codice sorgente NeWS, mentre il codice MIT X11 era gratuito.

Le prime versioni di NeWS emulavano il protocollo X10 traducendo le chiamate in NeWS PostScript. I problemi di velocità, oltre all'esistenza di programmi che facevano affidamento sui risultati in pixel esatti delle chiamate X10 e l'obsolescenza di X10, costrinsero Sun a rilasciare un ibrido X11 / NeWS chiamato Xnews che eseguiva un server X11 in parallelo con l'interprete PostScript. Questo ha seriamente degradato le prestazioni dell'interprete NeWS e non è stato nemmeno considerato un ottimo server X11. Sun ha inoltre implementato la specifica dell'interfaccia utente OPEN LOOK in diversi toolkit: NeWS Toolkit (TNT) era un toolkit OPEN LOOK scritto in PostScript che veniva eseguito nel server NeWS. OLIT era costruito sulla stessa base Xt (X Intrinsics) di Motif e XView utilizzava le stesse API del precedente sistema a finestre SunView di Sun.

Dopo che fu chiaro che OPEN LOOK aveva perso popolarità rispetto a Motif , e dopo che Adobe acquisì FrameMaker , Sun smise di supportare NeWS ei prodotti su NeWS semplicemente svanirono.

Riferimenti

link esterno