技术开发 频道

细评软件开发中的非常好的开源工具

【IT168 开源分析】如今,大量的优秀的开源软件开发工具对开发者社区来说是天大的好事,不过对于颁奖委员会来说却让他们难于抉择。

    看一下开源软件中的集成开发工具(IDE)、调试器、BUG管理软件、代码覆盖分析工具、单元测试工具、负载测试工具等等,除了上面所列出的之外,我们还能想出更多的工具。然而,这却也让我们陷入麻烦之中。我们能够真正的选择出一门非常好的语言吗?或者一个最好的开发平台?我们能认为Python就比Perl强大,或者Rails比Mono好吗? 

    实际答案是:不。但是这证明了开源已经是在IDE、富互联网应用(RIA,Rich Internet application)、Ajax工具和持续集成方面的获胜者,在所有这些领域,开源工具和软件已经能达到或超过它们的商业竞争对手工具。

一、NetBeans挑战Eclipse 

    在开源IDE方面,如果你只看市场份额的话,在Eclipse与NetBeans之争中Eclipse无疑早已经是获胜者。但是,在创新方面,却很难清楚的说出谁是获胜者。在过去两年中,Eclipse已经逐渐转型为一个平台模式,而不仅仅是一个IDE,即它可以作为一个基础框架来支持合作伙伴的众多插件。在功能上,Eclipse支持大量的扩展,不仅仅是一个Java开发工具,更可以用来开发C、C++、PHP等。 

    相比之下,NetBeans已经成为轻量级、反应迅速和容易配置的IDE。它可以提供优异插件,它的Matisse GUI图形设计器、性能剖析器和在线协作工具都是各自分类中的佼佼者,并且都被无缝地集成到这个IDE中。 

    今年,NetBeans开发团队已经鼓起勇气对其代码编写体验进行完全的重新设计,模仿具有最好用户友好性的Java编辑器IntelliJ,使其用户体验大大改善,对于它作出的质量重于数量的承诺,以及其为了提高开发者效率而重新设计模块的勇气,我们就应该向NetBeans团队和它的这个重要的IDE致敬。NetBeans无疑在开源IDE方面是获胜者。

二、富互联网应用程序方面的获胜者

    富互联网应用程序(RIA)将桌面式应用程序的用户体验带到基于浏览器的应用程序中,目前它已经分化为两大阵营:一部分是使用DHTML,其中大多数AJAX工具集属于这个阵营;另一类则是利用Adobe公司的Flash作为浏览器中的展现层。这两种方式各有其优点和缺点。它们都获得了大范围的应用,我们将从这两个阵营中选出各自的非常好的。 

    Flash应用软件克服了AJAX用用程序的一个重大不足,即对跨浏览器兼容性支持的问题。使用Flash编写的互联网应用程序几乎可以支持所有主流的操作系统平台和浏览器,完全实现了Java Swing曾经宣称的“一次编写,随处运行(Write Once, Run Everywhere)”的承诺。根据Adobe官方网站的统计数字,Flash 9在全球市场中占据了90%以上。针对Flash应用程序的领先的富互联网应用程序工具包括来自Laszlo公司的OpenLaszlo和来自Adobe公司的Flex。 

    无论是OpenLaszol还是Flex,它们最初都是商业产品。Laszlo公司在2004年将OpenLaszlo作为开源软件发布;而在2005年从收购Macromideia而获得Flex的Adobe公司则最近宣布,计划在Mozilla公共许可下发布Flex。根据这个计划,这个系统将在2008年初变为一个完全开源的项目。在2007年6月份作为测试版发布的Flex 3.0包括几个独特的功能:支持Adobe整合应用程序(AIR,一个让Flex应用程序可以在浏览器之外访问桌面和应用程序的环境)和一个基于通用Eclipse平台的集成开发环境,被称为Flex Builder,但是,这是一个商业化的应用软件,并不是开源的。 

    现在对比这两个系统,几方面的因素可能让OpenLaszlo更具优势。尽管Flex是一个强大的产品,但是它还不是完全作为一个开源项目来运作,它缺乏OpenLaszlo所具有的社区。精通OpenLaszlo的开发者非常容易可以找到,而且Laszlo公司已经使用OpenLaszlo开发了好几个大型的应用程序,这意味着其底层代码已经相当稳定、成熟和经过验证。进一步来说,OpenLaszlo的编译器能够从相同的源代码产生基于Flash和DHTML的图形化界面。因此尽管Flex和OpenLaszlo是两个实力非常接近的对手,但是在现在来言,OpenLaszlo无疑在富互联网应用程序的真实开发世界中具有领先优势,因此它赢得了我们在富互联网工具方面的大奖。

三、开源AJAX工具

    与基于Flash的富互联网应用程序相比,DHTML应用程序一般来说更好的被今天的开发者所理解。它们使用JavaScript在后台通过HTTP动态的加载XML,从而给Web应用程序一个更流畅的感觉。这种方式的缺点是受浏览器的影响比较大。 

    当前围绕AJAX的开发活动已经在呈暴涨的趋势,同样情况的还有开源AJAX工具的数量。诸如此类的工具比比皆是,例如Dojo、Rico、Prototype,还有来自Google、微软、Zimbra和Yahoo的工具,但是我们的不得不充实这些工具的前辈: Tibco General Interface,这是Tibco通过开源BSD授权发布的Ajax RIA库。在这个RIA库中包含了100多个Ajax组件,并且还提供相应的可视化开发工具(Tibco Business Studio),这个Tibco的工具专注于企业开发,使用它所开发的应用程序几乎与桌面应用程序没有什么区别。

四、持续集成(CI,Continuous Integration)工具 

    持续集成是最近在企业中逐渐得到应用的一个非常好的实践。它源自于XP(极限编程),随着XP社区在近几年的壮大,XP的很多实践得到了广泛的推广,持续集成就是其中之一,但是持续集成并非 XP的专利,持续集成完全可以应用在采取非XP方法(例如RU)的项目里面。 

    借助于持续集成,开发者可以避免不断的召开“除虫会议”,在集成阶段出现的bug早在几周甚至几个月之前就已经存在了,导致开发者需要在集成阶段耗费大量的时间和精力来寻找这些bug的根源。 借助于持续集成,这样的bug绝大多数都可以在引入的同一天就被发现。而且,由于一天之中发生变动的部分并不多,所以可以很快找到出错的位置。如果找不到bug究竟在哪里,你也可以不把这些讨厌的代码集成到产品中去。所以,即使在最坏的情况下,你也只是不添加引起bug的特性而已。 

    尽管持续集成是最近才出现,还有有许多开源的持续集成服务器可以供企业选择。毫无疑问,其中最好的就是CruiseControl。大多数情况下,它比竞争对手拥有更多的开发工具,包括众多的源代码管理系统、创建系统和报告产生工具。CruiseContrl还具有在Java、Ruby和.Net上运行的版本可用。而且,诸如Agitar之类的工具厂商已经开始将CruiseControl嵌入到它们的产品中,因为它具有丰富的扩展功能和可伸缩性。随着企业越来越了解持续集成的好处,CruiseContrl将成为衡量其他持续集成解决方案的标尺。

0
相关文章