春季框架作者提供的Java透视状态

Rod Johnson在开源和动态语言中重量

Rod Johnson在Java开发区举行了突出的地位。他是创始人 春天框架 对于Java,顾问和作者。他写了这本书, 专家一对一J2EE设计和开发没有EJB的专家一对一J2EE开发。他也是首席执行官 Interface21.是一家国际咨询公司。 infoworld..编辑器 在大型Paul Krill上周在Las Vegas的帖子Java研讨会上与Johnson谈到了关于简化和开放采购Java,面向方面的编程,弹簧框架的主题,以及如何将.NET堆叠为Java。

infoworld..: 你看到什么障碍来简化Java编程以及需要多少简化?

约翰逊: 在简化方面,我认为Java语言本身在简化了很多构造的情况下,肯定会将其与C ++背后的历史相比。我认为[与] Java 5,语言级别继续存在。就我们找到最大复杂性的地方而言,它真的在服务器端Java领域,我认为我们在过去几年中取得了巨大的进展,迈向基于Pojo(普通的旧Java对象)开发。我认为当然,现实是服务器端Java开发比与原始J2EE模型更简单。

infoworld..: 面向方面的编程的主要好处是什么以及为什么开发人员如果他们尚未这样做,为什么会跳起来?

约翰逊: 面向方面的编程的主要好处是它补充了面向对象的编程。面向对象的编程已经扩展到一个非常非常成功的范式,以及其中一个伟大的事情是它帮助您促进重用和删除重复的方式。因此,例如,如果您有一个帐户类并且您从该储蓄账户中[扩展],检查帐户,信用账户等,您有一个非常好的方法,使用该层次结构封装要重用的逻辑。然而,在哪里,跌倒,[是]解决我们称之为横切问题的问题。横切问题是可以应用于整个系统的功能,如果它们以传统的面向对象方式实现,则影响多个类和方法。让我们作为一个例子,审计的概念。当然,在基类中具有辅助功能的能力,如基本账户类,例如,运行审计行为。但是,如果我们说可能会审核可能导致储蓄账户状态发生变化的每种方法都会发生什么?经典OO模型无法避免进行复制。最终将结束多种方法之间分散的审计代码。当然,当你说审计应该申请储蓄账户时,它也应该持续得多,这也应该适用于不同的功能领域,例如库存,地址等。重复的问题变得更糟。所以面向方面的编程介绍了一个方面的概念。一个方面真的是模块化将应用横切关注的代码的方法...... [用]弹簧框架,交易管理和安全性通过一个方面的方法传递,因此用户不一定被迫明确地与OOP构造一起工作,但是尽管如此,他们从这种代码的模块化中受益于否则会分散。

infoworld..: 解释您在春季框架的发展中的作用。你可以简要比较春天到其他框架,如javaServer面 WebWork?

约翰逊: 春天的框架在J2EE上的第一本书中逃出了我的第一本书, 专家一对一J2EE设计和开发,已于2002年底发表。这本书真的有助于开始我们在J2EE中的轻量级革命。它真的认为,传统的模型太复杂了,并且通过这本书,我实际上发布了30,000行代码,最初旨在通过应用程序框架以更简单的方式显示事情的看法。但当然,许多读者对此并迅速我被说服地使它成为一个开源项目。因此,2003年初,开发开始于认真。与其他框架相比,春天真的为自己创造了一个利基。因此,春天是我们所谓的应用程序框架,它实际上解决了多个架构层。因此,如果您查看框架[如] Struts或WebWork,它们通常不会只是解决一个架构层。所以Struts和WebWork都是Web框架。与JSF相比,Spring和JSF并不是在同一空间中。 JSF本质上是一种用于呈现Web资源的组件模型,而Spring则更具框架,旨在为整个应用程序带来整体结构和一致性。所以春天实际上可以与JSF一起使用。 Spring确实提供了自己的MVC(模型 - 视图控制器)Web框架,我猜可以被视为与Struts和WebWork相同的空间,但另一方面,Spring是一个模块化框架。

infoworld..: 您曾经说过Java社区流程让您提醒您古老的苏联风格的计划经济。你能详细说明吗?

约翰逊: 我认为[它是谁,传统的方法,以及JCP的公平性,我认为这已经开始改变。但传统的方法涉及委员会,这比供应商的统治更频繁,基本上定义了编程模型......这种方法的问题是它真的不是基于竞争或经验。更频繁的是,您[发现]真正非常复杂的编程模型,例如原始的EJB(企业JavaBeans)编程模型,由实际上没有开发应用程序的人群定义。所以他们开发了服务器。他们是高技能和高度聪明的人,但是经常暴露于人们在银行和实际使用该软件的所有真正业务的情况下的情况并不是一样的......所以我提到资本主义概念的原因苏联体系是,这对此的影响是有一些授权的东西。这是你将在未来几年内完成的方式。这意味着如果该方法不是一种好方法,它实际上会很长一段时间生存。这也意味着我们看到的那种创新没有那么多机会,例如,在商业中或者你得到了很多竞争迫使人们[升力]他们的[游戏]和创新。

infoworld..: 您是否相信Java需要开放,如太阳放弃控制作为管家呢?那是什么,风险可能是什么?

约翰逊: 我对Java的问题没有强烈意见作为一种语言。我做了[quote]旧格言 - 如果它没有破产,请不要修理它。我认为Sun实际上是用Java作为一种语言做得非常好的,所以虽然我认为有很强的开放采购争论,但我认为这也是一个相当强烈的论据,即我们应该待自己。关于平台的其他一些元素,我认为这可能是时候认识到,特别是开源现在在创新和定义人们想要工作方面发挥着非常重要的作用。而且我认为我们必须考虑一些区域中的JCP是否可能扮演较小的作用。

infoworld..: 如果java开放源,那么将获得什么以及风险的风险?

约翰逊: 我认为增益也是如此......可以使用许多修复程序进入语言。例如,存在许多情况,在那里有意识到平台上存在某些错误。主要是相对较小的,当然;我的意思是整体它非常稳定。但尽管如此,我认为你会很快看到大量的修复,可能更加迅速。因此,例如,有java 臭虫游行;有许多问题尚未修复多年。我认为他们可能会很快修复。除了阳光来说,你可能还会看到其他大公司的出现,除了阳光造成强烈的兴趣,我认为这将是一个积极的而不是消极的。就潜在的负面潜在的含量而言,我认为如果仔细完成,那么可能不会有许多潜在的否定。我认为,如果有一个开源Java [和]这个项目非常紧密控制,可能是由某种非营利性或某种东西,我认为这绝对涉及方向的控制程度,而不是说到一个模型,您可以随时随地在代码中检查代码,这使得难以保力地保证平台的稳定性。

infoworld..: 通过有一些控制,您可以防止分叉,正确?

约翰逊: 我会想到分叉会不太可能......分叉是一个非常激进的东西,我会[思考]坦率地,如果这个项目周围的开源Java健康,叉子就不会成功,所以所以叉子的威胁并不是非常重要的。

infoworld..: 您认为Ajax(异步JavaScript和XML)是否已过度估价?

约翰逊: 这是一个有趣的问题。我不确定我有足够最近的实际经验来回答这个问题。我认为这肯定有许多让Ajax引起关注的事情并不是新的。我认为品牌,在Ajax周围有缩写,突然[带来]回到主流一些已经讨论了一些曾经讨论过的几年前的东西......在现在正在实施HTML构造的浏览器中有重大进展,这使得ajax更可行的。但肯定地,我不认为这是一个激进的新概念。

infoworld..: 什么技术可能到达替换Java或Suppedede呢?

约翰逊: 这是一个非常有趣的问题,因为如果你看看语言的生命周期,显然Java是一种相当成熟的语言。当然,似乎对Ruby,Python等动态语言的兴趣飙升。我认为JVM(Java虚拟机)与Java区分开来非常重要。所以Java可能总是是在JVM上运行的主要语言,但我认为我们应该意识到Java平台可能包含编程语言的选择......有许多有趣的发展,如Groovy在Java社区,这是一种非常简洁而强大的语言在许多方面。还有java版本[或ports]的流行语言如Ruby。有 jruby.。这是我们在春季2.0中努力实现的事情之一。我们实际上已经启用了Spring组件模型以跨越在JVM上运行的任何语言,因此我昨天使用JRuby向一个例子提供了一个例子。在将动态语言带到Java平台上有很多有趣的开发。我还想说为了让Java保持强大,我认为创新在Java语言中仍然存在至关重要。虽然Java 5是一个重要的一步,但Java继续作为一种语言发展是非常重要的。我想一旦它停止发展,它将开始死亡。

infoworld..: 你在哪里看到它的发展?

约翰逊: 我认为将部分出现在人们最终使用动态语言的经验,而且我认为Java 5后必须有一段整合期,因为它是一个主要的新版本。此后我认为我们需要非常仔细地看待为什么人们喜欢动态语言以及我们可以带来的那些能力,这可能与Java作为一种语言本身相关。

infoworld..: 前几天在EclipseCon会议上的Apache官员 最终所有软件都是免费的,供应商销售服务。你同意?

约翰逊: 我认为我们不会到达所有软件都是免费的位置。我认为将永远存在不同的力量适用的市场部门,但我认为朝着这种方向移动了极其强大的力量。所以我认为在几年之内,绝大多数软件将在这种情况下,在这种情况下。

infoworld..: 您对Microsoft .NET技术的印象是什么?

约翰逊: 我认为.NET是一个可靠的平台。这是企业Java技术的认真竞争。在.NET中有许多有趣的事情。因此,例如,在.NET平台上运行多种语言的能力,而且他们在DSL(特定于域的语言)周围做了一些非常有趣的工作,他们实际上正在进行C#语言本身的一些非常有趣的创新。

有关的:

版权© 2006 IDG通讯,Inc。