CTO眼中的软件2.0技术
在本刊10期杂志上,优快云产业分析组提出了“软件2.0”概念。问起身边的朋友,很多人对这个新生的概念不甚清楚。作为“软件2.0”的重要一部分,Web2.0作为一个统一的社会计算平台,在技术上也正在发生非常大的变化,从耳熟能详的AJAX到不断出现的新名词RSS、REST以及最近的网络新宠AIR。这些新技术的发展和演进正在影响和改变我们开发Web网站的方式,那么站在技术一线的CTO们是如何看待和理解这场变革的呢?本期我们分别邀请了来自抓虾网的CTO谌振宇和Feedsky网站的CTO周泉,请他们从Web开发的角度来和我们分享Web2.0领域正在发生的变化,以及这些变化与“软件2.0”技术之间的内在关联。
访抓虾网CTO谌振宇
《程序员》:现在多数Web2.0网站都是基于开源框架,您怎么看待开源产品在软件特别是网站开发领域的流行?这件事情的意义有多重大?
谌振宇:开源框架的发展极大地支持了创业,Web2.0的产品也获益良多。框架的作用就是让那些重复性的工作、没有创造性的工作简单化和例行化,让使用框架的人把更多的精力投入到创造性的工作中。因为技术难度降低了,就可以让更多的人能参与到创业中来。
《程序员》:高并发和大规模计算是Web 2.0网站普遍面临的挑战,为什么这个问题在Web2.0网站里格外突出?主要应该如何解决?
谌振宇:高并发和大规模问题的出现和现在很多网站的产品很相关。现在的产品,形式上强调的是人与人的关系,UGC(用户的内容创造),并且需要在第一时间展示最新的内容和相互的关系,从算法复杂度上说都是平方级以上的。要完成这样的功能,需要很强的实时计算能力,这与以前网站提供的都是静态内容有很大的区别。解决这样的问题,还是要具体问题具体分析。现在比较多的方法就是采用集群技术,分布式处理,硬盘一般是一个瓶颈,一般采用Cache(缓存)技术来解决。
《程序员》:在抓虾的网站开发中,应用了哪些Web2.0的技术?在现有技术和框架的基础上,您觉得Web2.0未来还会有哪些突破?
谌振宇:
抓虾现在后端服务主要用C++,前端用PHP和JavaScript,也用了Python来做一些多个模块结合的工作。抓虾的团队在互联网技术上有很强的优势,创业前我和我的合作伙伴徐易容两人加起来有15年的互联网从业¾验。我们在新技术上的采用都是从需求出发,比较谨慎,没有一味使用新的技术。比如我们觉得提高用户体验是产品的一个重要的点,所以大量采用了JavaScript,从现在看,这样的选择完成了我们的设计,而且模块、层次都很清晰。我们的工程师在JavaScript的使用上很有心得,我们有自己的一套开发框架,在业界不敢说第一,但一定是领先的。现在的开发框架很多,都有自己的特色,这些框架是在以前网站开发的需求和¾验中总结出来的,现在有了新的需求,比如说上面提到的高并发和大规模计算,我觉得要更彻底解放这些技术问题才能更好地把大家的创业实施出来。这个可能就是一个发展的需求。
《程序员》:抓虾最为人所知的应用就是RSS聚合,我们看到RSS有着广阔的应用前景。现在已¾发生这样的趋势,即包括RSS、REST、AJAX等技术在内的、发源于Web 2.0的技术走向企业,甚至走向传统桌面软件,您怎么看待这一趋势?这是一个暂时性的现象,还是会持续不断地发展下去?
谌振宇:RSS是公司间数据传递的一种实现方式,相比以前的信息传播都需要很多的人力来参与,本质上新的技术提高了效率,降低了信息传播的成本,类似的还有REST等,这种规范的数据传输是一种趋势,这样的技术可以用到任何需要发布信息的地方。数据层和应用层的分工越来越清晰,可以让创业者把精力更多地放到应用上,这样会有更多更丰富的应用出来。发布这些数据接口的公司可以利用这些新的应用,比如现在很多公司用RSS来发布自己的信息,这样的信息更容易被各种信息局和应用采集,用户就可以从多种应用中如RSS阅读器来获取这些信息。
《程序员》:对于富互联网应用(RIA)的不断成熟,许多厂商陆续跟进,Adobe的Apollo平台、微软的WPF,您认为RIA应用的市场空间如何?会逐渐取代网络应用程序成为Web 2.0的主流吗?抓虾会如何通过RIA来扩展现有的产品和线路?
谌振宇:大公司的参与会让新技术得到更快的普及,对市场的发展是一个很好的事情。现在的技术发展很快,大家都需要更快地跟上形势的变化。抓虾还是会从用户需求出发来考虑我们的实现细节,采用合适的技术来解决问题。我们还是会不断发挥我们的长处,同时参考新的技术。RIA的出现很大程度善了用户的体验,并且受到了用户的认可,但是我觉得不同的技术会有它各自的适用空间,在不同的应用上采用不同的技术是技术人员需要自己分析的问题,RIA有它的长处,也有它的不足,在不合适的地方使用就有»蛇添足的感觉。
谌振宇,抓虾网(www.zhuaxia.com)共同创始人之一,CTO,曾任百度大搜索部门技术¾理,领导处理每天上亿次的网页搜索需求,领导设计和实现百度网络搜索集群系统,该集群由上千台服务器组成。从百度创业早期阶段开始,亲历百度创业过程。
访Feedsky公司CTO周泉
《程序员》:在Feedsky的网站开发中,应用了哪些Web2.0的技术?
周泉:Feed本身是Web2.0数据传输中的一种基础格式,我们使用的技术有AJAX、CSS和语义相关的XHTML标记、URLs、REST或者XMLWebserviceAPIs等。
《程序员》:在现有技术和框架的基础上,您觉得Web2.0未来还会有哪些突破?
周泉:在未来,Web2.0技术会更多地结合数据分析能力,提供简单的人工智能来帮助用户更方便地使用网站提供的服务。随着RSS的普及,基于RSS内容的专业搜索引擎也会变得越来越重要。由于RSS本身是格式化的信息,所以非常利于做信息分析和索引,并且准确率也会得到很大的提升。不过这也对RSS的发布者有一定的要求,那就是提供符合标准的RSS信息。
另一方面,RIA的应用以后肯定会越来越多。从现在来看,JavaScript的应用也有很多问题,比如调试困难,结构和语法不严谨,对CPU占用大等等。相比较而言,RIA的应用可以从一开始就克服掉这些问题,而且开发RIA比AJAX要容易上手一些。RSS是专门针对阅读的数据传输的Ð议,而RIA关注于应用层,所以RSS和RIA的结合应该是一种阅读的趋势。目前已¾有很多这样的应用了,RIA可以充分发挥它在操作和表现力上的优势,为用户提供一种很好的阅读体会。当然,这种应用也会对未来技术提出挑战,比如很多传统企业的系统架构将要发生很多变化,因为从目前来看,所有的RIA技术传输都是基于通用的XML格式的。
《程序员》:随着Web2.0技术的发展,我们看到了一些轻量级语言和框架的出现,如Ruby on Rails、Python on Django,您认为轻量级语言在开发Web2.0产品方面有哪些优势?未来的Web开发是否会以轻量级语言和框架为趋势?为什么?
周泉:开发效率高是轻量级语言最大的优势所在。现在很多Web2.0网站,用户的需求变化很快,开发周期不宜太长,使用快速开发就显得很有必要。目前我们也在一些公司内部的后台管理系统中实验性地应用一些RoR和Python。轻量级语言是否会成为Web开发的趋势,我不太敢肯定,因为任何语言都有其适用和不适用的地方,比如说RoR在Web开发应用层上具有很大的优势,但是在做后台等性能要求高的方面,它相对要差一些。所以说,还是要看具体应用在什么地方。
《程序员》:Feedsky提供的Feeds服务是否会被企业级应用所采用?据我们所了解,IBM的ND8 (Notes和 Lotus Domino8)其底层的消息通讯全部依靠Feed来实现,这是否意味着互联网技术已¾开始向企业级技术渗透?未来还会有哪些Web技术深入到企业级领域?
周泉:Feed包括RSS和Atom两种Ð议,它是一种数据传输的Ð议。Feed在企业应用中有很多的优势,而且这种应用渗透到企业内部也将是一种趋势。随着Google和其他搜索引擎的出现,带来了信息的大爆炸。比如我订阅了优快云、Sohu和Sina的新闻,还有很多的Blog。如果用传统的阅读方式,我需要一个一个页面打开去浏览。而采用Feed订阅,我就可以设置关键字过滤,只看我需要的信息,为我节省了大量的时间。再举例来说,企业有它自己所关心的内容,比如说市场信息。很多人认为Feed只和Blog挂钩,其实不然,事实上,很多的新闻网站、公司网站,包括BBS也都有自己的Feed输出。企业可以把他们各自所关心的论坛、新闻、站点以及Blog聚合在一起,用订阅的方式来进行信息过滤,这样对于他们跟踪市场信息提供了一种很便捷的方式。
实际上,互联网技术很早就已¾开始向企业级渗透。我自己最早是做C/S结构的软件,很快2000年互联网兴起后,很多企业就开始使用B/S结构。至于未来还有哪些Web技术深入到企业级领域,我想很难预测,但今后数据传输肯定会大量基于XML这种格式。现在像AJAX,Blog都已¾渗透到企业级应用中,未来RIA也肯定会受到企业的青睐。
周泉,Feedsky公司CTO,曾在pAsia和PulseAsia担任工程师和技术总监职务,具有多年大型网站和无线网络的设计与开发¾验,现负责Feedsky整体网站的开发和技术团队的建设。