工具流行趋势
Dreamweaver——web开发工具中的王者

图-4 web开发中采用的工具分布图
评论:DW能力十足,无论对于web设计者还是开发者来讲都是很顺手的工具,但其语法自动提示能力实在有限。而且对于开发者而言,DW的超强编辑能力也注定了它overkill的宿命,这也是Text Editor和它平分秋色的原因之一。
VS功能强大,但其受到微软语言的制肘,无法伸展开有力的上臂来拥抱各种开源语言。
这里我要遗憾地感叹一下Eclipse WTP,它提供的HTML 编辑器用上去还算可以,但相比之下相形见绌,不免有些鸡肋之嫌,还需要进一步完善:
1.Eclipse WTP的优点:
在同一个IDE中支持Java, JavaScript和ActionScript等多种语言。
“All In One”的发布模式是它易于安装。
概要视图(Outline View)对方法和变量进行很好的组织。
对JavaScript function提供了代码提示。
提供了对web页面的验证功能。
2.Eclipse WTP的缺点:
缺少本地或者在线文档,甚至连说明文件也没有,非常不利于初学者使用。
语言支持(比如ASP)有限,扩展能力弱。使之支持其它语言就必须手工添加,也许这是HTML编辑器的通病。
概要视图(Outline View)并不支持JavaScript的方法和类。
WTP没有提供良好的页面设计视图。
WTP对页面进行验证性能不佳。
Web开发技术流行趋势
PHP——高效、稳定的圣殿轻骑兵

图-5 web开发语言平台分布图
评论:很欣慰地看到作为“开源常青树”的PHP获得如此殊荣。由于PHP的高效、全能、强适应能力、强扩展能力,所以获得了众多开发者的青睐。
同时作为传统语言的ASP和JSP依然在势均力敌的博弈,而春风得意的后生Ruby可谓潜力无限,当然这也得益于RoR的流行。但是从Ruby占5.31%的比例来看,RoR还不是企业应用开发的主流。
PHP何以如此红火?
1.高效性:
基于C语言的特性已经使其具备了高效的潜质,再加上支持页面模板技术的smart引擎、提供代码重用能力的PEAR、可替代循环的正则表达式等,使其在服务器端执行效率得到了加强。
2.应用范围广:
服务端脚本——这是PHP的传统领域,也是最主要的目标领域;
命令行脚本——可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它;
桌面应用——编写可以利用PHP-GTK来编写桌面应用程序。
3.强适应能力:
使用PHP开发时不但可以自由地选择操作系统和web服务器,而且可以根据需要选择使用面对过程和面对对象,或者两者混和的方式来开发。
4.强扩展能力:
PHP 最强大最显著的特性之一,是它支持很大范围的数据库。
PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。
而且它具有极其有效的文本处理特性,支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。
如果将 PHP 用于电子商务领域,会发现其Cybercash、CyberMUT、VeriSign Payflow Pro等支付方式以及 MCVE 函数对于在线交易程序来说是非常有用的。
另外,eweek网站完成的《2006年10大应该学习语言》,也值得大家作为学习的参考:
1. PHP
2. C#
3. AJAX (Asynchronous JavaScript and XML)
4. JavaScript
5. Perl
6. C
7. Ruby and Ruby on Rails(RoR)
8. Java
9. Python
10. VB.Net (Visual Basic .Net)
聚合推动web运转的车轮

图-6 当前web应用项目的技术分布图
评论:由此可见,经过仅仅2、3年的发展,聚合技术已经撑起了web前进的舵盘,随之兴起的AJAX、JavaScript、Blog、Wiki、Podcast也依靠聚合技术传遍了世界每个角落。Flash虽然份额不小,但其也缓慢地转向客户端脚本的方向以进一步提高优雅的用户体验。
回到我前面的原理:“用户体验决定了技术发展方向,而不是理论。”,聚合技术的兴起必定带动客户端和服务端的技术提升。我相信未来几年web属于结构化blog和Feed网络:
结构化Blog(Structured Blog):
一种新兴的、实验性的Blog,它最终把信息传送到语义网(Semantic web)。尤其是它提供了自描述内容,这种自描述内容可以被轻松地植入到web站点或者Blog中,提供给Blog作者建立和聚合结构化信息(比如评论、事件、媒体)的工具。
在传统Blog记录和结构化Blog记录之间的不同之处——后者发布的内容是计算机可读取的格式,其它的聚合服务可以理解它们,使用它们来生产事件日历(calendars of events)、任务板(job boards)、书籍评论(book reviews)或者影视投票。当然,结构化Blog也遵循RSS和Atom标准。结构化Blog通常处理结构化的内容格式,比如微内容(microcontent)。
注:语义网(Semantic web):是在万维网上,通过放置计算机可处理的文档来进行信息交换最终建立一个全球媒介的项目。目前语义网在万维网协会Tim Berners-Lee先生的指导下,正通过使用标准、标记语言和相关的处理工具对web进行着扩展。
注:微内容(microcontent):微内容是一种以短小形式发布的信息,它的长度受到了话题长度的限定和软件的技术限制。
Feed网络(FeedMesh):
FeedMesh是一组用来建立“结对网络(peering network)”、完成对分散的web更新通知和内容发布的技术。采用web聚合的在线服务商,包括PubSub、Feedster、Technorati、Bloglines、Yahoo共同参加制定了一项共享weblog更新通知服务(“pings”时常见的一种更新通知服务方式)的标准。
它使blog作者和聚合发布者从中获益:更快速的内容发布、可靠的可升级的通知服务。而对于在线服务的客户来讲,好处则是带宽的节省和低延迟。