`

2005年Java技术年度综述(转载)

阅读更多

2005年是Java10诞生10年,全世界的Java程序员通过不同的方式为Java庆祝生日,10年前还很幼稚的小东西,今天已经成为软件业的一个重要体系。在10年的发展历程中Java阵营诞生了许多杰出的思想,这些思想演化成众多的开发架构和开发工具,也因此导致Java技术派系众多,让架构师难于选择,应用系统复杂而且昂贵。为了这解决这个问题,Java专家们们提出一系列的新的技术规范,这些技术的目的就是使Java更简单,不仅仅是Java语言,还包括开发工具和框架。融合与开放成为2005年Java发展的主要特征。

处于二次革命前夜的Java

在Java领域中Sun公司具有举足轻重的地位,在2005年Sun推出了一系列新的技术规范,希望继续简化并重新整合Java技术。7月Sun连续公布两个技术规范:JSR-196和JSR-277,JSR-196简化了J2EE应用服务器整合第三方验证服务,JSR-277又被称为"Java模块系统",Sun希望通过该规范解决了现在Java应用在部署时的麻烦,同时彻底废除JAR文件格式,采用新的Java模块打包Java程序。

随后Sun在8月举行的JavaOne大会上宣布取消J2XE的命名规则,新的命名以JavaEE/SE为主,如果仅仅是改换个命名方式是不会引起震动的,从Sun 随后公布的文件看,这不是一个简单的改名,其中的技术跨度很大,可以把它看成一种新的技术而不是J2EE的延续。

然而事情并未结束,不久前,Sun又向JCP(Java Community Process,Sun于1998年发起成立的一个开放的非赢利性组织,负责处理和审批各种Java技术和技术规范)提交了JSR 224-Java EE 5的 最后草稿,在这个草稿中,Java EE 5的重点是简化应用开发,尤其是大量采用元数据标注(annotation)和POJO(普通Java对象)驱动的开发方式,对平台进行了重新定义。JSR-244则规定了Java EE 5总体框架下需要具备的技术特性。Sun坚定的走上了简化Java的道路,甚至不惜重建一个Java。

JavaBeans体系发展之争愈加激烈,对象持久化技术JDO、EJB和Hibernate在2005 年的际遇可谓几家欢乐几家愁。命运多舛的JDO 2.0未能通过JCP的表决,遭遇重大挫折,JCP的委员们声称JDO 2.0在轻量级存储模型上与EJB3.0存在冲突,而让两种不同的规范来描述同样的问题,将使J2EE变得更复杂。但否决JDO 2.0给JCP带来不小的麻烦,Java社群内群言汹汹,大有不推翻此结果不罢休之意,因此,JCP决定为EJB3.0重新提供一套API(应用程序接口),JDO将通过这套API得到支持,看来JDO未来的出路将是被EJB收编。与JDO不同,Hibernate今年的发展很顺利,Hibernate在被JBoss收购后发表了3.0版本,在这个版本中Hibernate增加了对XML持久化的支持,也没有出现被绑定在JBoss上情景,这曾让开发人员担心不小。

Java开源和免费势不可挡

在Java诞生之初,Sun及其明智的为制定了一个开放的发展策略,为Java的发展创造了一个良好的环境,可以说正是这个策略造就今天繁荣兴旺的局面,也因此Java与开源结下了不解之缘。

在2005年Java开源迎来新一波高峰,Java世界的众多产品和开发工具纷纷开放源代码,开源项目Eclipse正在逐渐统一Java IDE(集成开发工具),继Borland宣布将把产品线全面转入Eclipse后,Bea也计划把weblogc workshop转移到eclipse平台上,Eclipse在逐步统一Java IDE;目前抗拒Eclipse魅力的还剩下Sun,Sun虽然部分开放了Java源代码,但声称不打算加入Eclipse项目,将坚持发展Netbeans,但Sun的困难在于Netbeans的插件开发社群远远小于Eclipse,即使Sun说服中国教育部在高校中推广Netbeans,这个差距也不是短时间能弥补的。

Eclipse的成功也让Sun看到了开放的架构的巨大吸引力,Sun提出了一个类似.net的脚本运行时环境JSR-232,在这个环境上可以集成各种脚本语言,甚至包括PHP、Groovy,以后也许还有python、ruby;这不由得让人对它充满希望。

Sun在部分开放Java源代码后宣布所有软件免费,Sun今后将从技术支持和服务中获取利润。IBM和JetBrains也宣布免费,幸福来得太突然,我们进入免费时代了。

在2004年曾经在IT界引发狂热的AOP和SOA在理论上已经成熟,开始进入技术应用期。技术人员开始从事将AOP的三个主要框架:AspectJ、AspectWerkz、Spring实现合并,力图提供一个单一的AOP编程平台。AspectJ和AspectWerkz的项目组已经合为一体,共同推出了第一个产品AspectJ5,AspectJ的项目领导人Adrian Colyer则离开了IBM,加入interface21,期望能致力于AspectJ与Spring的融合。

2005年岁末Bea技术大会在北京举行,人们很快发现这次会议成为SOA宣传会和产品展示会,Bea展示了令人眼花缭乱的的SOA产品,人们不禁怀疑Bea是否有意充当SOA应用的排头兵。欲在SOA市场大展拳脚的还有蓝色巨人IBM,IBM在不久前为其中间件WebSphere家族增加了一系列新产品,而这些产品都是针对SOA应用的,同时IBM还联合Oracle、BEA、SAP、Sybase等巨头将SDO和SCA(Service Component Architecture (SCA) and Service Data Objects (SDO))混合组成了一个SOA编程模型,试图简化开发和组装实际业务服务。

Java在中国

2005年Javachina大会在中国召开,这是Sun首次在中国召开的Java技术大会,Java社群的传奇人物纷纷登陆中国,与中国开发人员探讨Java技术的发展应用,这是Java发展史上的第一次,也是Sun、IBM、Bea等厂商10年来不遗余力地推广的结果。

如果说国内Java技术前些年是在追赶世界的话,那么近年来中国Java技术的发展已经紧紧抓住了世界潮流,开始与世界同步。Hibernate、Spring、AOP、SOA等技术都是在最短时间里介绍到国内的,Ajax刚在海外露头,国内就诞生了相似的应用框架,而国内工程师的身影也出现在制定JDO、EJB规范的专家组中。但是,与中国软件的大环境相同,目前国内的Java技术主要还是集中在应用层面,所有核心技术的知识产权都在海外。

根据中国软件产业协会的统计,国内超过三分之二的软件企业在采用Java进行开发,北京有90%的软件公司都有Java开发部门。虽然有这么多企业采用Java进行软件开发,但国内成熟的Java应用软件还不多见,还没有建立统一的Java标准体系和安全架构,也没有人监控,这些问题的存在使对企业进行软件开发增加了成本,也降低了客户对Java产品的信任。与行业软件相反,Java在移动领域的发展非常顺利,国内所有手机厂商都在生产支持Java技术的手机,短信和手机游戏等业务几乎全部是采用Java技术开发,Java技术几乎成为行业标准。

Java在中国的发展与中国程序员的努力密不可分。目前中国有十多万Java程序员,书店里堆满了Java技术书籍,各种培训机构、软件学院中Java都是重要课程。不过国内从事Java开发的人数虽多,但精通者很少,有创造力的则更少。

结束语

毫无疑问2005年Java在各个技术层面都取得了巨大的进步,新技术的出现时间以月计,在这些技术的引领下未来的Java将变更简洁,代码编写量更少,开发周期更短。

在2005年开放成为Java的共识,以往让开发人员难以抉择的框架体系,开始走向彼此融合的道路。开放加上Java世界里从来不缺的天才的思想,将保证Java的顺利发展。

分享到:
评论

相关推荐

    JAVA手机游戏设计文献综述

    ### JAVA手机游戏设计文献综述 #### 一、背景与概述 随着移动通信技术的快速发展,特别是智能手机的普及,移动游戏市场迎来了前所未有的增长。在这个过程中,Java作为一种跨平台编程语言,发挥了重要作用。J2ME...

    java毕业设计——java语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).zip

    java毕业设计——java语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).zip java毕业设计——java语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).zip java毕业设计——java...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

    30种java技术框架

    ### 30种Java技术框架概述 #### 一、Java类加载器架构 Java类加载器是Java虚拟机(JVM)的重要组成部分之一,主要负责在程序运行时将类文件加载到内存中,并对其进行验证、准备和解析等初始化操作。类加载器采用双亲...

    Java开发技术大全.rar

    《Java开发技术大全》这本书是Java开发者的重要参考资料,它涵盖了从基础到高级的全面Java编程知识。这本书的主要目的是帮助读者理解和掌握Java语言的核心概念、语法和应用,以便在实际开发中能够灵活运用。 1. **...

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    Tomcat与Java.Web开发技术详解(PDF)

    本书详细介绍了在最新Tomcat 5版本上开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。

    java2核心技术第I卷.基础知识(中文PDF完整版)

    全书历经12年多的技术积累与提炼,对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量实用价值极高的示例,可以帮助读者充分理解Java语言以及Java类库的相关特性,使你快速升级到Java SE 6平台,从而提高编程...

    Java P2P技术内幕PDF+源代码

    主要内容包括p2p概述、p2p网络拓扑结构、p2p网络搜索技术、p2p关键技术及...技术、基于java的p2p开发平台搭建、sloape的开发包及插件开发技术、基于p2p的即时通信系统的开发与实现、bt系统分析及客户端开发、jxta技术等...

    毕业设计文献综述范文

    - 支持复杂的Web应用,可以与其他Java技术结合使用,如Servlets和JavaBeans。 - 在文档中提到了几本关于JSP技术的书籍,例如《jsp实用案例教程》、《jsp动态网页编程技术》等,这些资料可以帮助读者深入学习JSP...

    一个java程序员几年的技术总结

    ### Java程序员技术总结 在多年的Java开发过程中,不断积累的经验和技术是每个程序员宝贵的财富。本文将根据提供的部分内容,深入分析并扩展几个关键知识点:面向对象编程思维、Java编译与运行机制、类加载器...

    java毕业设计——基于java的邮件收发系统的设计与实现(系统+论文+开题报告+外文翻译+文献综述+答辩PPT).zip

    java毕业设计——基于java的邮件收发系统的设计与实现(系统+论文+开题报告+外文翻译+文献综述+答辩PPT).zip java毕业设计——基于java的邮件收发系统的设计与实现(系统+论文+开题报告+外文翻译+文献综述+答辩PPT)....

    JAVA 五年的工作经验和学习笔记

    由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)...

    Java 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...

    java源码包---java 源码 大量 实例

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    Java核心技术 卷I 基础知识 (第10版)英文高清完整.pdf版下载

    《Java核心技术 卷I 基础知识》是Java开发者必备的经典教材,尤其这个第10版更是集合了多年的实践经验和最新的技术发展。本书详细介绍了Java编程语言的基础知识,为初学者提供了全面的学习路径,同时也适合有经验的...

    《JAVA中间件技术及其应用开发》课件

    《JAVA中间件技术及其应用开发》是一门深入探讨Java中间件技术及其实现方法的课程。这门课程的课件涵盖了从基础理论到实践应用的多个方面,旨在帮助学习者全面理解并掌握Java在企业级服务中的核心角色。以下是根据...

    JAVA语言考试系统的设计与实现(LW+源代码+文献综述+外文翻译+开题报告).zip

    JAVA语言考JAVA语言考试系统的设计与实现(LW+源代码+文献综述+外文翻译+开题报告)JAVA语言考试系统的设计与实现(LW+源代码+文献综述+外文翻译+开题报告)JAVA语言考试系统的设计与实现(LW+源代码+文献综述+外文翻译+...

    java指纹识别-图片识别技术

    在这个名为"java指纹识别-图片识别技术"的项目工程中,开发者可能利用Java语言实现了指纹图像的处理和比对功能。下面将详细阐述这两个技术以及它们在Java环境中的应用。 首先,我们来看指纹识别技术。指纹是人类...

Global site tag (gtag.js) - Google Analytics