我认为对于程序开发者而言,技术这种东西,不是你将一个名词安上去以后,就从零在一瞬间变成一。更重要的是,我们所看到的是一群人盲目的高喊web2.0,却完全不清楚web2.0所代表的真正意义为何。

我认为对于非专攻人员而言,即使你翻阅再多的资料也不可能真正了解到web2.0的核心意义与价值,而博主充其量只能用文字介绍web2.0最为肤浅的表面意义,所谓的「web2.0」并不是可以用三言两语来解释完毕的,因为它是网路整体价值的改变,不管是就使用者的立场来看还是经营者的角度来看,过去那种将网路当成行销工具强迫使用者接受的行销态度显然必须彻底改变。

但是有多少人可以真正改变旧有的想法,重新去思考网路改变的核心原因以及真正的价值所在?如果只是抱着旧的观念却在那边盲目的喊着新潮的口号,但脑袋里的东西不改变、行销观念不改变,是不可能产生真正的web2.0网站的。

本篇文章主要在介绍Web的发展历史,目前技术上的发展情况,以及未来的景象。

Web

在有Internet的时候,欧洲高能物理实验室(CERN)的研究员Tim Berners-Lee,在1989~1991的时候,参考了TCP及DNS,设计了HyperText(超本文),以及HTML(HyperText Markup Language)及用来传输HTML的HTTP(HyperText Transfer Protocol)。

他也设计了第一套HTTP伺服器NCSA Httpd,在NextStep系统上的第一套浏览器WorldWideWeb,以及世界上第一个网站http://info.cern.ch/。随后,他创立了W3C(WWW Consortium)组织来开发及建立WWW上的协定及共通标准。

从网页到Web应用程式

web演进方式

Ajax:还是使用Javascript的技术,只是结合XML来做非同步的传输。与以往的Web应用程式比较起来,Ajax的使用让部分运算集中在用户端,而结合Javascript特效,能够有更多弹性来创造不同的使用者介面。

连结方式: 这边是拿Web之间连结资源的方式作比较,以往是静态的超连结。而现在是Web应用程式,所以能够进行。Ajax:还是使用Javascript的技术,只是结合XML来做非同步的传输。与以往的Web应用程式比较起来,Ajax的使用让部分运算集中在用户端,而结合Javascript特效,能够有更多弹性来创造不同的使用者介面。

1.主动性的连接,也就是透过SOAP来交换资料。

2.被动性地将应用程式资料变成以XML为基础的协定,来让其他应用程式透过URL取得。

3.透过即时改写URL或是良好的设计来达成简单且有意义的超连结。

Javascript:在许多伺服器端程式还没有出现的时候,最早是使用Javascript为最基本的程式,当时也被称做DHTML。在PHP还没有真正达到广泛应用的时候,当时是使用Perl及档案型资料库作为逻辑层及资料层,常见的应用程式就是聊天室及留言板。

而在资料库系统引进之后,也因为伺服器端的程式语言,得以让这些Web应用程式可以利用资料库完全地记录状态及资料,其中最热门的是PHP。后来浏览器的功能提升,加上与Javascript与XML的结合后成为Ajax,让现在的Web应用程式更能与使用者互动。

这些技术刺激了许多和Web相关的技术成长。大约在2004年开始,和Web相关的应用程式越来越风行。网页不再是网页,会明确地被称做Web应用程式。而不管是既有的网路服务,或是Web应用程式,都有服务提供者进行整合。

网路泡沫化

然而,为何会有网路泡沫化一词产生?在那之后,有一些商业公司发现这个相当快速的资讯传播平台,便开始着手建构电子商务,尝试利用Web快捷的特性降低成本。起头的公司赚进大把钞票,加上杂志以及媒体的渲染,使得投资人纷纷认为这是一块大饼,开始疯狂投资。这个情况,就如同珍珠奶茶以及蛋塔效应一样,投资者没有创意的跟进,没顾及使用者需求的后果,就是导致倒闭及并购。目前真正能够活下来的,也就是真正有做到了解并服务使用者的网路公司。

Web 2.0

由于上述Web技术的演进,以及应用程式服务化的观念,产生了许多与众不同的网站。对于Web应用程式服务最出色的就是Google、Yahoo。这些网站都本来就具备一些特点,也让他们能够存活到现在。在2005/09/30,由Tim O’Reilly所发表的「What Is Web 2.0」统整了这些网站的特色,而定义了Web 2.0这个名词。

但是我想我必须澄清,在Web上使用软体版本号码也只是一个表征,让使用者知道现在他们天天用浏览器所看见的是新一代的Web。但事实上Web一直都在演进,也像是一直都在换版本,并没有真正软体版本的概念。而我认为Web 2.0是走向Semantic Web的一个中间必经之路,不管O’Reilly有没有提出这样的名词,你都已经在使用了。

