Web 2.0从理论到实践
前一阵子准备一个关于Web 2.0的材料,实在是头疼了一阵子。
进入2009年,再来谈论Web 2.0,实在是有些落伍。现在都在折腾3.0概念了,云(Cloud)之类的,对于某个片面片面地理解似乎就是有些东西不需要知道它其实在哪里它就是在那里(好比一片云?),概念太新,先凉拌着吧。
虽然2.0听起来有些落伍,但是有些东西看起来大家都知道其实就不一定明白。观察了周围的人,对于Web 2.0的应用,有些人用得不亦悦乎,有些人则仍然浏览网页、电子邮件,活得也很好。用的人里面,未必就有多少人觉得自己2.0有什么特别了。
同时针对不同的人群,材料所要宣讲的侧重也是不同的。对于非专业人员来说,侧重于概念,直接通过一些Web 2.0网站的例子开门见山,然后在此基础上加以解释效果比较好;对于有构建Web 2.0网站需要的商务人士①,则需要参考一些成功的例子说明Web 2.0的应用如何带来浏览量,如何带来收益等,比如电子商务领域可以参照eBay、Amazon、Wal-mart等等;对于开发人员,应该比较侧重于Ajax技术的应用;对于设计人员,则侧重于Web 2.0网站的设计理念、算法等。
①想起《Joel说软件》某篇的一句话,大致如下“那些XX经理们问:‘为什么我们不用Java?’只是因为飞机上的商务杂志的评论文章写到‘据调查Java的效率比Oracle快xx倍。’” 当然Business is Business,也得对付。
当然说是这么说,已经是折腾一番之后的感受了。在此之前,让我说Web 2.0,我只能翻来覆去两样:去中心化(Decentralization)和Ajax技术。
我必须骄傲地承认我抓住了事物的重点,但是光这重点还不够忽悠半分钟的。为了扩充材料,下面介绍一些值得借鉴的参考材料。
<What is Web 2.0>
O’Reilly的主席兼CEO Tim O’Reilly在2005年9月30日写过一篇<What is Web 2.0>的文章(中文翻译),对Web 2.0的概念进行了可以说是纲领性的总结。
文章开篇就Web 1.0和Web 2.0的比较为大家举出了各种实例。大家可以看到,无论是del.icio.us、Blog、Wikipedia、Flickr、YouTube还是BT,以上这些书签、新闻、知识、图片、影像、文件的提供者不再是网站运营商,而是用户自己,即是所谓的去中心化。
当然因为文章写得比较早的缘故,最近很火的SNS(如Facebook、MySpace)其中没有列举。
在中国,我们也已经有了很多的本地化应用,比如网络相册的Yupoo和巴巴变,比如视频的优酷和土豆,比如SNS的校内网和开心网,比如豆瓣,比如大众点评网。如果要宣讲,最好将例子替换为以上本地化的应用。没用过?那就试试看。
之后提到的概念方面,个人比较看重的是标签(tags)、RSS、软件即服务(SAAS)、永远的Beta版、开源软件。
标签和RSS虽小,在我看来却非常重要。一个改变了传统的目录分类方式,提供更为灵活的资料定位方法。一个使你能够即时/实时地得到资料的更新,在我看来如果没有RSS,一个在其他方面再Web 2.0的网站都名不符实。
软件即服务(SAAS)和永远的Beta版改变了传统的软件开发和发布模式,开源软件的合作方式本身就是Web 2.0的一种表现,大量的开源软件降低了技术的准入门槛,使许多自由的声音能够在此基础上响起。
《Ajax修炼之道 – Web 2.0入门》
该书是The Pragmatic Programers系列中的一本,可以说是品质保证。Ajax目前并没有统一的标准和实现,该书并不是非常step by step的书,但是却是非常有大局观的一本书。不做太多的介绍,开发人员值得一读。
《集体智慧编程》
如果光看标题和相关的关键字:算法、数据挖掘、机器学习、人工智能,你可能会知难而退。简言之这是一本很容易被错过的书。
不过请注意英文原版还有一个副标题:Building Smart Web 2.0 Applications。再读一读章节名:提供推荐;发现群组;搜索与排名;优化;文档过滤;决策树建模;构建价格模型……。
很多人都曾经上过算法课,快速排序、二分查找……,却不知道在何处应用。这本书却介绍如何使用“更复杂的”算法来开发如del.icio.us的链接推荐系统、搜索引擎的爬虫程序这样的实际Web 2.0应用,如何分析、整合海量的Web 2.0程序的用户数据。远比很多标题为《Web 2.0XX》的口水书言之有物。
本书的程序基于Python语言,不过并不重要。推荐想要搞明白原理或是自己设计开发的开发人员和设计人员阅读。