Alexander Belokrylov是BellSoft的首席执行官。他是一位Java技术和IT领导方面的专家,拥有超过10年的经验。
今年是Java社区庆祝Java诞生30周年,这为反思生态系统所经历的显著变化提供了绝佳的机会。
在本文中,我旨在比较几种早期和现代的Java方法,强调Java的持续需求,尤其是它在企业软件开发中的持续主导地位,并不意味着代码一成不变。多年来,在OpenJDK的积极贡献以及一些原始概念的转变的推动下,Java及其生态系统经历了动态转型。
从专有到开源
众所周知,Java最初是由Sun Microsystems公司以专有代码形式开发的。2006年,它开始向开源模式转型,并于2011年随着Oracle发布Java SE 7而达到顶峰。因此,Java曾作为专有闭源软件存在了16年,而在其生命周期的近一半时间(14年)中,它一直以开源代码形式提供。
开源开发的优势源于集体努力:代码社区规模越大、越活跃,编程进步就越显著。就Java而言,OpenJDK社区在确保平台能够高度适应不断变化的业务需求方面发挥了关键作用。
如今,开源代码几乎嵌入到每个软件应用程序中。Linux基金会2022年的一项研究估计,70%到90%的现代软件解决方案包含一些开源组件。最近的一份《2025年开源安全和风险分析》报告强调,多达97%的当前代码库都包含开源代码。
在Java编程领域,专有和开源Java生态系统并存,但业界越来越倾向于OpenJDK。然而,从专有Java到OpenJDK的过渡仍在进行中。尽管Oracle在2020年占据Java市场约75%的份额,但根据最新的NewRelic报告,到2024年,其份额已下降至仅21%。
切换到OpenJDK是一个合乎逻辑的选择,通常是出于降低与Java相关的成本、确保对旧版Java版本(Oracle已停止使用)的支持或解决类似的业务问题的需要。
当今Java市场的精髓在于专有语言和OpenJDK两种语言的健康共存。Java在企业开发领域依然占据领先地位,并且是许多企业最初的首选语言。这种在专有语言和开源版本之间自由选择的自由是Java生态系统的一大优势。
当代Java及其遗留版本
虽然Java最新的长期支持(LTS)版本持续提供功能增强,但令人惊讶的是,这些版本并非总是被广泛采用。定期升级在许多组织中尚未成为主流做法。
截至今天,仍有28.8%的企业依赖Java 8,还有相当一部分企业继续使用Java 6。
然而,2024年New Relic Java生态系统状况报告强调了一个令人鼓舞的趋势:较新的Java版本(例如Java 17和21)的采用率有所提高。在整个行业中,JDK 17占据35%的市场份额,紧随其后的是JDK 11,占33%。
多份关于JDK使用情况的报告证实,企业通常倾向于坚持使用经典且成熟的Java版本。这种做法反映了企业更注重创新而非维护。在许多情况下,在旧平台(例如JDK 6)上开发的软件仍在使用,因为只要有支持,就无需立即迁移。
总结Java 30周年的发展趋势:企业级应用程序仍然依赖于旧版本和新LTS版本的混合使用。Java已经发展成为一个多功能平台,支持各种环境——其中一些针对云部署进行了优化,另一些则针对服务器端应用程序进行了定制。这种多样性,以及从各种框架、库、LTS版本和其他生态系统工具中进行选择的自由,是Java最大的优势之一。
经过30年的发展,Java已成为最复杂、最广泛的编码生态系统之一,为开发人员提供了构建现代软件的丰富工具。唯一的限制在于如何在这片广阔的领域中做出正确的选择。
服务器代码已上云
Java诞生之初,软件是为服务器端开发的,云技术尚未出现。云计算的兴起在很多方面影响了Java开发实践。
如果说早期主要使用单片架构,那么如今,开发人员则采用微服务架构,从而提高云操作的速度和灵活性。反过来,云原生架构需要新型的Java工具,严重依赖微服务、小型容器、GraalVM原生镜像和其他现代工具,所有这些工具都旨在提高Java在云中的性能。
OpenJDK社区在将Java与云融合的过程中遇到了许多挑战。可以说,过去十年OpenJDK的大部分计划都旨在提升Java在云中的质量,使其能够以更低的成本和更快的速度运行。
得益于这些举措,最新的JDK 24与Java 1.4有了显著的不同。坦白说,Java中没有任何东西是一成不变的。现代LTS版本借助新一代GC实现了更高效的内存使用和垂直扩展,并通过诸如紧凑对象头(目前仍处于实验阶段)等功能减少了内存占用,同时通过大量公开的JEP(增强提案)等促进了开发。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...