自Oracle去年宣布其收购Sun Microsystems的意图以来,Java开发人员社区便开始争辩Java格局会有哪些改变,以及它将如何影响Java平台的未来。
创新互联公司专注于企业网络营销推广、网站重做改版、谢通门网站定制设计、自适应品牌网站建设、H5页面制作、商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为谢通门等各大城市提供网站开发制作服务。
事实上,Java技术的发展素来就是一个充满争议的话题,其中一些人认为这一技术在它的第15个年头已经走到了尽头。因此,Java平台和库的突出复苏让业界为之震惊,因为企业开发人员已经开始解决方案可靠性和可伸缩性问题。(推荐:“我们真的能没有Java吗?”)
随着Oracle的收购工作尘埃落定以及Java 7已定于今年下半年发布,Java领先社区需要举办一次圆桌会议—开发人员、架构师和分析人员(公司和独立)—并获取关于Java技术、文化和行业的当前及最新趋势的观点。
从期待到惊讶,各界反应不一,但最终开始思考与会者们在Java平台方面的专业技术和广泛工作。衷心感谢圆桌会议与会者:Dan Allen、Neal Ford、Andrew Glover、Richard Hightower、Mik Kersten、Christopher J. Mackie、Alex Miller、Ted Neward、J. Steven Perry。了解我们贡献者们的广泛背景知识,包括他们在developer Works上以及别处发布的作品。
2010的Java技术
为了开始讨论,我们向与会者提问“基于Java的开发人员如今面对的最大挑战和机会是什么”。虽然回答不一,但其基本主题是相同的:Java平台的复杂性以及相关Web应用框架,因为这增加了如今软件开发的固有挑战。
“甚至在开始编辑代码之前,典型的Java Web应用程序就要使用15到20MB框架”,Alex Miller说,“这从一开始就加大了我工作的难度,而我拥有10的Java开发经验。”
Mik Kersten表示同意:“我们所用系统的大小在不断增长,而我们脑容量却还是那么大。”
与此同时,根据Dan Allen观点,交付的压力也不小。他说:“开发人员无力承受开发对应用程序业务逻辑毫无作用的代码,特别是用于解决已经解决的问题的代码。”
大多数与会者都同意复杂度—这关系到Java平台的生存—阻碍了基于Java的框架、工具和语言的创新。
“要让Java得以继续生存,必须将它视为快速部署工作应用程序的平台”,Andrew Glover说。他引用Grails作为基于Java平台的简化企业栈的例子。
“借助Grails这样的框架,您可以极为迅速地建立工作Web应用程序,就像Rails那样”,他这样说。
与会者表示,支持Java平台演化的其他技术还包括Spring框架、Eclipse、基于Java的云和虚拟化技术、键值对数据包以及Java EE 6本身。
技术并不能解决Java开发人员面对的所有问题;但是,Java的编程文化也存在求变的压力。
“Java开发人员通常会迷恋复杂性”,Neal Ford说,“我们作为开发人员必须努力在解决问题方面达到平衡,避免引入新的问题。”
Steve Perry对此表示同意。他说:“创新是伟大的,我喜欢变化,但软件开发确实还需要发展。世界对软件的依赖性日益增加,如果开发方式未得到改善,那么我们将有一段非常艰难的过程。”
ChrisMackie认为,软件开发活动的发展是Java文化和技术前进的动力。“日益壮大的外包供应商都是组织文化和编码需求不一的各种类型的公司”,他说,“即使经验丰富的Java开发人员会在转换到新环境时遇到挑战。”
您怎么认为?
在此次圆桌会议中,我们向与会者提出了一些重大问题。我们也希望您可以发表意见。您是否同意此处提供的观点?您有其他意见吗?是否对Java行业有完全不同的见解?加入圆桌会议并分享您对于如今Java行业的想法。
#p#
Oracle和Java技术
曾经辉煌的Sun已经成为Oracle的手中之物
经过数月的诉讼之后,Oracle现在已经是Java未来的掌控者。我们向与会者提问:“这种新的控制权有什么最重要的意义?”“在Oracle的带领下希望看到什么变化,还是保持不变?”
(推荐:“Oracle的加减法 Java的乘除法”)
大多数人,如Rick Hightower,并不期望技术方面能有多大改变。“Oracle并不会让Java开发人员的境遇变得困难”,他说。
一些与会者表达了对JCP的顾虑,并希望它能继续,或者在Oracle下能变为更加可靠。“我希望Oracle能消除Apache一直反对的领域应用限制,并打破JCP对Java 7 JSR的限制”,Alex Miller这样说。
Steve Perry补充说:“我希望Oracle做出的保留JCP并增加其共享性的承诺并不是天方夜谈。公司参与的开销是否会越来越大?个人参与是否可行?”
谈到IDE,Mik Kersten表示在同等情况下会首选JDeveloper,“因为Eclipse在Java特性、可扩展性和可能集成方面都处于领先。”
“我希望我们可以看到Oracle意识到Eclipse对于Java取得成功的重要性。”他说。
“长远来看,我想知道Oracle是否会让Java更加接近企业,以及是否会将Java应用于云,这会是非常有趣的事情”,Chris Mackie说,“我认为强大的云理念对于社区非常有益,但不知道Oracle是否注重这一因素。”
“利用云还会减少硬件改变的麻烦,这使Oracle作为硬件公司(即Solaris)的角色变为更加有趣”,Andrew Glover说。
在讨论对于Java技术最为重要的方面的问题时—公司所有权易主还是开源替代方案出现—与会者开始分化了。
“对我来说,Java的发展动力与其所有权没有关系”,Glover说。但是,Dan Allen说,“这确实会关系到负责Java的公司。”
“我们现在有许多人都对管理方向持有不同的意见,而这只能改变Java和JCP(通过Oracle的控制权)的发展”,Alex Miller说,“我认为Oracle会将Sun产品合并在一起,并创建更多的价值。”
显而易见的是,Oracle以盈利为中心的商业模型会改变Java文化的一些方面。
“许多Java开发人员会发现很多免费服务从此消失”,Ted Neward表示,“坦白来说,我认为这种改变是一个很遥远的过程。”
#p#
Java 7:闭包和并发性
经过3年多的努力,Java 7已经确定于2010年末发行。我们问到闭包是否仍然值得争论,以及JDK 7是否足以应对并发性方面的挑战。
(推荐专题:Java 7,下一代Java开发技术详解)
一些人质疑Java 7与基本应用程序开发的相关性。“我仍然遇到客户机在Java 1.3上卡住的问题,因为需要商业公司提供应用服务器”,Andrew Glover说,“由于这些现实让Java 7的采用在某些领域变得遥不可及。”
Java 4和Java 5引入了一些激动人心的特性,Steve Perry说,“但对于Java 7就有所不同了。但是,使用稳定的已有技术则更能发挥自己作为顾问的作用。”
一些最有趣的并发工作正独立于Java 7进行,Glover说,比如一些开源工作,基于Java的框架Kilim和函数语言如Scala。
“JSR 203是NIO中非常有用的增强。JSR 166有一些很好的并发更新,并且我仍然希望JSR310继续发扬光大。”Alex Miller说。
Miller还看到JVM中新增了一些好功能,他表示,“一些围绕invokedynamic的工作正在进行之中,可能会是一些热门的新型垃圾收集器G1。”
就闭包而言,Miller说,他们仍然值得争论,并且我很高兴它们能重回阵营。
其中,闭包将“为各种JVM语言之间的通信提供一种公共的标准字节码格式”,Neal Ford说,“现在,Scala使用与JRuby、Clojure和Groovy不同的内部表示;它们都有自己的字节格式。”建立一种内部格式可以让所有基于Java的语言解析相同的内部表示,他说。
“Groovy的成功表示人们希望闭包出现在Java中”,Dan Allen说。他还对Java中缺少属性和直接字段/方法引用表示失望,他说这样会导致浪费和或传递类型安全性。
“许多语言信息会在编译时丢失,而它们本来可为框架开发人员提供很大的用处”,Allen说。“一个例子是方法参数的名称以及各种通用类型信息,它们已经从Java移动到字节码中。”
“虽然注释极为出色,但它们仅是需要支持的元数据最表面的一层”,他说。
但是,“Java语言设计者应该在版本7时释放Java”,Ford说,“Java语言将成为JVM的汇编语言:允许低级访问,因为您所编写的是低级库,以及允许维护。”
甚至在平台前端,Miller说,“Java就其本身而言当前并不适合革命性改变—它仍然会顺变趋势和用户的期望。而企业正希望如此。”
Dan Allen认为Groovy的成功与Java的版权有关系!
#p#
Project Jigsaw
JDK应该模块化的争论应追溯到90年代中期,但对Java模块性的兴趣—或对可实现解决方案的希望—在过去数年中已经激增。作为Open JDK项目的一部分,Project Jigsaw是Sun在Java 7发行版中模块化JDK的努力。
我们向与会者提问“Project Jigsaw与OSGI的关系是什么”,以及“是否能够满足模块化Java平台和编辑模型的需求。”
Chris Mackie说,“我怀疑并没有一个正确的模块化Java解决方案。可以很容易发现关于‘正确’的模块性有许多立场。”
在提及关于模块化的JSR时,Alex Miller表示,“我认为围绕JSR 294、277的整个过程以及Project Jigsaw从一开始就没做好。相关人员目的性很强,但我还是希望最终产品能是我希望的那样。
“我认为OSGi是一项伟大的技术。我并不认为它是唯一的解决方案”,他说。
我们需要的是一个“可允许版本跟踪,支持编译时和运行时版本依赖性检查的工具,以及一个开放元数据组件系统”,Ted Neward说。相反,Project Jigsaw已经“变为另一种复杂的OSGi和Maven”,他说。
“很让人不耻,因为我认为Mark Reinhold和Alex Buckley在模块性方面的展示确实非常有吸引力”,Miller补充说,“集成模块定义、依赖关系管理和紧密部署的概念可支持CPAN、Ruby Gems或Groovy Grape系统,并且能更好地构建和部署Java软件。”
但是,模块化Java平台也有其缺点和批评者。
“我认为Project Jigsaw不切实际”,Steve Perry说,“他们提议的解决方案几乎没有丝毫引起我的兴趣。”
“模块性解决方案正日趋成熟的事实说明大部分已有Java应用程序,虽然它们可能会从模块性中受益,但都没有这一必要性。对于许多应用程序来说,模块性可能会弊大于利”,Mackie说。
他说:“但是,模块性在移动环境的Java开发中非常重要。举例来说,如果没有它,我们将很难看到Java会在智能手机上普及。”
DanAllen说:“移动应用程序并不需要JVM带来的所有功能。如果Sun接受模块JDK,Android和JavaME的分开就不会发生。”
#p#
Java和多语言VM
此前,一些Java社区人士争论Java语言是否已经死亡,或者像COBOL一样死亡。如今,更深层次的问题是Java语言是否已死亡有什么影响,因为JVM上还有许多其他语言。
(编辑推荐专题:JVM详解Java虚拟机原理与优化)
Andrew Glover说,“多语言VM让‘Java已死亡’这一诊断或多或少变得饶有趣味。Java是一个平台!如果Java语言缺少一些我所需求的特性(或者出现在其他语言时),那么我可能会选择其他语言。”
他说,“Java的真正强大之处是语言干净地脱离了虚拟机。JVM的可靠性可允许开发人员混搭语言,发挥这些语言各自的优势。”
Alex Miller说,多语言VM(已经由Open JDK Da Vinci Machine项目实现)将为Java开发人员提供独一无二的机制,可以将工作侧重于语言互操作性、元对象协议和其他方面。
Miller和其他人同意大企业软件公司继续在Java中大笔投资。
Dan Allen说,“Java是一种非常易于理解的语言,并且对于公司开发人员来说非常不错。挑战是如何积极地发展该语言。需要引入新的语言特性,并且需要消除不推荐的用法!没有人在使用Java5注释时还在使用Java 1.1中的旧式代码。”
Ted Neward还呼吁Java语言设计人员“了解其他语言的环境—从C++、C#和Visual Basic开始—并确定一组可再次焕发Java活力的新特性。”
Mik Kersten说,“Java作为一种面向对象编程为我们提供了极好的基础。它做到了,也发挥了作用,但它需要继续上升一个台阶。但从社区的角度来说,我们不需要确保JVM上能出现额外的创新。”
JVM需要“一种真正的语言”吗?
与Java社区本身一样,与会者在讨论核心JVM语言的需求时意见发生了分化。
NealFord说,“Java已经死了。但是,多语言编辑的未来看似光明。我们以Swing开发为例,您可以使用JRuby(Swiby)或Groovy(Swing Builder)中的DSL在Clojure等先进的函数语言中构建用户界面,创建关键线程安全部件,并能保留多年以来创建的所有Java库。”
对Steve Perry来说,这一场景看上去比较可行,虽然没有切实的商业收益。他说,“我尝试不受技术的影响。我们关注能确实吸引我的东西。”
与此同时,Dan Allen认为JVM是一个完美的沙箱。他说,“发现主要语言之后,开发人员可以迁移到它,而不要转储知道和投入的一切。Grvvoy和Scala的成功证明沙箱方法是可靠的,但任何语言都是不可替代的。我相信总会有更好的。”
“一种真正的JVM语言”的时代已经过去,还是尚未找到最合适的方案?如果您什么想法可以与.com联系,.com编辑的邮箱zhousn@。
#p#
Spring的未来怎样?
Spring
Java最稳定、流行的开发平台之一已经于2009年易主:VMWare购买了Spring Source。我们向与会者提问,“Spring产品组合在VMWare的管理下将如何发展。”
(编辑推荐:多图详解Spring框架的设计理念与设计模式)
似乎人们一致认为Spring在VMWare的经营之下会开始进入云计算领域。Spring将“成为执行云开发的平台,并继续支持多年来一直在坚持的企业开发。”
Mik Kersten同时说,“Spring Source的Cloud Foundry是对未来的展望,开发人员将在云中部署、调试和管理他们的应用程序,完全不用离开IDE便可实现。”
Steve Perry说,“从业务应用程序开发人员的角度来说,Spring可能会尝试执行更多任务,它的体形会变得异常庞大。开发人员不必每隔三个月便升级一次Spring实现。”
Rick Hightower还看到Spring产品组合在各种方向上都有所突破。SpringRoo和Spring STS就是采用“Spring方式”的极佳例子。
他说,“新兴Spring产品组合可能会回归Spring在面向方面编程中的本源。如果您还没有这样做,则会希望重新拿起介绍AspectJ的书。”
#p#
Open JDK和Apache Harmony
Open JDK
让Java平台开源的决策很受欢迎,毕竟来自Java开发人员社区的压力非常大。Apache Harmony首先出现,但Open JDK其实有Sun的成分在其中。对于这两个进行中的实现,我们向与会者提问,“Java生态系统是否会从这两个开源Java平台实现中受益?”
(编辑推荐:JDK 7一再延期的背景披露以及OpenJDK的尴尬)
Dan Allen说,“不同的实现可允许更加容易地找到最佳解决方案,或者最适合的解决方案。比如说,一个JVM可以启动更快,但另一个可能长期内存占用较低。”
Chris Mackie说,“我们必须建立一个完全的定位战略。但是,随着时间的推移,让具有一定竞争力的项目成为标杆逐渐变得困难—不仅对它们的创建者来说如此,对于两个项目兴趣点不同的用户来说也是如此。”
他说,用户感兴趣的是如何最大限度的提高投资回报率。
对于一些人来说,Apache Harmony和Open JDK可以概括为开源能做什么以及不能做什么。
Ted Neward说,“让Java开源是一个很好的想法,我个人也对他们在这方面的努力感到很高兴。但我们不要再欺骗自己了—关注它的那百分之二的Java开发人员社区都没有在开源方面有任何举动。”
Andrew Glo说,“开源是一件很美好的事情,特别是当您支持它并围绕它进行创新时。拥有商业后盾的项目大多都可以迅速发展起来,这与真正依赖拥护者的项目形成了鲜明的对比。”
在技术方面,Rick Hightower说,“Open JDK和Apache Harmony就像是安全降落伞。我很高兴它们俩都没有消失;我希望以后不会只能两者择一。我希望Oracle能够经营好Java平台,也让我们免于依赖备用计划。”
Ted Neward认为Java需要改变,但是时间会很久
#p#
云计算
随着有影响力的公司开始注重在云上计算和销售资源,我们问与会者对云计算的基本观点是什么,以及如今在企业中利用云基础设施的切实可行的方法是什么。
Ted Neward说,“2010年的云就和2008年的虚拟化、2007年的网格以及2005年的Web服务一样,它如丝如缕、难以抓住,虽然看上去有结实的表面,但实际上没有有形的物质。”
Alex Miller表示同意,“云计算现在是一个相当热门的词,但相关技术却极具实用性。基本上我认识的每位开发人员都在私有或公共云中使用或查看云基础设施。”
Andrew Glover说,“显然,目前可行的方法是利用诸如AmazonEC2之类的工具进行测试,如果可以即付即用,就不需要提前支付测试基础设施硬件的款项。”
Miller表示同意,“大多数人似乎在可伸缩性和性能测试或部署内部应用程序时都遇到了麻烦,然后才了解它的利弊。”
Dan Allen说,“配置服务器是一笔不菲的开销,而且维护工作也是一项负担。如果所有这些都可以抽象出来,并通过IDE来进行控制......那么开发人员便可以专注于业务逻辑。”
一些人也表达了顾虑:开发人员和组织可能会低估将应用程序迁移到新的云基础设施的过程中所涉及的工作。
Steve Perry说,“如果我有一位客户想要云,那么我买些书来看,然后建立一个。但在此之前,我想我与云没有任何瓜葛。”
Allen说,“我们不希望强迫开发人员修改自己的平台、框架和工具,然后才能在云中运行。”(编辑推荐:Java之父点评热门技术趋势 Java使云计算更简单)
Alex Miller认为云技术是大趋势,但是现在还不成熟
#p#
新行业中的Java技术
IBM和其他公司都在大笔投资于“优秀技术是建立智慧地球的关键因素”这一思想。这是一个简单的假设,但软件开发人员比其他人更加清楚新计划也会带来新挑战。我们问与会者如何才能将更加智能的技术引入到新行业中,以及哪些行业能从智能软件解决方案中获取最大收益。
Steve Perry说,我立即想到了两个行业,卫生保健和金融业,尤其是银行业。我相信更加严格的监管意味着我们需要更好的软件方法。在这两个行业都是如此。”
Dan Allen还引用了卫生保健行业中缺少技术基础设施的实证。“世界上相距遥远的人们能够分享他们的早餐的内容(得益于Twitter),但一个月之后,我妻子医生的办公室仍然无法通过实验来定位X光。这里的关键问题很简单,就是轻量级的Web服务,比如REST。”
Allen和Andrew Glover都看到了移动技术的发展前景。Glover说,“移动是大势所趋。智慧的地球将利用移动计算来增强信息共享和效率。”
谈到Java开发人员时,Allen说,“接受并支持Android将成为关键因素。但这意味着解决和标准化Java中的多媒体问题。”
Chris Mackie指出了Java技术可能与众不同的另一个领域。他说,“如今非营利机构的显著特点是,它们是世界上唯一还没有通过最新技术实现充分获益的主要经济领域。有人认为,将如今的技术引入到非营利机构中可以获取最具潜力的价值。”
Ted Neward表示,一些人则反对在修复自身的问题之前扩展到新行业中。
Steve Perry说,“工程质量软件的设计要花时间和精心,这两者都不为软件行业所支持。我认为高生产力始终会导致低可维护性。”
Neward说,对于真正在企业外部使用的软件,质量和适用性都需要进行改善。大多数软件如今都需要一个重量级的承诺—无论是在安装所需的其他组件时,还是在安装其他组件所需的组件时—然后才能开始赢利。
Alex Miller说,“比竞争对手更快地建立、改变和部署技术是至关重要的,这样大多数行业便可相互影响。但是,管理复杂性是实现Java方法的重要因素。”
Chris Mackie表示同意,“通过EC2来托管大多数最新企业应用程序确实是说比做容易。当然,我的意思是云可能会自动确定近期的需求。”
#p#
开源:钱在哪里?
Java开发人员难以想像这样一个世界:没有免费和开源的库、框架和工具,而它们都是创建各种Java应用程序的基本元素。但开源开发的复杂经济难题也让批评家们开始质疑它的长期可行性。我们向与会者问到开源的未来,以及开发人员和组织如何才能通过开源实现盈利,而不仅仅是提供免费的软件。
(编辑推荐:Java开源软件六大帮派)
大多数与会者都同意开源软件在可预见的未来仍然会继续大行其道。供应商会继续通过支持和围绕其产品的培训来盈利,同时还会免费提供打包的企业版工具。
Mik Kersten:IBM Rational®已经成功将Eclipse打造成开源工具平台,并且将继续在该平台上销售创新产品。
Andrew Glover说,要想获得成功,开源项目必须有足够的发展动力。并非所有开源商业模型都能成功。底层产品需要各种及大量社区来支持商业化的实体产品。
Chris Mackie说,成熟性也很关键,开源在成熟的垂直软件市场有极具吸引力的价值主张,几乎没有消失的可能。他说,事实上,专项创新的趋势是让路给持久、开源的替代方案。
他说,专有软件供应商有时更加敏捷,可以更加迅速和有效地专注于资金。但开源的优势在于极为丰富的人才资本,这是任何专有垂直市场供应商都无法望其项背的。
Ted Neward说,如果您希望通过开源赚钱,请首先确定盈利模型,然后再分析开源将如何为您提供帮助。其他方式目前还行不通。
他引用了Oracle收购Sun的例子作为实证:“开源采用较慢的公司(即Microsoft和Oracle)都更好地分析了开源将如何为他们的业务提供帮助。”
Rick Hightower说,“IBM在开源上已经实现了数十亿美元的收入,并且这些收入大部分又重新投入到开源的发展中。它是通过开源软件赚钱并回馈社区的模范。”
Steve Perry补充道,“我希望我们能看到Oracle和VMWare这样的公司引领(开源)技术的发展。”
#p#
结束语
Java技术已经有大约20年的历史了,显然已经到达了其发展的顶端。Oracle的管理对于Java技术的未来发挥着重要的作用,但同样不会忽视Java开发和开源社区的意愿和创造力。
Java Community Process近来成为大家关注的话题,许多开发人员都想知道Oracle是否会—以及如何—遵守自己的承诺来维护和重振JCP。许多人希望免费和开源软件模型在Oracle的管理下能有所改变—无论改动大小如何—并且这些更改将影响Java开发人员与技术以及他们各自贡献的关系。
随着Java技术进入其成熟期,Java编程的文化也在趋于成熟。创新的动力尚未消失,但认知力的不断增加平衡了这一关系—包括编程人员和CTO及业务经理—即在编写代码时必须考虑可维护性。
塑造Java平台的另一个作用力来自对技术有着新需求的行业,但其他行业仍然固步自封,采用过时的做事方式。必须改变这一状况才能让Java平台继续发展并与行业需求保持一致。
如果说此次圆桌会议提供了一些信息,那就是Java技术的未来是激动人心的—同时也是充满挑战的。要让在迅速发展的技术领域(如云和移动计算)中表现出色的Java开发人员适应特定的行业(如卫生保健和金融业),未来之路会非常艰苦,但前途绝对是光明的。
作者
Jenni Aloi从2000年11月以来一直管理developer WorksJava专区。尽管她常常抱怨(几乎对任何事情),但她确实很高兴用过去9年时间做她最擅长的事:协调和组织作者。
Athen O'Shea是一名高级技术编辑和作家,担任过Java World.com的编辑。
#p#
Java圆桌骑士团
Dan Allen,高级软件工程师,Red Hat
Neal Ford,应用程序架构师,ThoughtWorks Inc.
Andrew Glover,作家和开发人员
Mik Kersten,CEO,Tasktop Technologies
Christopher J. Mackie,顾问
Alex Miller,高级工程师,Revelytix
Ted Neward,负责人,Neward & Associates
【编辑Java专题相关推荐】
本文名称:Java的未来在哪里探营Java圆桌会议
网站链接:http://www.shufengxianlan.com/qtweb/news4/33554.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联