ViolaWWW是万维网(WWW)第一个流行的浏览器,目前已停止开发。其首次在1991/1992年的UNIX操作系统上发布,并成为受万维网发源组织CERN所推荐的浏览器,但其最常用浏览器的地位最终被Mosaic浏览器取代。
Viola由魏培源在1991年开发,他也是加州伯克利大学的eXperimental Computing Facility(英语:eXperimental Computing Facility)(XCF)研究小组成员之一。Viola是一个基于UNIX平台的编程语言,其名称为可视化交互的面向对象语言及应用(Visually Interactive Object-oriented Language and Application)的首字母缩写。
魏培源对于图形软件的兴趣始于1989年他接触到的HyperCard,魏培源说:“当时HyperCard非常引人注目,这是一款众人皆知的超链接程序,但只能在Mac上运作...而当时我甚至连Mac都没有”。魏培源使用X终端(英语:X terminal)于1990年创造了第一个版本的Viola语言:“我拿到了一本HyperCard手册看了一下,基本上把这些概念完成了......”
毕业后魏培源与XCF及创业伙伴一起继续开发Viola。随后其接受了奥莱利公司的投资,这是一家美国电子出版公司。奥莱利公司使用了其软件以显示旗下网站全球网络导航器。魏培源的主要工作是创建一个适用于互联网的Viola版本:
X Window是一个基于UNIX的操作系统,其内建了TCP/IP协议,所以支持互联网是很合乎常理的,问题是如何通过互联网传输他的Viola页面,他处于网络超文本独立发明的边缘。在他看到蒂姆关于万维网的邮件时他解释说,URL非常非常聪明,这正是我所需要的。他向蒂姆发了一封邮件说他正在考虑为X Window编写一个浏览器。蒂姆在12月9日的www-talk上回复说:听起来不错。四天后,魏培源在www-talk说,他做了一个浏览器。
ViolaWWW创建于1992年,是第一个添加扩展功能的浏览器,如嵌入式脚本对象、样式表和表。早期版本在CERN获得了诸多好评。Ed Kroll还在其1992年很流行的文章中强调了该浏览器。
随着ViolaWWW的开发,开始与HyperCard越来越相似:
它有一个收藏夹功能让你可以追踪自己喜欢的页面,还有前进和后退按钮及历史记录功能可以保存你访问过的网站。随着时间的推移它有了显示表格和图形的功能,到了1993年5月它甚至开始可以直接运行程序。
ViolaWWW基于Viola工具箱,该工具箱是用于开发与支持视觉交互式媒体应用的工具。Viola在X Window下运行,早在1992年就可以用来创建远超HTML 3.0(当时最新版本的HTML)的复杂超媒体应用,包括小程序及其他可交互的内容。
Viola是第一个拥有如下功能的浏览器:
<INSERT SRC="a_quote.html">
<object type="text/html" data="a_quote.html"><p>如果浏览器不支持对象,本文字将会显示</p></object>
- 一个简单的样式表机制用于指定文档中的样式信息,例如字体,颜色,对齐方式。早在1998年CSS样式表开发之前已经在Viola中实现了。
Viola式样式表 | 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;} |
- 一个侧边栏用于显示网页中的元信息,如网页内部导航链接等。类似但不那么复杂的侧边栏功能也出现在一些现代浏览器中。
- 一个HTML文档可以调用的脚本语言,让网页文档可以嵌入高度可交互的脚本及小程序,其可以被视为JavaScript和嵌入对象的先驱。
ViolaWWW实现语法 | JavaScript实现语法 | |
---|---|---|
脚本 | \class {txtDisp}\name {showTime}\script { switch (arg) { 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);} |
将脚本插入网页 | <HTML><HEAD></HEAD><BODY><P>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"> </p> </body></html> |
与Mosaic竞争
虽然ViolaWWW为万维网打开了大门,但由于其局限性,包括它只能在X Window系统上运行,意味着它无法与将万维网带入主流的Mosaic竞争。除此之外,Mosaic更容易安装在大多数人使用的电脑上。虽然最初为UNIX开发,但很快被移植到Microsoft Windows,这是一个ViolaWWW从未运行过的平台。