这里的是未删节版本,删节后登载于《程序员》2010年1月刊p134页。
———————————————————————————-
上个月,Ajax网站AjaxLine统计发布了30款最受欢迎的Eclipse插件,这次遴选出的插件,范围涉及Python、LAMP、Web、Emac、SQL、Log、UML和IDE增强等诸多方面,玲琅满目的Eclipse插件体现出插件机制在Eclipse中优异的扩展性能,以及Eclipse做为IDE在开发者心目中的地位。
众所周知,Eclipse是最初作为Java IDE发布的一个开放平台,因其具备完善的插件扩展机制,并逐渐加入对于C++和其他语言平台的支持,而受广大开发群体的欢迎,一度成为IDE市场事实上的标准。这款IDE的背后,有包括像IBM、Oracle这样的软件巨鳄在鼎力支持。很软件开发厂商,当然包括IBM和 Oracle在内,都基于Eclipse平台推出各自能贯穿软件生命周期的产品平台,包括IBM的Rational产品序列,Oracle的 JDeveloper,还有ThoughtWorks的自动化测试平台Twist,在InfoQ中文站上进行调查的结果中显示,除了这些著名非著名的插件外,国内开发者们还比较热衷于使用MyEclipse和Apatana这样的Eclipse插件,当然开源的插件更是不计其数。
一款IDE的成功乃至IDE市场的繁荣,需要的是IDE自身具备超强的特性功能、良好的用户体验、稳定的技术架构、优异的扩展性能,但要想持续发展保持市场份额,离不开软件厂商的大力投入,以及和社区开发者的良好互动。
最近20年无疑是IDE快速发展的时期,层出不穷的语言需要更新换代的强力IDE来支持,语言、程序员和软件厂商在这个新兴的市场中博弈浮沉。近观这几年, 我们就会发现有的IDE在厂商的金元支持下不断增强、发布新版本老而弥坚,而有的IDE则城头变换大王旗,甚至彻底没了踪影,有的新款专业级甚至开源的IDE随着新兴语言的登场让人眼前一亮,有的却怠于改进反响微弱,让人食之无味弃之可惜。
让我们来看一下,最近一年IDE们都在忙些什么?那些耳熟能详的IDE现在怎么样了?这个市场上又出现了哪些新面孔呢?IDE在朝着怎样的一个方向发展?
东家换了以后
在英巴卡迪诺(Embarcadero Technologies)收购了Borland的开发部门以后,这令Delphi获得了新生。其核心产品Delphi 2009又重新开始关注Win32开发了。另外,微软在协议上的变化又给了新版本的Delphi一个出路。微软向独立的系统供应商免费提供Visual Studio。这个名为Visual Studio Shell的版本可用作任何开发套件的基础。
Embarcadero正在用其开发Delphi Prism。Delphi Prism给Embarcadero带来了一些Borland未曾拥有的东西。通过将Visual Studio Shell作为起始点,他们可以立刻与微软的专业开发工具展开竞争而无需弥补迷失的那几年光阴。凭借Delphi Prism,Embarcadero可以专注于微软比较欠缺的领域:跨平台开发。通过使用Visual Studio和Delphi Prism,开发者编写的程序可以运行在非微软的操作系统上。
Oracle对NetBeans的声明更值得耐人寻味,你会发现在对NetBeans的说明中没有像对MySQL那样所谓的“比Sun投入更多的资金” 字样。另外因为此前Oracle已经有JDeveloper和基于Eclipse的开发包,所以NetBeans何去何从,也一直是Java开发者所比较 关注的。在文档中,Oracle提到:我们希望NetBeans也能像现在Oracle已经提供的两款免费企业级Java开发工具(Oracle JDeveloper和Oracle Enterprise Pack for Eclipse)一样,成为又一个开源的选择。对Oracle JDeveloper来说,它依然是开发Oracle Fusion中间件产品以及下一代企业级应用的官方指定工具,但是开发人员如果想开发纯Java和Java EE系统的话,那么就可以选择他们自己趁手的免费工具了:JDeveloper、Enterprise Pack for Eclipse,或者NetBeans。
积极的社区互动
还是Delphi,自从CodeGear被Embarcadero收购后,社区对Delphi的未来发展非常关心。特别是在Delphi 2009发布后,开发者以及Delphi社区出现了很多不同的声音,Embarcadero得到的反馈很多都说Delphi 09在性能和稳定性等方面都有很大的提升,提供了很多新功能。公司也在一直追踪着Delphi整个的发展历程,关注着使用者的反馈。在07年Delphi 启用了一个全新的内存管理器,提升到更好的性能和更高的稳定性。Delphi2009的亮点就在于它支持Unicode,所有的运行库,还有VCL、 编译器上都支持Unicode了,全球各地的开发人员都可以开发出本地化的,而这直接就来自于中国、日本、韩国还有俄罗斯和欧州的一些客户的需求,他们原来都需要自己处理,或者是借助第三方库的帮助,来为他们实现多字节的支持。现在Delphi提供了这种无缝的字符串的支持,而用户只要做一个重新的编译就可以了。
回到五月,Visual Studio 2010的Beta 1版本刚刚正式发布。自此Visual Studio开发团队,包括性能专家Rico Mariani,都基于用户反馈来努力提升该软件的性能。在Microsoft Connect站点上公布有大量性能问题相关的报告。Visual Studio项目经理Weston Hutchins对“VS2010慢于VS2008”的指责回应说:我们成立了性能小组来处理问题,例如:过去数月的启动缓慢问题。从Beta以来,我们有效降低了大概30%的启动时间,但我们仍比Visual Studio 2008的启动速度慢。其中的原因是我们现在引导CLR的时间有点长。我们期待未来会有所改善,但并不一定可以到达VS2008的水平。
支持跨平台
MonoDevelop 的最新版本2.2RC已经发布了。这是Novell官方正式支持的第一个跨平台版本,除了支持原本的Linux,现在还支持Windows和Mac OS X。这个版本在带来Windows和Mac OS X安装包的同时,还和这两个平台也进行了紧密的集成,并支持在每个平台上的原生调试。除此之外,MonoDevelop的一大特色是具有丰富的插件,这次带来的新插件有:ASP.NET MVC开发插件、Silverlight开发插件和iPhone开发插件(利用了MonoTouch)。
而Delphi Prism应用可以运行在 .NET/Windows、Mono/Linux以及Mac上,然而VCL.NET已经被废弃了,也不会出现在Prism中了。VCL.NET应用可以移 植到Win32下的VCL上(Delphi 2010中还在继续开发)。Delphi与Oxygene语言非常相像,但却并非完全兼容。只要进行一些调整,应用就可以在这两个环境之间移植。
支持多语言(动态语言)平台
借助于Iron,.NET开发者也能访问这些Python和Ruby这样的动态语言了。如果你打算从C#或VB转到Python上,现在正是一个绝佳的时 机。通用语言系统(Common Language System)保证可以将遗留代码保存为DLL的同时使用IronPython编写新的代码。但有时开发者却想将所有东西放到一个包中。
如果你就是这么想的话,那么SharpDevelop就很适合你了。SharpDevelop 3.1提供了一个特性,可以将C#和VB的代码转换为IronPython代码。这可以通过SharpDevelop的解析库NRefactory在文件或项目级别上实现。
尽管最初仅仅是个Java IDE,但现在的Eclipse早已成长为一个综合性的平台,支持多种语言,如C、PHP、HTML、JavaScript及动态语言,更不必说在 Eclipse基金会之外所开发的平台了(如Scala和Python)。Eclipse Runtime项目不仅提供了基础的Equinox OSGi运行时,还提供了通用的通信框架ECF,P2就利用其从HTTP上下载各种bundle(或是其他服务如Bitorrent,也许不久的将来还能 与Google Wave之类的服务进行通信)。
著名Java IDE,Intellij IDEA的厂商在提供社区版本的同时,也在大力开发为Ruby开发者提供优秀的IDE——RubyMine,并且在1.0版本推出的6个月后发布了2.0 版本,被誉为动态开发的指明灯。在这个新版本中,包括支持Ruby1.9,提供高级重构,支持i18n等一些最新特性。重构特性是其中的重要更新,从 Refactor菜单中,增加了常量和参数的引入、超类和模型提取等功能,同时支持编码过程中的数据类型智能识别,帮助开发者提升编码效率。较之 NetBeans IDE开源免费的策略,RubyMine目前只对于教学指导和培训类的教育应用,以及开源社区的开发者提供了免费的授权许可,但是对于商业用户,需要支付 99美元的授权费用(目前提供20%的折扣)。
支持最新规范
NetBeans开发团队发布了NetBeans 6.8的正式版本。其中一些重要的增强包括对Java EE 6、JSF 2.0的支持,同时还增加了一个嵌入式浏览器等等。该里程碑版中有两个非常实际的特性,分别是对JIRA的本地支持以及对Glassfish更快的增量部署。
从商业转向开源
SpringSource Tool Suite(STS)是个基于Eclipse的开发环境,用以构建Spring应用,其最新版开始支持Spring 3.0及OSGi开发工具。近日SpringSource开发团队发布了SpringSource Tool Suite 2.1.0 RC1版,该版本还支持与Amazon EC2及VMware工具的运行时集成。
过去SpringSource Tool Suite是个商业工具,然而SpringSource的创建者Rod Johnson在今年4月的SpringOne欧洲大会上宣布他们将免费发布STS suite。近日Christian Dupuis就该声明以及最新版本所提供的新特性专门撰写了一篇文章进行深入探讨。
截至本篇文章,Intellij IDEA刚刚发布9.0版本,IntelliJ IDEA为市场提供了两种版本:免费和开源的社区版,完全功能的旗舰版(即从前的IntelliJ IDEA)。 此举的最重大的意义在于,社区版的引入,完全清除了那些挡在广大使用IntelliJ IDEA进行纯Java开发的用户面前的障碍——价格。这个版本不仅免费,而且——这也是尤其重要的——完全开源。 其中包括对Java7的初步支持。
支持敏捷开发过程
在今年7月份IBM推出的Rational Team Concert 2.0是基于Jazz平台开发的下一代协作软件交付技术平台。Jazz 技术平台是以支持协作为目标而精心设计的,能处理团队成员由于时间、地理位置或人事关系而较为分散的情况;是基于IBM在 Eclipse 开源项目方面的工作经验为基础,包含了大量开源和敏捷最佳实践。不论是小团队还是大的开发队伍,都能使用 RTC 进行简单有效的,自动化的项目管理控制。数据和报告可以自动的收集和生成,再加上支持所有人的同时协作,极大的提高了效率,降低了成本。RTC 包含了源代码控制,工作项管理和构建管理等功能,内建支持 Agile,Scrum, OpenUp, Eclipse Way 等项目开发模式,能够满足不同规模开发团队几乎所有的需求。
在 11月份召开的微软TechEd 2009大会上,微软宣布Visual Studio 2010 Beta 2和.NET Framework 4 Beta 2已经推出并提供公开下载服务。在Visual Studio 2010中,内含了基于Scrum开发实践的敏捷开发流程模版。按照微软的说法,通过该模版,广大的开发者可以体验如何整合团队、流程和工具,并像微软一 样进行软件开发工作,获得杰出的成果。
那么未来的IDE会怎么发展呢?我们已经也许可以从一些新面孔上发现端倪。
基于Web的IDE
2009年2月份Mozilla发布了Bespin,这是一个基于web的编写代码的框架,而就在几天以后,Boris Bokowski和Simon Kaegi使用Eclipse无显示插件实现了一个基于Eclipse的Bespin服务器。伴随着EclipseCon上基于web的Eclipse工作台的演示,以及像Heroku这种既是基于web的IDE又是RoR应用托管环境的出现,似乎基于web的IDE很快就会成为主流了。关于Bespin,Mozilla的目标是能够推出一种开放的、可扩展的、基于web的用来编写代码的框架,能够提高开发者的开发效率,带来更加炫目的用户体验,并促进开放标准的广泛使用。
另外,Coderun.com是一款在线开发代码的IDE,它进行可以编译,执行,调试。不过编写的对象主要是C#,ASP.NET,Javascript(JQuery)和 PHP,从社区的反映来说,功能还是很强大的。有趣的是,还有一款Codepad.org可以进行在线的编译代码。
支持新概念
云计算也许是最近比较火的一个大词了,有的IDE也在帮助开发者们无限接近云计算。据微软宣称,只需要一套Visual Stduo 2010开发工具与一种熟悉的.NET开发技术,程序员就能轻易的游走在包括云运算、RIA高交互的互联网应用甚至包括移动与嵌入式装置,掌握最新的技术与商机。
而Amazon发布了AWS Toolkit for Eclipse,它可以在Eclipse环境下让Eclipse实例加载并管理EC2实例。AWS Toolkit for Eclipse是个Eclipse Java IDE插件,凭借它开发者可以轻松开发、部署及调试使用了Amazon Web Services的Java应用。借助于AWS Toolkit for Eclipse,我们还能以更快的速度构建AWS应用且效率更高。 发布AWS Toolkit for Eclipse最初的目的是面向Amazon EC2开发者,提供基本的管理功能和工具来部署并调试Java Web应用。
作者介绍
张凯峰,现就职于某软件外企,从事软件开发和测试工作,熟悉Java和Web相关技术。热衷社区事业,现为InfoQ中文站Java社区编辑。本文部分摘编自InfoQ中文站,特此声明。