Java2007预想(简译Java 2007: The year in preview)(下)
作为桌面语言的Java平台
当一些程序员选择用Java代码来编写他们的桌面应用程序的时候,绝大多数是因为对跨多个平台发布的渴望的驱使。对用Java平台作为桌面开发语言的兴趣,是跟非微软桌面的数量密切相关的。让我们关注一下,之前的一年,Java在三个主要桌面环境里的发展情况。
明年,Swing将继续在它的窗口外观和感觉上得到小的改进,特别是切换到开源开发后。结果,像LimeWire这样的纯Java程序,比在 Windows上更加像一个本地化的程序。但是开发本地化的Windows应用程序选择的语言仍将是C#(还有一些仍在坚持使用的C和C++),平台将是.NET。Java代码将不会产成任何影响Windows生态系统的印记。
跟微软一样,苹果公司大量抛弃Java代码。Apple热衷于Object-C和Cocoa,但是最终的结果是一样的:只在Mac上开发的开发人员继续被迫放弃Java编码作为Apple上首选的开发语言和环境。
另一方面,当Apple不再在其自有的API(比如,QuickTime和Cocoa)上提供对Java编码的支持时,Apple上的Java虚拟机比前些年更加成型。Apple的Java 6不久将发布。不像Sun的JDK,它将不是开源的,但是无论如何开源程序员都将开始修正它的BUG。
GPL许可将使把Java代码和开源Linux发行版本绑定成为可能,即使是最纯粹的发行版,这将使Java平台成为Linux开发中最吸引人的语言。如果这些仅仅是早五年发生,Linux社区这些时间里也许就不必同C语言一起苦苦挣扎了,Mono语言也不必要了。Gnome和KDE已经有了Java绑定,所以在下面的这一年中应该给予它们更多的关注。也期望至少能启动一个重大项目,用Java代码来开发一套Linux的GUI程序,就像用C、C++或 C#作为开发语言那样。 Ruby赢得赛跑
如果我们只用一种语言,那么全世界都将变得无聊。虽然对成熟的应用程序开发来说,Java平台是一个优秀的选择,但是它从来没有正真的符合的小型程序和宏的开发需求。Java 6表明了这点,它加入了javax.script包,用来同脚本语言(比如BeanShell、Python、Perl、Ruby、ECMAScript和Groovy)进行互操作,就像一个可以动态调用的虚拟机指令一样,允许把动态输入的语言直接编译到Java虚拟机上运行。
2007年,我将通过Ruby挣钱,虽然它实际上不是我个人最喜爱的。Python显得比Ruby更加清晰和易于理解,我想大多数Java程序员都会同意这一点。然而,Python出生在了一个错误的时候。许多程序员不得不在学习Python和学习Java之间选择,大多数人选择了Java。现在他们已经最终消化了Java的语法,准备再在他们的工具箱里添加一种语言的时候,他们需要的是未来的语言,而不是过去的语言,这样一来,只会是Ruby了。最重要地, 应用在Ruby on Rails中的Ruby绝对是一个杀手。它的易用性极大地吸引着那些灰心的Java企业版(JEE)开发者团队。
除了Rails之外,JRuby计划提供了同现有Java代码和类库的集成,这一点同其他脚本语言做得一样好,甚至更好。实际上,JRuby可能超越标准的Ruby发行版,成为Ruby程序员首选的平台,不仅仅是Java程序员另外做一点Ruby那么回事。这个多好。Python程序员会反对了,像JRuby那样的东西,他们早几年就做出了最好的——Jython,他们是对的,但是我们讨论的是2007将发生什么,而不是什么应当发生。也许不好,但是事实:Ruby有冲劲,但是Python没有。 其它脚本语言也将逐步被挤压。Perl是一个太过时的语言,不能很好地适应现在的应用程序。Groovy苦于缺乏一个清晰的展现,对计算机科学术语的过分使用降低了它可用性和交互性。BeanShell、Jelly和其他大概有半打的脚本语言,从来没有吸引过足够的跟随者。到明年的这个时候,竞争将会结束,Ruby将变为Java程序员脚本语言的选择。IDE变得更好 2006年的IDE之争,再次证明了竞争的好处。由于受Eclipse压迫,Sun投入了一些精力和资源在NetBeans上,终于让它开始像一个强大的竞争对手了。2006年底前,在一些方面,NetBeans甚至超越了Ecplise。它具有相当占优势的本地化的外观和感觉,在GUI设计方面提供了更好的工具。它所不具有的是Ecplise社区。更多的插件和第三方产品是基于Eclipse的,至少在数量上是这样,并且这一趋势还在加速。
同去年一样,Ecplise在即将在2007年发布的3.3版本上继续努力。今年,Sun也许也会成功的发布NetBeans 6。两者都不是重要发布版,他们仅仅是在这里那里添加一些小的特性,修正bug,清理他们的用户界面(也许不是很必要)。
NetBeans可能继续争夺Eclipse的市场。它起步地太迟,所以有更多的空间成长。(Sun将NetBeans和JDK捆绑下载,对两者不无好处。)年底,这两个IDE可能平分市场。
与此同时,感到满意的Intellj IDEA用户继续会奇怪,这些争论是为了什么,他们会继续坚持他们的信仰,Intellj IDEA是可用的最好的Java IDE。然而,因为其500美元的标价,绝大多数用户无法看到它,所以它的市场份额会继续在5%左右徘徊。 Java企业版
没有哪一部分Java编程像Java企业版一样成功,也没有哪一部分遭受像它一样的斥责。它是一个让人又爱又恨的技术。Java企业版是复杂的、令人困惑的,也是重量给的。没有其他部分的Java编程有如此多的第三方产品来完全或部分替代它:Spring、Hibernate、Restlet、aspects、Struts等等。虽然如此,大多数Java程序员的招聘还是需要JEE经历,所以Sun必须为此做些什么。
在企业环境中,我看到的趋势是对简单化的需求。大型框架出局,小而简单的被采用。不断地,客户拒绝大型的JEE,这个仿佛还在继续。作为替代,客户开始转向更加简单的框架,比如Spring或者完全脱离Java平台的Ruby on Rails。对简单、更易理解系统的需求,驱使人们去关心SOAs(Service oriented Architectures) 和 REST(Representational State Transfer)。
我们可以期望这种简单化的驱动力在2007年里延续。许多深受Rails影响的人开始在其他语言中复制它的成功,比如Python(Turbo Gears)、Groovy(Grails)和Java(Sails)。也许,这些中的某一个会成功,然而,地平线还是不会出现新的“银弹”。因此,商家们将继续采用现有的技术:SOA、REST和Rails。
Java微型版
从最大到最小,在嵌入式领域,我们期望什么?这些年,Java平台在小型系统上已经取得了令人惊奇的成功,2007可能将在这些成功上继续。首先,查看第三版的MIDP(Mobile Information Device Profile),提升了现在更为强大的设备的能力。特别地,我们不久将可以在一个虚拟机上运行几个MIDlet,包括在后台运行一个或多个。也可以查看到加密记录管理系统(RMS,Record Management System)的存储和IPv6的支持。
当前在开发中,适用JavaME的可扩展的2维矢量图形API应当在可用于许多设备的动画功能上提升。除SVG动画,也应该使声音和影像流可用。如果移动网络开放,这可能非常重要,想想看在手机中浏览YouTube。(当然,如果网络不开放,没人愿意看两英寸的公司广告。我对美国的情况表示悲观,但是欧洲也许对它感兴趣。)
移动开发者也能期望看到第一部支持XML API for Java ME的电话。这个API从SAX、DOM、StAX和JAXP中精心挑选出来的子集,来适应电话的有限内存环境。许多人想实际的XML不能适用于电话,今年我们能够知晓他们是对还是错。 尽管好消息不断,Apple的iPhone仍然扮演着作为移动开发平台的Java平台的最主要威胁的角色。iPhone已经发布6个月了,现在已经是这个星球上最热门的、最具吸引力的电话。问题是它将成为一个相对封闭的平台,甚至在电话网络标准上,它将不会运行Java代码。不用多说,这对于那些试图为移动电话、PDA和个人通讯设备购买第三方应用程序的人来说是一个可怕的消息。小结 考虑到JDK的开源,2007肯定将是Java变成中自互联网炸弹(dot bomb)以来最令人兴奋的一年。直至目前,Java平台一直受Sun公司的目标和投资能力所制约,但是这大概要发生变化了。随着开发者社区坐上掌舵者的位置,我们期望能够看到Java编程能够立刻向各个方面发展。开发者将能够对Java代码做比以前更多的事情。桌面、服务器和嵌入式:所有的都将加速。是的,前进的道路上将会有巨大的失败,但这也是快乐的一部分。好的想法将生存下去,坏的将失败。如果您对 Java 平台有任何不喜欢的,或者一直有迷惑的地方,启动您的 IDE,开始改造吧!
女士们、先生们!启动您的编译器吧! 本文出自 51CTO.COM技术博客 |


upsky
博客统计信息
热门文章
最新评论
友情链接