就O’Reilly的文章内容,Web 2.0包含以下观念:

目的是在于提高人与人之间的互动性,连结性。

以Ajax, Javascript特效,站在使用者的观感,让使用者有与以往浏览静态网页不同的经验。

建立良好的资料输入平台,让使用者可以轻易地累积资料。

利用群众的力量,可以轻易地开发群众想要的应用程式,也符合开放原始码精神。

而对于是否会泡沫化,文章中也认为能够称做是Web 2.0的商业公司会符合:

强调使用者也是开发者

利用集体智慧来了解使用者需求

储存的是独特的领域资料,也包括经由创意而产生的资料

轻量级(Lightweight)的使用者介面,开发模式,商业模式

卖的是服务而不是软体,也因为上述几点所以有高成本效益

这是一个很理想的状况。但实际上,从Wikipedia对于Web 2.0的现况所做的解释看起来,却完全不是这样一回事。一些相当知名的服务公司如同Flickr,开始走向被并购的路线。

一些对Web 2.0的负面报导也越来越多,让投资人谨慎地评估风险,而不再像以往泡沫化的时代一味地砸下重金。我想这与众多国内商业周刊,网路媒体与业者大肆利用Web 2.0的名称试图吸引使用者投入其阵营是截然不同的情况。

新一代的软体使用经验:Web应用程式

我想从2004年以后,也就是早在Web 2.0这个名词提出来之前,Web应用程式的出现带来了另一种不同的软体使用经验。使用者不再需要安装庞大的软体套件,利用浏览器就可以使用。而Web本身的目的也在于加速人与人之间的沟通,所以任何的沟通平台也可以同时建立在此应用程式中。

形成了应用程式与服务的弹性整合,也带动了使用者之间的交流而形成社群,这是以往的视窗应用程式无法做到的。经由社群的力量,Web应用程式本来就不需要太担心无法了解使用者的需求,而可以快速的改进。

就软体规格上而言,Web应用程式应该要拥有主动与其他Web应用程式通讯的能力,不管经由Web Services或是其他方式。Web应用程式也应该要提供许多整合性,统计性的服务,而这些透过运算出来的资料,也应该要变成能够被其他应用程式存取的资料。使用者输入的创意资料,应该可以透过可以轻易解读的文字格式汇出给使用者自行备份。

目前大部分存在在Web上的资料,是无法被电脑已共通,程式化的方式进行存取的。例如说你写一个网页,但是这个网页的内容是跟啥有关系,往往也只有看网页的人才看得懂,然后来分类整理。举个例子,在XHTML还没推动的时候,就采用<Meta>这个标签来对该HTML资料进行注解。如此网页就变成一种有「属性」的物件资料,而此物件资料还可以被取得及分析。

HTML这样子非严谨文件结构的时代已经过去,因为无法让程式根据共通的规范来分析文件。目前W3C首推XHTML,目的就是将以往的HTML,使用与XML相同的规范撰写。例如说,标签应该使用close tag(<tag></tag>或是<tag/>),属性也不能只是写属性名称而不加上值,应该使用selected=”selected”这样的方式。一旦大量的资料照着这样的累积起来,加上良好开发的程式介面,就可以开发出可以分析这些资料的程式。

而目前Web的发展,和Semantic Web有关连的目的就是开发出良好的介面让使用者可以轻易地累积资料,也因此发展出Wiki及Blog这两种快速发布资料的方式。

这些大量的资料,在建构的时候并没有任何关连,但是真正对人类有意义的资料,是经过定义化,分析整理并且可以快速撷取的资料。W3C目前已经开发出Resource Description Framework (RDF) 及Web Ontology Language (OWL)来明确地定义「知识」,让资料之间,或是知识对资料产生关连性。良好格式的知识可以关连到现有的任何一个Web上的资料,并且被程式使用。

而在那个时候,Google或许就不存在了,取而代之的代表这整个世界的知识库。这样的知识库,可以让你输入一个简单的问题,你就可以得到你应该要知道的答案。

结论

Web发展到现在已经26年,众多的技术,复杂的观念及理论,多元化的商业行为,群众的言论及力量,让使用Web的人们眼花撩乱。可是不管Web怎样发展,唯一的目的就是给人类使用,让电脑去处理例行性的工作,而人类可以将时间花在创意上。2004年许多Web的应用,如Wikipedia,对全人类是有重大的影响的。而Web 2.0的观念,在隔年也掀起许多话题。这些现象都代表着现在已经不是网页的时代,也不是视窗应用程式的时代,而是Web应用程式的时代。