科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道展望Java开发:把握现在,把握未来

展望Java开发:把握现在,把握未来

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

事实上,如果稍稍留神一下,我们在过去的几年里注视着Java不断地从一种语言演变成为一个真正的平台。

作者:ginge 来源:Matrix 2008年4月7日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

把网撒开

  然而, Groovy并不是2007年动态语言阵营的唯一参与者。2006年发布的Java 6版本引入了一个与动态语言交互的标准API,很多Java开发者在去年临近年底才开始体验。对该API进行旗舰式集成的是Rhino。但是,看起来在 Java7版本发布时还会有更多集成进来。

  最早进行集成的语言之一不容置疑是JRuby,1.0版本的发布和令人咋舌的比Ruby本身运行速度还快的实现,使得它备受瞩目。像 Groovy一样,由于可以使用更加宽松的语法,加入了一些特殊机制的JRuby(它可以使 RubyJVM里运行,且与正常的Java对象交互)使Java开发更加简单。例如,使用Ruby可以增强标准的对象,象用Ruby的String操作会更加容易。在标准的Java里,检查一个String实例是否为空值可能要做象如下方法的一样的操作(这是一个Apache commons-lang的 isBlank实现)。

  

     public static boolean isBlank(String str)

     { int strLen; if (str == null || (strLen = str.length()) == 0)

     { return true; } for (int i = 0; i < strLen; i++)

     { if ((Character.isWhitespace(str.charAt(i)) == false))

     { return false; }

     }

    return true;

    }

  在Java 里,String是一个final类,所以你无法为了让String类型支持一个象isBlank的方法而扩展它。后果是,你不得不依赖第三方类库,象 common-lang。有了Ruby,你就可以在Ruby的String上另外定义一个blank?方法,如:

  class String def blank? empty? || strip.empty? endend

  实际上,Ruby式的动态允许运行时添加额外的行为到核心类库或任意对象(象给String增加一个blank?方法)。更进一步,JRuby可以进行反作用对核心Java对象增加方法。因此,稍一施法就可以给Java String类添加一个blank?方法。

  开放Java核心

  去年Java的开源意味Java平台的发展不再由Sun核心工程师们说了算了:现在它的前途由我们掌握了。对Java类库,Javac,甚至JVM本身都采取GPL协议,OpenJDK保证将会开创一个创新的周期。实际上,我们已经看到了。

  在2007 年十月,一个名为Multi-Language VM的项目在OpenJDK旗下开展了。这个项目旨在通过修改Java的底层架构,实现“以JVM特性为原型,高效支持Java之外的语言”。很明显,这项目结合了去年最令人振奋的两个发展潮流,也就是围绕在动态语言的热衷和OpenJDK,这宣称我们处在了一个Java核心创新的时代。

  Sun 的开放当然不是从OpenJDk开始的,而是Glassfish,作为Sun支持的开源应用服务器,它在2007自始至终获得了社区更多的追捧。最近,我们无法忽略Sun对MySQL AB的收购, MySQL背后的公司是MySQL AB,而MySQL似乎是当今最流行的开源数据库。

  所有这些发展都表明Java的鼻祖采取了一种受开源软件很大影响的商业模式。这意味我们在2008或者更远将看到Java平台更多的开放。当然,这会对Java生态系统的商业方面产生深远影响。相比最近Oracle以70十亿美金收购BEA,这似乎很绿色,很健康。

  Google flexes

  移动Java领曾经变的不景气,但是临近2007年尾时,却因Google的Android平台的发布而重焕青春。Android的目标是为新一代移动设备引入应用软件,且运行在由Google主导的开源操作系统之上。虽然Android是一个完整的平台(很像Java),但是构建Android应用程序的SDK却是建立在Java之上。

  此外,Android的Java与J2ME的Java 截然不同。实际上,在JVM层面,Android的JVM就已相当独特了。除了运行专门为Android而设计,高度优化的字节码格式的代码,它不可以运行标准Java字节码。移动设备上运行不同实现的Java意味这我们将可以看到一些有趣的应用程序――当然,这也仅进一步说明了Java的无处不在。

  2007 年Google在Java世界移动领域之外也进展的很顺利。但是,备受关注的是Guice的发布,Guice是一个基于Java 5注解和范型的依赖注入开源框架。虽然IOC市场上的佼佼者还是Spring,因其摒弃XML文件,提倡使用注解和Guice本身的Module类型,注定了Guice在公开发布时就是一个先行者。

  考虑到Google对第二代IOC框架的影响和Google AdWrods本身的基础架构都是依赖Guice的,Guice在来年很有可能将得到更多的关注。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章