下一代Java:我们不需要其他革命性的东西

发布于:2021-02-17 00:00:32

0

215

0

Java Java EE oracle devops spring scala

TheServerSide.com的编辑Cameron McKenzie正在寻找 下一个破坏性因素,该因素将唤醒Java企业社区并将其带入企业计算的下一个时代。他正确地指出了Rod Johnson的伟大成就,他在几年前通过在Spring框架中实现的依赖注入(DI)概念彻底改变了Java世界,并且几乎不动摇。

是Scala的创建者和Typesafe公司的创始人Martin Odersky,他专注于纯粹基于Scala的软件堆栈的开发和商业化吗?Cameron写道,Scala场景过于自我定义,因此很难想象它像Spring Framework一样在Java社区中具有相同的广泛影响。另外,Scala员工的技术重点显然是早期采用者,alpha开发人员,对于Java主流几乎没有用。

至此,我同意卡梅伦的评估。当忽略提示“改变”的信号时,Java世界正冒着巨大的风险(鉴于他们取得了巨大的成功)。当然,在Core Java和经典版本(Java EE,Java SE)方面仍然有很多开发工作要赶上,这在2005年至2010年失去的十年间都被忽略了。辛苦了 但是,Java阵营仍然对未来的发展方向缺乏清晰的认识。

在这方面,我也同意卡梅伦·麦肯齐先生的评估。

但是我不同意他对“ Rod Johnson 2.0”的渴望,他是一个指导性的光,并带领Java世界走上了正确的道路。而是,我认为必要的改变是以秘密转换而不是革命的形式发生的。

今天,各种当前的趋势(并不总是彼此直接相关)将在不久的将来形成一种关系,我们将其称为“新学校”:

  • Web(I):在性能,安全性和标准支持方面,浏览器的不断更新有助于JavaScript的复兴。除此之外,Web的大规模动员已经在Javascript框架中引起了重大的创新,这令人信服。结果,可以将以前仅留给服务器的许多功能转移给客户端。鉴于这种“新的力量分配”,基于Java的经典服务器端框架将很快成为废品堆。

  • Web(II):诸如REST和WebSockets之类的技术表明企业开发人员对Web的处理方式发生了变化。最终,Web已从用于消息和页面的纯传输介质转变为用于提供资源和服务的全球操作系统(超媒体)。未来的系统将得到根本性的分配,具有讽刺意味的是,在SOA炒作之后的十年,一致的服务和资源导向的愿景终于实现了(仅通过其他方式实现)。

  • 移动(I):尽管智能手机声称可以代表您口袋中的真正超级计算机,但它们仍然是资源有限的设备。小屏幕,没有永久连接,电池寿命有限,意味着所有多余的东西都将被清除。结果就是“应用程序”的概念:小型且高度集中的程序,大多数仅用于一个目的,因此具有充当基于Web的服务的服务端点的主要任务。    

  • 移动(II):结果,业务解决方案的开发人员不再构建“站点”或“ Web应用程序”,而是构建服务。通过完善的API获得的服务可用于任何服务端点-不论这些服务是在台式机浏览器或移动设备(平板电脑,智能手机)中运行,还是在具有原始芯片和传感器的嵌入式系统中运行。严格的API定位,与使用大量不同的客户端技术(例如HTML5 / JavaScript,iOS,Android)相关联。NET,Windows 8对Java开发人员来说是后果。

  • 虚拟化:实际上,现在在“云”这个术语下正在流行的大多数技术已经存在了一段时间。但是,由Amazon,Microsoft和许多其他全球和地区提供商构建的公共云提供了一个新的“自助”组件。这些云产品可在几分钟内通过信用卡激活(在大多数情况下可通过用户友好的界面进行自定义),从而为访问计算资源引入了新的品质(更不用说灵活的支付模式了,几乎所有公共云产品都随附了这种支付模式) )。

  • 大数据:硅谷的大企业已率先,如今创新的数据存储已在全球使用。最初纯粹将其定位为拒绝关系数据库,如今大多数人都将“ NoSQL”理解为“不仅是SQL”,而不是完全脱离SQL查询语言。事实是,行业已经了解到,我们并非在每种情况下都不需要面向事务和关系的数据库,但是使用更简单的数据存储通常就足够了。因此,“大数据”不仅处理超大量数据,而且通常仅进行简化。然而,趋势的核心是传感器,社交媒体和不断发展的网络所产生的数据量呈指数级增长,我们希望从中获得好处。即近实时。这不是一件微不足道的任务。 

  • DevOps(I):DevOps趋势的两次重要经历导致了软件开发人员(Dev)和该软件的运营商(ops)之间加强协作。首先,有敏捷原则,十多年的实践证明,敏捷使软件开发比传统方法成功得多。其次,全数字化业务模型的快速动态化及其带来的灵活性。如果公司想在全球商业环境中生存,他们必须能够立即在生产中应用变更。在这种背景下,DevOps运动打破了Dev和Ops之间的传统界限,并建立了两个团队之间的新合作文化-就企业的成功而言。

  • DevOps(II):持续交付形成了一系列技术,旨在加速并自动实现软件的交付。有些人似乎通过持续交付来进行竞争,每天交付30或50个其关键任务软件版本。但是,核心是能够即时,无故障地交付软件更新和开发的能力。为了构建这样的系统,软件开发人员和操作人员必须紧密合作。

上面列出的趋势(Web,移动,虚拟化,大数据和DevOps)可能听起来像是一个流行词。一个或另一个问题可能是锅中的闪光灯,因此重要的是要问一问最后还剩下什么。但是,与其像Cameron那样要求创新者,不如Java社区–不仅仅是Java社区!–需要睁大眼睛,需要了解这些潮流的本质。

事实是,这些挑战共同对Java的创新施加了更大的压力。因此,Java社区又必须在许多方面进行更新,以保持相关性。IT世界已经变得更加分散,这就是为什么我们需要更具体,更定制和更小巧的“进化”解决方案。诸如Scala之类的单一技术将无法完成此任务。

在与Eberhard Wolff的讨论中出现了这里描述的许多想法,因此我最后要指出他 在旧金山的JAXconf上发表的出色的演讲“ Enterprise Java的新挑战和新方法”  。