在2004年的 JavaOne活动中,有几场主题演讲焦点都在程序开发工具之上,一是去年 JSF 刚出道时所用的 IDE 工具-「 Project Rave 」,现在已正式命名为 Sun Java Studio Creator( 简称 JSC) ;另一项开发工具则是企业级的 Sun Java Studio Enterprise( 简称 JSE) 。 JSE 虽然不算是全新的武器,但在功能上绝对是大幅的改进与创新。
开发 Java 网页只要鼠标拖拉放
Click here to find out more!
JSC 最新的版本结合 JSF 1.1 ,已先内建不少网页组件,利用可视化拖拉放 (drag-and-drop) 的方式,使用者可轻易将各种组件置入网页,之后可再透过属性面版设定各组件的属性与其所要处理的事件。相较过往,只要撰写少许的程序代码,一个丰富的网页应用程序就可诞生。这种程序开发的情境是不是有点像微软的 Visual Basic ?没错,两者方法十分雷同,但本质差异甚大。因为 JSC 所制作出来的可不是一般 GUI 接口的应用程序,而是纯正的 Java Web Application 。
之所以开发此套简易且功能完整的开发工具, Sun 的企图无非是希望吸引更多 VB 或其它平台的开发人员转移至 Java 阵营。有了 Creator ,网页应用程序的开发可以更快速,若再结合 Validator 的应用,撰写网页应用程序的同时,也能正确无误得处理所有输入的数据。
千万不要以为这种快速开发网页应用程序的作法,会与正规的 J2EE 应用程序所附着的开发架构产生违反或冲突。这样说吧, SC 提供与 VB 的 ADO 相似的组件,只要在网页中加入这个组件,某张数据库表格中的数据就可立即显示到网页上 。
或许你会怀疑,过去经常使用的 J2EE Design model ,如 DAO Design Pattern ,是不是就无用武之地?其实此举原意还是不离简化 Java 开发的目的,也是尝试吸引 VB 开发人员的第一步。当入门者顺利转换至 Java 平台且渐渐熟悉 Java 网页应用程序的开发方法之后,再慢慢学习正统的 J2EE 应用程序架构也还不迟。正因如此, JSC 保留相当的扩充弹性,只要使用某些范例( templates )的架构( architecture ), JSC 一样可以与现在常用的 framework 兼容,如 Struts 、 Hirbenate 等,想要开发出规模更大且更稳固的网页应用程序并非难事。
新版 JSE 功能更企业级
假如觉得 JSC 血统不够纯正,不妨试试 JSE 。 JSE 预先整合 Sun 旗下所有的 Java Service 产品,也就是所谓的 Java Enterprise System( 简称 JavaES) ,提供单一的安装、设定、部署的程序接口。此外,新增 IDE 功能是一大要害,再加上有不少 wizard 可使用,以及 Sun 独有的 Java Application Framework( 简称 JAF) ,让 Java 程序开发者可简单、快速地开发完整且强大的 J2EE 应用系统。
JAF 可以说是令 JSE 之所以独特的重要功能。 JAF 是一套对应软件开发不同的应用层次( Layer )所提供的解决方案,像是 Application Layer 的 Security 、 Platform Layer 的 Persistent 、 Foundation Layer 的 Logging 。假如在处理 J2EE 应用系统都还是会碰到这些共通问题,而你尚未有满足的解决方案的话, JAF 或许会是一个不错的选择,你只需要专心处理商业逻辑层次( Business Layer )的事情,至于其它繁琐的基础工作就交给 JAF 吧。
我还是要老实说,若单从比较 IDE 功能优劣的角度, JSE 恐怕不是最好的。市场上深受软件开发人员青睐的 IDE 工具不少,其中又以 Borland 的 JBuilder 最红,其它如 EClipes 、 NetBeans 也都是历史悠久且获好评的 Java IDE 工具。不过,这类工具还是有其缺点-如缺少与服务器端整合的整体架构。
虽然 Application 和 Web Server 是所有 IDE 都会有的服务器,但若要用 LDAP 呢?需要 Message Queue 功能时又该怎办? Portal Server 呢?在此情况下,开发人员往往需要另外安装架设,而每一种应用的安装、设定和部署方式与界面全然不同,这些程序往往会浪费相当多的时间成本。
回头看看 JSE ,由于已预先整合全套的 JavaES ,透过一致的 GUI 设定操作,可降低导入的复杂性,其所开发出的应用系统,也保证符合 J2EE 的标准。另外,系统开发时虽然用的是 JavaES ,但最后部署时,还是可以移植至其它的服务器平台,包括 IBM WebSphere 、 BEA Weblogic ,不仅可预留未来系统扩充与转换时的弹性,还可保障已投资的开发时间与成本 。
Click here to find out more!
值得注重的是,最新 JSE 版本也加入 UML 工具。就跟 Rational XDE 、 TogetherJ 等工具闻名功能相同,设计( Design )跟原始码( Source Code )可以实时同步。 UML 已是设计 Java 应用程序不可或缺的语言, IDE 与 UML 工具相互整合是必然的结合。总不能每次都要开启好几个不同的应用程序,如 Rational 、 NetBeans ,彼此之间再依靠人工同步吧?其实人工也并非全然不可行,但只要系统架构愈来越庞大,就很轻易产生两边不一致的情形。
JSE 还有另一个新功能吸引了我的注重力-聊天( Chat )与实时传讯 (IM ; Instance Message) 。这项功能可身处异地的开发人员可在同样的操作环境中,彼此交换意见或是合作撰写同一份程序代码,开发人员之间的互动将更为紧密,不仅可省下不少沟通时间,也可降低出错机会。
JSC 和 JSE 的出现,让开发人员有了新的选择,我想有些人也许已被高价位与不停改版的 IDE 工具,压的喘不过气,或是使用免费的 IDE ,但往往缺乏整体性与功能。现在,不妨试试这两项新武器。
不用怀疑,工具绝对会影响到一个开发团队的工作进度,一个好的开发工具除功能强大之外,易学易用的接口也是相当重要。假如可再提供全套完整的解决方案,价格又在合理范围内,而且不会局限只能运作在 windows 平台上,我想是很值得投资的。小小的投资,就能让企业赚进更多的钱,何必再用盗版的软件呢?
基础概念还是不能少
当然回归基本面, IDE 工具主要目的还是透过图形化、简单的操作接口处理 Java 程序开发过程中琐碎繁杂的事情,要写出一个好程序或系统,还是要有概念基础。假如你对 Java API 全然不熟悉,只能依靠 wizard ,当然你就无法把握所开发系统的架构,而 wizard 无法做到的事情时,如最佳化( Optimization ),往往就会不知从何下手,到最后只会变成「被工具所使用」。
有些开发者喜欢完全驾御的感觉,完全不用工具,只用简单的文字编辑器。当然,就像手排车与自排车,两者之间并没有一定的优劣,全凭个人的喜好或是团队合作方式与开发目标与时程计划。
我想再多的文字说明,也比不上直接观看演讲的内容,就算没机会亲自至会场上参与这些具有代表性的活动,但透过网络一样可以欣赏出色内容, 2004 JavaOne 所有议程内容可 至此下载 。若你已是 JavaOne Online 的会员,还可至 JavaOne Online 网站,收听今年与 2002, 2003 年 JavaOne 内容或是下载所有相关的投影片数据。
假如你有爱好下载今年活动的议程内容,不妨听听享有「 Java 之父」美誉的 James Gosling 的主题演讲。 James Gosling 对上述的开发工具有更为详尽的介绍,同时也展示利用上述工具所撰写的各种精采应用。
正如 James Gosling 演讲的题目「 Stretch your mind 」,走了一趟 JavaOne ,我的视野更宽广。 Java 不会只在 Java Application 、 Web Application 、 J2EE Application 、 J2ME Java Games 能有所发挥,模拟一下微软的广告标语「发挥想象,创意无限」,其实 Java 在各个领域与平台之上,也有相当完整的解决方案和技术支持,至于能不能创造商机,全靠开发人员的创意与聪明, Java 已经预备好了,那你呢?