# ViolaWWW

ViolaWWW è stato un browser pubblicato per la prima volta nel 1992 per sistemi Unix. Fu il primo browser a supportare script e fogli di stile per il World Wide Web, oltre ad essere stato il browser consigliato all'epoca dal CERN (in cui venne inventato il World Wide Web), ma alla fine perse la sua iniziale posizione di browser più utilizzato a favore di Mosaic.

## Sviluppo

ViolaWWW venne sviluppato tramite un apposito linguaggio di programmazione e di scripting basato su UNIX, denominato Viola (acronimo di "Visually Interactive Object-oriented Language and Application"), creato nel 1990 da Pei-Yuan Wei, membro dell'Experimental Computing Facility (XCF) dell'Università Università della California - Berkeley.
Per lo sviluppo di Viola, Pei prese spunto dal software ipertestuale HyperCard, che scoprì per la prima volta nel 1989. Dopo la laurea, Pei sviluppò ulteriormente il linguaggio Viola lavorando con l'XCF e varie startup. In seguito venne finanziato dalla casa editrice O'Reilly Books, che avrebbe poi utilizzato ViolaWWW per alcune dimostrazioni del suo sito Global Network Navigator. L'obiettivo principale di Pei era quello di creare una versione di Viola che fosse dedicata esclusivamente per Internet.
Pubblicato nel 1992, ViolaWWW fu il primo browser ad aggiungere funzionalità estese come oggetti scriptabili incorporati, fogli di stile e tabelle. Le prime versioni furono accolte bene al CERN. Ed Krol segnalò questo browser nel suo libro del 1992 Whole Internet User's Guide and Catalog. Col proseguire dello sviluppo di ViolaWWW, esso cominciò ad assomigliare sempre più ad HyperCard.
ViolaWWW era basato sul toolkit Viola, uno strumento per lo sviluppo e il supporto di applicazioni multimediali visive interattive, tra cui anche un browser web multimediale. Il toolkit Viola girava su X Window System e poteva essere utilizzato per creare complesse applicazioni ipermediali che incorporavano funzionalità come applet ed altri contenuti interattivi già nel 1992.

### Primati

ViolaWWW fu il primo browser ad includere le seguenti funzionalità:
* l'inserimento di documenti lato client (precursori dei frame e della scrittura di output JavaScript, ora comunemente utilizzati)
| Incorporamento di documenti in ViolaWWW | Object Method |
| <INSERT SRC="a_quote.html"> | <object type="text/html" data="a_quote.html"> <p>This text will appear for browsers that don't support OBJECTs</p> </object> |
* un semplice meccanismo di foglio di stile utilizzato per inserire informazioni di stile come caratteri, colore e allineamenti in un documento (ciò venne implementato in ViolaWWW ben prima dello sviluppo dei CSS nel 1998)
| Foglio di stile in ViolaWWW | Foglio di stile CSS |
| (BODY,INPUT,P FGColor=black BGColor=grey70 BDColor=grey70 align=left (H1 FGColor=white BGColor=red BDColor=black align=center | body, input, p { color: black; background-color: #707070; text-align: left; } h1 { color: white; background-color: red; border: solid 1px black; text-align: center; } |
* un pannello laterale utilizzato per visualizzare meta informazioni, collegamenti di navigazione all'interno del documento ed altre informazioni, simili (ma non così sofisticate) alle funzionalità presenti in diversi browser moderni
* un linguaggio di scripting a cui è possibile accedere da un documento HTML, in modo tale che un documento HTML possa incorporare script e/o applet altamente interattivi (ciò può essere visto come il precursore di JavaScript e degli oggetti incorporati)
| | Metodo in ViolaWWW | Metodo equivalente in JavaScript |
| Scripting | \class {txtDisp} \name {showTime} \script { switch (arg[0]) { case "tick": set("content"), date); after(1000, self, "tick"); return; break; case "init": after(1000, self, "tick"); break; } usual; } \width {100} \height {50} \ | function showTimeInDoc { var theTime = document.getElementById('theTime'); var date = new Date; theTime.innerHTML = date.getHours + ":" + date.getMinutes + ":" + date.getSeconds; setTimeout(showTimeInDoc, 1000); } |
| Incorporamento di uno script in una pagina web | <HTML> <HEAD> </HEAD> <BODY> And, the time now is: <LINK REL="viola" HREF="showTime.v"> </BODY> </HTML> | <html> <head> <script type="text/javascript" src="showTime.js"></script> </head> <body onload="showTimeInDoc"> <p id="theTime">&nbsp;</p> </body> </html> |
* Moduli

## Competizione con Mosaic

Sebbene ViolaWWW avesse aperto le porte al World Wide Web, i suoi forti limiti, tra cui l'implementazione unicamente su X Window System, gli impedirono di competere con Mosaic, il browser che rese il Web popolare per le masse, dato che era più facile da installare sui computer utilizzati dalla maggior parte delle persone. Originariamente sviluppato per UNIX, Mosaic ebbe subito un porting per i sistemi operativi Microsoft Windows, mentre ciò non avvenne per ViolaWWW.

## ViolaWWW nelle cause sui brevetti

Nel 1999 Eolas Technologies e l'Università della California intentarono una causa presso la Corte distrettuale degli Stati Uniti "Northern District of Illinois" contro Microsoft, sostenendo la violazione del brevetto statunitense 5.838.906 (che copre i plugin dei browser) da parte di Internet Explorer. Eolas vinse la causa iniziale nell'agosto 2003 ed ottenne un risarcimento di 521 milioni di dollari da Microsoft. La Corte distrettuale riaffermò la decisione della giuria nel gennaio 2004.
Nel marzo 2005 una corte d'appello ordinò che si tenesse un nuovo processo, annullando la precedente decisione di risarcimento dei danni da parte di Microsoft. La corte d'appello affermò che la sentenza iniziale aveva ignorato due argomenti chiave avanzati da Microsoft. Microsoft avrebbe voluto dimostrare alla corte che ViolaWWW costituisse una tecnologia preesistente, poiché fu creata nel 1993 presso l'Università della California, un anno prima che venissero depositati i brevetti chiave. Microsoft aveva anche suggerito che Michael David Doyle, fondatore di Eolas ed ex ricercatore dell'Università della California, avesse intenzionalmente nascosto la sua conoscenza di ViolaWWW al momento della presentazione della richiesta di brevetto. Microsoft raggiunse in seguito un accordo con Eolas nell'agosto 2007 senza aprire un nuovo processo. Eolas continuò ad intentare causa contro dozzine di altre società tecnologiche.
Nel febbraio 2012 una giuria del Texas ritenne che due dei brevetti di Eolas non fossero validi dopo la testimonianza di diversi imputati, tra cui Tim Berners-Lee e Pei-Yuan Wei, accreditati come creatori di ViolaWWW. La testimonianza affermava che ViolaWWW includeva le pretese invenzioni di Eolas prima della data di deposito dei brevetti del 7 settembre 1993 e che esistevano prove sostanziali che Viola era pubblicamente conosciuta e utilizzata prima della presunta data di concepimento dei querelanti. La sentenza pose effettivamente fine ad una causa pendente contro 22 società, tra cui Yahoo e Google.