当前页面: 开发资料首页 → Java 专题 → 争论:Ajax技术是否即将没落?
摘要: 争论:Ajax技术是否即将没落?
争论:Ajax技术是否即将没落?
作者:Dlee@ajaxcn
转发者:cleverpig
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
在孟岩老师11月21日的blog中说他惊艳于微软公司新近推出的界面开发工具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/)。所以我们认为
然而,能看到趋势当然很重要,但是我们还是需要解决很多现实的问题。我在这里提出几个问题来与大家探讨。
技术的发展和演进往往都是一个长期的过程。面向对象开发取代面向过程开发、Java取代C++、Ruby逐渐取代Java都是一个长期的过程。
即使正如
我认为
在笔者看来,影响开发效率的问题主要有两个方面:
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标准一样,它仍然会长期沿用下去。
type="#_x0000_t75" style=’width:276pt;height:157.5pt’>
第二个优点其实是第一个优点所派生的。上世纪90年代末,在Web标准组织和W
如果我在这两三年内想建立一个电子商务网站,却只能部署到几百万个安装了XAML render引擎的用户机器上(而不是像Ajax那样几乎所有的桌面电脑)。除非我的脑子坏掉了,我不会做出这样的选择。对于面向互联网的应用而言,基于 真正Web标准来做开发,并且随着Web标准及其浏览器实现的发展而演进,是实现最大商业利益的必然选择。
Ajax应用可以被部署到几乎所有桌面电脑上这个事实是其他所有技术多年来梦寐以求而不可达的理想国度。另外一种现实的选择是Flash UI,Flash的部署范围也已经达到了足以大规模应用的程度。出于现实的商业考虑,我在几年之内都不会选择基于XAML建造我们的应用,除非它的部署范围达到了某个临界值,并且有朝一日成为真正的Web标准。
第三个优点是因为,开发Ajax应用所需要的工具几乎全部都是开源软件(详细的ajax开源软件列表),可以免费获得,因此不必花钱去购买昂贵的开发工具。其实开发简单的Ajax应用,一个主流的浏览器,再加上一个文本编辑器就已经足够了。只要你所开发的代码质量足够高,Ajax应用的部署可以达到完全的零成本。
我
其实早在3年之前,当我尝试基于 XMLHttpRequest来设计我们的架构和开发我们的应用时,当时已经有很多人预言基于HTML(或者XHTML)+JavaScript的开发方式必然会很快没落,并且对于我对JavaScript如此热衷很不理解。
type="#_x0000_t75" style=’width:249pt;height:187.5pt’>
但是几年过去了,这种开发技术非但没有没落,反而焕发出了勃勃的生机。这是在其没落或灭亡之前的回光返照吗?至少在我看来并不是这样,而是有其内在的规律。正是因为上面我所说到的这种开发技术的优点,今天几乎所有的Web用户都在使用这种技术。有庞大用户量、广泛使用的技术必然会不断发展,而不可能很快没落。其实XAML最终是否会取代Ajax,这并不是一个处于纯技术的考虑,而是涉及到整个 Web应用生态系统的迁移。今天90%以上(我的保守估计)的Web应用都建立在基于Web标准的界面开发技术之上,轻言这种技术在两年之内必然会没落是不严肃的。单靠微软等几个大公司想要扭转这种长期以来自然形成的状况,谈何容易?我认为不大可能。
所以在我看来,这种开发技术仍然会不断地发展和进步,自然地演化到一些新的Web标准(例如XHTML 2.0、CSS 3.0、JavaScript 2.0)。它的生命力会历久弥新,我敢与任何人打这个赌,至少到2010年,这种技术仍然将会是Web开发技术的主流。当然,到了那个时候,XAML也可能会发展为Web开发技术的主流,因此会出现一种百花齐放的状况。这并不是一场零和的游戏,只会出现一个赢家,其他人都会输,赢家通吃的情况我认为并不会出 现。
第四个问题是:是否深入学习Ajax就无法得到“这一代Web技术和体系的理解”?
这句话有很大的误导性,似乎深入学习Ajax就无法得到“这一代Web技术和体系的理解”。至少根据我的个人经验,深入学习Ajax可以帮助我们更好的获得“这一代Web技术和体系的理解”。我今年组织翻译了《Ajax in Action》、《Ajax Practices and Best Practices》,还将要从台湾引进《Ajax Design Patterns》。这几本书使得我对于国外的Web开发高手的水平叹服不已,并且很大地加深了我对于“这一代Web技术和体系的理解”。
我可以肯定
Ajax技术,正是目前绝大多数传统的Web开发团队向RIA时代迁移的最自然的选择路径。
第五个问题是:程序员做界面开发是否是不可能的?这是否就是Web应用开发效率的瓶颈所在?
我是做Java开发的,如果我作为技术负责人,我的团队中将会有这些分工:
由界面逻辑开发人员来制作页面,制作的页面必须达到我的要求。例如,完全基于CSS的布局,在各种主流浏览器上都要正常显示等等。
在我这里,业务逻辑开发人员和界面逻辑开发人员并不存在谁高谁低之分,薪水也是基本相同的水平。而孟岩认为在基于Web标准的开发过程中,程序员不应该做页面,这个看法是错误的。
type="#_x0000_t75" style=’width:243.75pt;height:162pt’>
程序员是否做页面也并不是开发效率的瓶颈。如果某个程序员精通了上述这些技术,他完全可以迅速开发出美观的页面。特别是在注重页面中 XHTML/CSS/JavaScript各部分的重用的情况下,积累到一年之后,要开发的很多东西都是相似的。
Ruby解决问题的思路与此是不同的,Ruby的思路是提高抽象的层次,使得一个开发人员有能力承担更多功能的开发。
孟岩的《这一天终于来了》
Ajaxcn.org站长Dlee的回击:《争论:Ajax技术是否即将没落?》
微软Expression产品页
请支持cleverpig发起的Matrix IAC"> Matrix IAC计划
争论:
↑返回目录
前一篇: Eclipse 3.2冒险之旅
后一篇: 实时JAVA简介