快捷搜索:

争论:Ajax技术是否即将没落?

在孟岩师长教师11月21日的blog(http://blog.csdn.net/myan/archive/2006/11/21/1402346.aspx)中说他惊艳于微软公司新近推出的界面开拓对象Expression,并且预言基于Web标准(平日即XHTML+CSS+JavaScript)的界面开拓技巧很快就会没落。孟岩猜测:“最迟不跨越2008年,在WPF、Flash(Apollo)等RIA技巧的夹攻之下,越来越多的Web利用将同时支配传统Web页面和新的RIA UI。”

对付这个猜测,我和一些同伙觉得孟岩师长教师过于乐不雅了。我猜测至少到2010年,基于Web标准的界面开拓技巧仍旧将是Web界面开拓的主流技巧,而这些技巧的集大年夜成者便是Ajax。Ajax技巧在近来两年中取得了很大年夜的成长,并且仍旧在迅速成长的历程中,现在就断言Ajax技巧即将没落还为时尚早。

诚然,从纯技巧的角度来看,我们也早就觉得XUL/XAML一类应用XML来描述界面组件和结构的技巧肯定是Web界面开拓技巧的成长趋势。W3C今年景立了一个事情组,盼望将XUL、XAML、MXML等几种界面描述说话统一为一种标准的款式(http://www.w3.org/2006/appformats/)。以是我们觉得孟岩师长教师所看到的趋势是没有大年夜问题的。从纯技巧的角度来看,将来的Web界面开拓肯定会成长到这种技巧。

然而,能看到趋势当然很紧张,然则我们照样必要办理很多现实的问题。我在这里提出几个问题来与大年夜家探究。

第一个问题是:这种趋势将会以多快的速率成为现实?

技巧的成长和演进每每都是一个经久的历程。面向工具开拓取代面向历程开拓、Java取代C++、Ruby徐徐取代Java都是一个经久的历程。孟岩师长教师所猜测的2年和我所猜测的4年彷佛相差不大年夜,然则对付我们现阶段所要采取的行动着实影响很大年夜。

纵然正如孟岩师长教师所预言的,这确凿是技巧成长的趋势又能如何?我们是否必然要在本日为翌日和后天发生的工作而买单。过早为将来发生的工作买单,很可能会价值高昂。这跟炒股差不多,有履历的玩家会在最适当的机会入手。过早入手、过晚入手,都邑承受丧掉。在这种趋势成为现实之前,我们是否坐等共产主义的实现?我觉得等待并不是一种积极的立场。

相关文章保举:

微软与Adobe竞逐Web 2.0开拓

Web2.0激发网页设计新要领

愈演愈烈的Ajax浪潮

第二个问题是:Ajax有何优点?

我觉得孟岩师长教师并没有充分地看到Ajax的优点。孟岩说:“昨天我还在说Ajax是过渡技巧,没想到几个小时之后就获得印证。” 着实严格说来,任何的技巧都可以称为是过渡技巧,然则这并不会阴碍应用这种技巧来为用户创造代价。孟岩只看到了应用基于Web标准的界面开拓技巧开拓效率低下的一壁。然则今朝海内做界面开拓的开拓者有若干人真正理解了Web标准呢?根据笔者的履历,采纳完全的CSS结构,将页面的布局、体现、行径三部分分分开,重视页面各部分的重用。颠末一段光阴的积累之后,基于Web标准的界面开拓完全可以达到对照抱负的开拓效率。而共同应用Dojo、Scriptaculous、YUI等成熟的Ajax组件库,还可以更进一步前进界面的开拓效率。在笔者看来,影响开拓效率的问题主要有两个方面:

1 Web界面开拓者没有充分理解Web标准。

2 Web界面开拓者没有考试测验过组件化的开拓要领。

相对付其他技巧而言,Ajax最大年夜的优点有这三点:

1 Ajax是完全基于Web标准的技巧,Ajax所用到的所有的技巧都是真正的Web标准。

2 Ajax利用可以毫无障碍地支配到险些所有的桌面电脑上。

3 Ajax利用的开拓和支配资源很低。

对付第一个优点,有人可能会争辩说,标准着实并不紧张。例如EJB 2.x是标准又若何,现在不是也一样被扬弃了吗?然则这两种标准是弗成相提并论的。EJB的标准在推出之时,完全没有颠末开拓实践的查验,与开拓实践严重脱节。然而Web标准却是从开拓实践中积累而来的。Ajax所基于的这些Web标准都是先有了异常成熟的利用和成功的商业案例之后才会形成标准。Web标准之以是成为了本日这个样子,是经得起历史磨练的。犹如TCP/IP标准一样,它仍旧会经久沿用下去。

第二个优点着实是第一个优点所派生的。上世纪90年代末,在Web标准组织和W3C的不懈努力下,停止了浏览器大年夜战,各类浏览器都允诺支持真正的Web标准。本日这种支持到了着花结果的时刻,结出的果实便是出生了一种称作Ajax的新技巧。恰是由于本日所有主流的浏览器都已经能够很好地支持Web标准(平日即XHTML+CSS+JavaScript),而险些所有桌面电脑上都安装了某种主流的浏览器(IE、Firefox/Mozilla、Opera、Safari、etc.),是以Ajax利用可以无痛地支配到险些所有的桌面电脑上。只管本日不合的浏览器对付Web标准某些部分的理解还略有歧义,实现上略有差异。然则只要基于成熟的组件库来做开拓,这些差异可以被最小化,已经不会成为开拓的障碍。

假如我在这两三年内想建立一个电子商务网站,却只能支配到几百万个安装了XAML render引擎的用户机械上(而不是像Ajax那样险些所有的桌面电脑)。除非我的脑筋坏掉落了,我不会做出这样的选择。对付面向互联网的利用而言,基于真正Web标准来做开拓,并且跟着Web标准及其浏览器实现的成长而演进,是实现最大年夜商业利益的一定选择。

Ajax利用可以被支配到险些所有桌面电脑上这个事实是其他所有技巧多年来梦寐以求而弗成达的抱负国。别的一种现实的选择是Flash UI,Flash的支配范围也已经达到了足以大年夜规模利用的程度。出于现实的商业斟酌,我在几年之内都不会选择基于XAML建造我们的利用,除非它的支配范围达到了某个临界值,并且有朝一日成为真正的Web标准。

第三个优点是由于,开拓Ajax利用所必要的对象险些整个都是开源软件,可以免费得到,是以不必费钱去购买昂贵的开拓对象。着实开拓简单的Ajax利用,一个主流的浏览器,再加上一个文本编辑器就已经足够了。只要你所开拓的代码质量足够高,Ajax利用的支配可以达到完全的零资源。

第三个问题是:基于浏览器和Web标准的开拓技巧是否必然会没落?

我和孟岩师长教师的一个主要的不同在于,我并不觉得基于浏览器和Web标准的开拓技巧必然会没落。着实早在3年之前,当我考试测验基于XMLHttpRequest来设计我们的架构和开拓我们的利用时,当时已经有很多人预言基于HTML(或者XHTML)+JavaScript的开拓要领一定会很快没落,对付我对JavaScript如斯热衷很不理解。然则几年以前了,这种开拓技巧非但没有没落,反而抖擞出了勃勃的活力。这是在其没落或灭亡之前的回光返照吗?至少在我看来并不是这样,而是有其内在的规律。恰是由于上面我所说到的这种开拓技巧的优点,本日险些所有的Web用户都在应用这种技巧。有宏大年夜用户量广泛应用的技巧一定会赓续成长,而弗成能很快没落。着实XAML终极是否会取代Ajax,这并不是一个纯技巧的考量,而是涉及到全部Web利用生态系统的迁移。本日90%以上(我的守旧预计)的Web利用都建立在基于Web标准的界面开拓技巧之上,轻言这种技巧在两年之内一定会没落是不严肃的。单靠微软等几个大年夜公司想要旋转这种经久以来自然形成的状况,谈何轻易?我觉得不大年夜可能。

以是在我看来,这种开拓技巧仍旧会赓续地成长和进步,自然地演化到一些新的Web标准(例如XHTML 2.0、CSS 3.0、JavaScript 2.0)。它的生命力会恒久弥新,我敢与任何人打这个赌,至少到2010年,这种技巧仍旧将会是Web开拓技巧的主流。当然到了那个时刻,XAML也可能会成长为Web开拓技巧的主流,是以会呈现一种百花齐放的状况。这并不是一场零和的游戏,只会呈现一个赢家,其他人都邑输,赢家通吃的环境我觉得并不会呈现。

第四个问题是:是否深入进修Ajax就无法获得“这一代Web技巧和体系的理解”?

孟岩师长教师说:“我们本日所说的Web开拓高手,有若干是把自己的身家性命押宝在对这一代Web技巧和体系的理解上?”

这句话有很大年夜的误导性,彷佛深入进修Ajax就无法获得“这一代Web技巧和体系的理解”。至少根据我的小我履历,深入进修Ajax可以赞助我们更好的得到“这一代Web技巧和体系的理解”。我今年组织翻译了《Ajax in Action》、《Ajax Practices and Best Practices》,还将要从台湾引进《Ajax Design Patterns》。这几本书使得我对付国外的Web开拓高手的水平叹服不已,并且很大年夜地加深了我对付“这一代Web技巧和体系的理解”。

孟岩师长教师还说:“且不说他们日常事情中大年夜多半光阴花在了界面开拓之上,就算是很多人引以为傲的所谓“大年夜负载量Web站点架构”,也将跟着 RIA的兴起而发生一场伟大年夜厘革。大年夜量页面状态将前移到客户端,Web办事端将以全新的不雅点从新组织资本,徐徐变成真正意义上的Web Services聚拢。旧的常识和履历迅速贬值,新的时机快速涌现,有的人沉下去,有的人飘起来,历史又要重来一遍了”

我可以肯定孟岩师长教师并没有深入钻研过Ajax利用的架构,是以才会误以为“大年夜量页面状态将前移到客户端,Web办事端将以全新的不雅点从新组织资本,徐徐变成真正意义上的Web Services聚拢。”与Ajax是完全抵触的。与孟岩师长教师这种大年夜开大年夜合的革命性猜测不合,我觉得技巧从来都不因此这种要领进步的。技巧进步是一个自然的迟钝演化历程,面向工具徐徐取代面向历程、Java徐徐取代C++、Ruby徐徐取代Java,都有很大年夜的传承关系在里面。将某种技巧描述为横空出世的“生成石猴孙悟空”,我觉得是不严肃的,也是没有做深入钻研的表现。我并不觉得曩昔在传统Web开拓技巧方面所积累的常识就会很快贬值。只要自己与时俱进,赓续弥补新的营养,“大年夜负载Web站点架构”的履历永世都是很宝贵的实践履历。Ajax技巧,恰是今朝绝大年夜多半传统的Web开拓团队向RIA期间迁移的最自然的选择路径。

第五个问题是:法度榜样员做界面开拓是否是弗成能的?这是否便是Web利用开拓效率的瓶颈所在?

孟岩师长教师说:“由于本日Web开拓中,设计职员基础只是办理页面结构与图片效果的设计,而大年夜量动态界面效果还必要开拓者来完成。 Expression + Visual Studio的模型则将“与用户交互的界面部分”与“后台营业逻辑”完全分开。设计职员凭借类似Flash的要领,就可以开拓出类似视频游戏那样的用户界面。”

我是做Java开拓的,假如我作为技巧认真人,我的团队中将会有这些分工:

1 营业逻辑开拓职员,应用Java和Spring等框架做开拓。

2 界面逻辑开拓职员,认真View的开拓,精晓FreeMarker、XHTML、CSS、JavaScript等技巧。

3 美工,认真制作图片,对付页面的样式和配色供给指示,用Photoshop设计出页面样式,交给界面逻辑开拓职员来制作。

由界面逻辑开拓职员来制作页面,制作的页面必须达到我的要求。例如,完全基于CSS的结构,在各类主流浏览器上都要正常显示等等。在我这里,营业逻辑开拓职员和界面逻辑开拓职员并不存在谁高谁低之分,薪水也是基真相同的水平。孟岩觉得在基于Web标准的开拓历程中,法度榜样员不应该做页面,这个见地是差错的。法度榜样员是否做页面也并不是开拓效率的瓶颈。假如某个法度榜样员精晓了上述这些技巧,他完全可以迅速开拓出美不雅的页面。分外是在重视页面中XHTML/CSS/JavaScript各部分的重用的环境下,积累上一年之后,要开拓的很多器械都是相似的。孟岩师长教师觉得完全的分工可以达到最大年夜的开拓效率,这是一种幻想。为什么Web开拓从J2EE异常清晰的分层又变成了在RoR中不是很清晰的分层?软件开拓并不是流水线式临盆。分工应该适当,分工太细,不合层次之间沟通的资源就会迅速上升。这又回到了《人月神话》中的命题:主要的资源在于沟通的资源。寄托细致的分工低落对开拓职员本质的要求,实现流水线式临盆,创造大年夜批软件蓝领,这本身便是一个幻想。Ruby办理问题的思路与此是不合的,Ruby的思路是前进抽象的层次,使得一个开拓职员有能力承担更多功能的开拓。

相关文章保举:

微软与Adobe竞逐Web 2.0开拓

Web2.0激发网页设计新要领

愈演愈烈的Ajax浪潮

涉猎关于 Ajax Expression XML Web办事 Ruby Java 的整个文章

您可能还会对下面的文章感兴趣: