sharky的点滴积累

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  56 随笔 :: 104 文章 :: 10 评论 :: 0 Trackbacks
   近两年来Java IDE的市场异常热闹,面对开源社区Eclipse与日俱增的吸引力,曾经的王者JBuilder感受到从没未有过的压力。Borland沉寂了一年之后,终于推出了JBuilder 2006,其开创性的P2P对等协作功能和决定以Eclipse为基础的重大调整预示着JBuilder正在实现战略性的演化。

  从丑小鸭到天鹅的演化:Jbuilder的发展史

  JBuilder诞生于1997年,时至今日,已走过了8个年头,先后发布了12个版本(JBuilder 2006的版本号为12)。在JBuilder的发展历程中,创新,追逐最前沿的Java技术一直是JBuilder秉承的发展理念,快速升级、不断地增强功能也是其区别于其他IDE的特色之一。

  Borland每个版本的升级大约在半年的时间内完成。升级所用时间最长的前三甲分别是JBuilder 2006/Peloton,JBuilder 3.0/3.5及JBuilder 2.0。

  在这三次升级中,Borland都对Jbuilder的发展方向做了战略性调整。让我们短暂回顾一下JBuilder的发展史:Borland在1997年推出JBuilder 1.0,1.0的版本市场反应并不理想,原因是多方面的。首先Borland进入Java IDE领域相对较晚,在Java IDE上的经验不足,其次,Microsoft在30个月内挖走了Borland 30多名重要雇员,除了众所周知的Anders Hejlsberg之外,还包括研发副总裁Paul Gross,暂时还没有找到合适的替代者。

  但不久之后,老天又开始眷顾起Borland ,她将Java天才Blake Stone带进了Borland,弥补了其人才流失所造成的重伤(注:2004年Blake Stone也被微软挖走)。Blake Stone旗帜鲜明,立志将JBuilder从原生的Window IDE改造成纯Java的IDE。这一战略性的转变是重大而富有挑战性的,1998年10月所推出的JBuilder 2.0并没有完成这一宏伟的目标,但终于毕其功于一役于JBuilder 3.5。

  2000年3月14号对于JBuilder是一个值得永远记念的日子,因为Borland于当日推出了JBuilder 3.5,这是Borland的JBuilder小组在历经数年的不懈努力后,推出的第一个100%纯Java血统的IDE;更重要的是Borland凭借JBuilder 3.5非凡表现实现了其称霸Java IDE市场的梦想。至此,Borland开始雄踞Java IDE的头把交椅,独占鳌头,把Symantec的Visual Café,IBM的VisualAge for Java,SUN的Workshop及Microsoft的Visual J++远远地甩到后面,实现了其命运的大逆转。

  从4.0版本到2005版本,JBuilder的发展更象是一场场战术上的演进,推进和提升的速度都相当平稳。当然这之中也有许多出彩的表现:如引入ALM(Application Lifecycle Management:软件生命周期管理)、SDO(Software Delivery Optimization:软件交付最优化)、团队开发、代码审查,性能优化(Optimizeit)等优秀的IDE设计理念。

  JBuilder 2005 在去年9月发布,JBuilder 2006直到今年9月2号才发布,相比以前几个版本的升级,这次升级所用的时间是很长的。从图 1的JBuilder版本升级速度统计图中,可以很明显地看到这个不小的变化:

凤凰浴火:JBuilder2006新功能赏析
图 1 JBuilder 版本升级速度统计图

   然而近两年来在Java IDE的世界,Eclipse横空出世,一路攻城掠地,势如破竹,如巨大的磁铁,迅速地吸引了大批的追随者,成为Java IDE领域强劲的竞争对手,更可怕的是它的吸引力和影响力还在快速攀升。Eclipse的成功吸引了大批JBuilder用户,JBuilder 王朝出现了巨大的危机!JBuilder再次走在了十字路口。

    Jbuilder 2006 低谷中的自救

  JBuilder 2006于今年9月2日推出,这个版本应该说是JBuilder战略调整中的一个过渡性版本,一如JBuilder发展史上的JBuilder 3.0一样。在这个版本里,JBuilder带给我们最大的惊喜就是"对等协作",整合分布式团队的协同工作能力是该版本最大的特色,笔者将另辟章节详细介绍。

  根据Borland 2004年制定的一个JBuilder 发展线路图,Borland将于2006年上半年推出另一款代号为Peloton的JBuilder 2006。Peloton将以开源Eclipse作为其底层技术架构,目的就是整合与其他开发商产品的协同能力(到时Eclipse可以用插件,JBuildre一样可以用),以后JBuilder将调整到以Peloton为基础的发展道路上来!

  在JBuilder的发展史上,3.0版本和2006版本的升级有着许多的相似之处,首先它们都花了1年多的时间;其次,它们都出现了两个分支版本;还有,它们都是战略性的升级:前者将原生性的Window IDE打造成纯Java的IDE,后者的底层技术架构调整为Eclipse。

  这里我又要穿插一点Eclipse的历史,IBM的Visual Age For Java原来是一个不错的Java IDE,但在JBuilder强劲攻击下,Visual Age For Java的城堡唯余片片断壁残垣,遍体鳞伤的Visual Age For Java气如游丝,眼睁睁地看着JBuilder远远地将自己抛到后面,终于在2001年12月, IBM宣布把Visual Age For Java 开放给Eclipse计划,结束了其5年来Java IDE市场上的角逐。历史真是让人玩味:想不到时不过4年,这位JBuilder曾经的手下败将戏剧性地演变成了富有侵略性的复仇者。

  但JBuilder是不会被击倒的,Borland不但是一位身经百战的斗士,更是一位富有远见卓识的谋略家。Borland的决策者们一定深谙其前辈林肯的韬略:林肯说过消灭你敌人最好的办法就是让其成朋友。这次,Borland将这句话发挥到极致了,让Eclipse跨过朋友成为家人――JBuilder以Eclipse为基础构架。也许所有曾经或正在为JBuilder和Eclipse孰优孰劣而沫星四溅的争辩家们都被开了一个天大的玩笑:因为他们的所有论证,攻诘和现身说法都变得毫无意义了。

  就象牛顿踩在开普勒、伽利略、惠更斯、胡克等人的肩膀上一样,当明年的Peloton发布后,JBuilder则踩在Eclipse、TogetherSoft、TeraQuest Metrics、VMGEAR的肩膀上,并完成对他们的超越。

    对等协作 JBuilder 2006最具特色的新功能 

  9月2日发布的Borland JBuilder 2006创造性引入P2P对等协作功能,使开发团队能够跨越地域的限制进行即时交互(chatting, editing, designing, and debugging),实现虚拟化团队编程(Virtual Peer Programming)。

  下面我们模拟两个团队成员(Tom和Angel)在局域网内的具体协作过程来说明JBuilder 2006的对等协作新功能。

  1) Tom打开JBuilder 2006,通过JBuilder 2006中新的菜单Collaborate菜单设置协作账号的属性: Collaborate->Peer to Peer Properties…->打开Properties对话框,如图 2所示:

凤凰浴火:JBuilder2006新功能赏析(3)
图 2 设置协作账号的属性对话框


  这里,Tom仅简单地设置了自己的名字,通过Choose Icon…按键可以选择一个图标。

  2) Tom创建一个名为testPro的工程,在工程中通过File->New…->General->Application创建一个Application,其主入口类名为App,主窗体类名为MainFrame。

  3) Angel在局域网的另一台机器上启动JBuilder 2006,如1)步一样建立一个名为Angel的协作账号。

  4) Tom将工程窗格切换到Peers的标签页上,将发现JBuilder 2006已经自动探测到了Angel,并将Angel列在可选协作人员名单中,如图 3所示:

凤凰浴火:JBuilder2006新功能赏析(3)
图 3 建立协作联系


  Tom双击Peers标签页中的Angel,JBuilder窗体右侧出现一个Collaboration对等协作窗格。Tomo可以通过这个窗格和Angel进行对话,进行初步联系。

  5) Tom单击Collaboration窗格的凤凰浴火:JBuilder2006新功能赏析(3) 图标将testPro.jpx工程共享给Angel,Angel的JBuilder中将马上出现来自Tom共享工程的通知信息,提示Tom正要将testPro的工程共享给她,如图 4所示:

凤凰浴火:JBuilder2006新功能赏析(3)
图 4 Angel被告知Tom正要共享工程给她


  Angel仅需点击testPro.jpx的链接即可获得Tom的testPro.jpx工程的共享权。当Angel接受了Tom的共享工程后,Tom端的JBuilder自动将testPro.jpx整个工程的文件发送给Angel,并在Angel的JBuilder中展现。此时Angel所看到的内容和Tom是完全一样的,可以称其为Tom JBuilder的"镜像JBuilder",但此时Angel还不能对工程的文件进行任何修改。Angel将工程窗格切换到Project标签页上,可以看到这个文件现在处理Remote Read Only状态,如图 5所示:

凤凰浴火:JBuilder2006新功能赏析(3)
图 5 Angel的工程窗格显示共享工程的状态


  在JBuilder 2006多人协作的环境中,同时只能有一人拥有编辑工程的权限,在获取工程的编辑权限之前必须得到工程的令牌(Token)。工程的拥有者(我们的例子中是Tom)可以将令牌传送给协作中的任何一个人,也可以从执有者手中取回令牌。
 6) Tom在Collaboration窗格中点击 凤凰浴火:JBuilder2006新功能赏析(4)图标,在下拉的菜单中点击Angel,这样,Tom就将工程令牌传给Angel了,如图 6所示:

凤凰浴火:JBuilder2006新功能赏析(4)
图 6 Tom将令牌传递给Angel

  7) Angel在得到令牌后,就拥有了编辑工程文件的权限。注意:工程窗格工程结构树文件后的标识已经从[Remote Read Only]转变为[Remote]。Angel对工程文件的任何编辑将会即时同步到Tom的JBuilder中。Angel打开App.java文件,将第25~35行置为同步编辑状态,将screenSize变量改变为screenSize1,如图 7所示:

凤凰浴火:JBuilder2006新功能赏析(4)
图 7 Angel对App进行编辑

  Tom的JBuilder界面即时看到了Angel的这个调整,Angel还通过对聊窗口对Tom说:"我将screenSize变量调整为screenSize1",如图 8所示:

凤凰浴火:JBuilder2006新功能赏析(4)
图 8 Tom看到了Angel的更改


  8) 对等协作不但可以同享编辑器,还可以共享UI设计器。Angel打开MainFrame.java,并切换Design视图页上打开UI设计器,对MainFrame的界面进行设计。此时Tom的JBuilder也将自动切换到MainFrame的设计窗口中和Angel的JBuilder保持同步。Angel在MainFrame的界面上添加了一个按钮,如图 9所示:

凤凰浴火:JBuilder2006新功能赏析(5)
图 9 Angel通过共享设计器设计界面

  Tom在自己的JBuilder中马上也看到了这一变化,就好象幕后有一双无形的手在操作在自己JBuilder中设计着MainFrame界面一样。

  9) Angel完成了设计工作后,Tom通过Collaboration窗格中如下的操作收回编辑令牌:

 凤凰浴火:JBuilder2006新功能赏析(5) 
图 10 Tom从Angel手中取回令牌


  收回令牌后,Tom即可以对工程进入编辑了。同样的,Tom对工程所做的任何编辑动作将即时同步到Angel的JBuilder窗口中。

  10) 在这一步里,Tom要和Angel进行共享调试的协作。Tom在工程窗格在App.java中右击,在弹出的菜单中选择Debug using "App",此时Tom的JBuilder调出调试信息窗格,Tom对程序进行单步调试跟踪,Angel的JBuilder也同时反映出相同的操作。虽然Angel此时不能进行调试的控制(如单步运行、跳过方法、移到下个断点等),但她可以通过Add Watch窗口查看运行期变量信息,如下图所示:

凤凰浴火:JBuilder2006新功能赏析(5)
图 11 Angel在共享调试窗口查看运行期变量
  11) 在完成一系列对等协作后,Tom可以通过Collaboration窗格的凤凰浴火:JBuilder2006新功能赏析(5) 按钮,收回工程共享的权限。

  对等协作除可以在协作成员间共享编辑器,设计器、调试器、并进行对聊的功能外,JBuilder的对等协作还可以传送文件,发送URL连接,发送运行期的堆栈迹,此外令牌的执有者还可以将当前编辑器所处的程序代码的位置通过Send Line Like发送给其他成员,使其他成员编辑器定位到相同的地方,如所示:

凤凰浴火:JBuilder2006新功能赏析(5)
图 12 编辑器位置协作定位

  这不啻为是一个细心的功能,因为团队成员位于不同地方,在协作时,当你希望其他成员转向某个程序文件的某行代码时,往往需要花费一番口舌,但有了这项贴心的功能一切变得一蹴而就了。

  此外JBuilder还允许对传输进行安全的设置,对传送的信息进行加密和认证,确保协作的安全。

  如果JBuilder端点分布于WAN上,JBuilder则使用一种称为Jabber的开源即时信息发送协议,为了和远程的端点协作,你必须在Jabber Server上创建一个帐号,可以通过http://www.jabber.org来了解更多关于Jabber的信息。
   JBuilder 2006的其他新特性

  JDK 5.0的支持

  虽然在JBuilder 2005中已经可以开发基于JDK 5.0的程序,但JBuilder 2005自带的JDK却是JDK 1.4版本的,需要从SUN下载安装并在JBuilder 2005中配置,才可以使用JDK 5.0。但JBuilder 2006自带的JDK就是JDK 5.0,你无需再做任何的事情就可以使用了。

  J2EE和EJB的提升

  JBuilder 2006支持J2EE 1.4和EJB 2.1,并支持目前市场上最新的J2EE服务器,包括Tomcat 5.5,WebLogic 9.0,Websphere 6.0和JBoss 4.x。

  Web开发的提升

  JBuilder 2006大力加强了对JSF的支持,包括新增了一个DTO/Fa?ade向导,用于创建JSF的客户端。JSF的流程设计器的功能得到了显著的改善:现在你可以从流程设计器定位到另一个JSP的代码上,可以从一个流程设计器转到另一个流程设计器,此外流程设计器的ErrorInsight的功能得到了优化。

  Struts是当前最流行的Web层框架技术,JBuilder 2006所支持的Struts版本提升到了Struts 1.2。

  Web services

  Apache Axis的web services工具箱更新到了1.2.1版本。好几个Web Services的UI设计界面得到了调整以支持J2EE 1.4。JBuilder 2006现在同时支持1.0和1.1两个版本的Interoperability (WS-I) 的Web Services测试工具。

  总结

  在历时一年之久之后,Borland部分地完成了对JBuilder 2005的战略升级。其开创性的对等协作功能大大降低了分布式团队的协作成本和难度。对等协作使分布式团队跨越了地理上的限制,将团队的智慧和开发力集中到了一起。那些因为地域的限制正准备打点行囊赶赴会战点的开发成员,有了JBuilder 2006的对等协作的帮助,就可以为省却旅途颠簸之苦而欢呼了,老板也将因为节省了一大笔差旅费而暗自庆幸。

  当然,最终完整版的JBuilder 2006还没有推出,以Eclipse为骨架的这个JBuilder混血儿究竟有哪些惊世骇俗的表现?我们还在引颈期待中,但Borland这次令人眼花缭乱的组合重拳,已经依稀让我们看到了JBuilder 2006脱胎换骨后凤凰涅槃的英姿。

posted on 2005-10-19 15:09 sharky的点滴积累 阅读(176) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: