Java 20周年,你会一路追随么?

简介:

Java,大学里学过的一门编程语言课程?Java,IT领域求职神器?无数的程序员投身到Java的怀抱,无数的商业应用基于Java构建。从1995年5月23日Java语言诞生,如今Java已经走过了20年。20年来,Java经历过辉煌,还进入过低谷,但是,20年来技术的快速发展,却没有让这个编程语言没落,甚至还经常在各大编程语言排行榜中位列榜首。是什么支撑着Java走到今天?Java今后的发展又会走向何处?下一个20年里,你还会一直追随Java么?

Java成功的保证

Java是由Sun公司在1995年正式推出的面向对象程序设计语言,自面市以来,发展迅速,至今依旧是900万开发者的首选编程语言,也是30亿台设备的基础程序。基于Java的媒体设备已达1.25亿台,Java卡的出货量也已超过了100亿个。在全球范围内,Java技术已广泛应用于提高道路和航空安全性、从大洋深处采集科学应用所需的信息、提升作物质量、通过量化处理来协助战胜饥饿、模拟人的大脑与肌骨系统以及游戏等各个领域。

甲骨文公司Java开发人员关系团队总监Sharat Chander认为,Java最大的成功在于Java社区,Java社区的蓬勃发展,以及Java社区的所有开发人员为Java过去二十年所作出的贡献,是Java生命力最重要的来源。

甲骨文公司Java开发人员关系团队总监Sharat Chander

Java 20年来的成功,最主要的基础就是Java社区,通过社区中的技术专家们共同努力,推进Java的快速发展。在未来,Oracle会通过三种方式与整个Java社区共同成长。首先是Java社区的进程,通过Java社区进程来确保社区的开发人员与Oracle共同推动Java成长;第二,通过Java用户群和用户组来推动Java的发展,Java用户群是本地的Java开发人员、工程师等共同组成的社群,他们互相之间学习,共同进行头脑风暴,从其他同行身上学习Java的发展;第三,就是Java Champion项目,是Java社区中的技术领袖、领军人物,他们在使用Java的过程中会产生创新性的想法,然后推动了Java的发展。

其次,Java成功的保障,来源于技术不断的进步。当然,技术的进步也有赖于社区所有开发人员共同努力和贡献,而Oracle也会不断地倾听所有Java社区中的技术人员、开发人员的反馈,然后集成到Java技术演变的进程中。

第三则是Oracle的管理功能,所谓管理的职能,其实就是Oracle扮演好推动Java社区发展,采集Java社区中所有开发人员、程序人员和所有其他社区的组成人员共同的声音,然后把所有的意见集中在一起反应到整个Java技术革新中。

正如Sharat Chander所说:“Java已经成为我们日常工作和生活中极为重要的一部分,它支撑着我们每天使用的各种软件。从企业大数据、云、社交媒体、移动和物联网的创新,一直到车联网、智能手机和电子游戏,Java不断帮助开发者挑战技术创新的极限。”

Java的优势

众所周知,Java的最大优势在于“一次编译,到处运行”,而如今,开发语言和开发平台众多,也不乏有些具备跨平台功能。Java如今还能保持这样的优势么?

甲骨文公司Java平台开发事业部开发副总裁Georges Saab表示,当年提出“一次编译,到处运行”是在90年代中期,桌面机器比较盛行,而桌面操作系统也有’很多,因此,Java的“一次变异,到处运行”的优势就很明显。而如今,世界上绝大多数的服务器都是在Java基础之上,而原先的“一次编译,到处运行”的意义就更加重要。“过去二十年的经验告诉我们,不断地证明你如果用Java语言来进行编译,能够最大程度上保护你所付出的辛勤复杂,能够在技术不断革新的过程当中,能够给你提供更好的保障。”

甲骨文公司Java平台开发事业部开发副总裁Georges Saab

Java不断地在和世界各地制作硬件和操作系统的厂商保持密切合作,来确保所有新的硬件以及操作系统的技术革新一旦出现后,Java能够充分被支持,并且可以充分地利用硬件和操作系统所产生的技术的优化。

提高Java推出的透明度

2009年,当Oracle收购Sun公司后,专门组成了BEA团地来负责具体的Java实施工作,重新考虑为Java社区以及用户的承诺。而在发布Java 7时,Oracle遇到了一些困难。是将Java所有承诺都做完再发布,还是按照既定时间发布,但有些功能没有完成,因此发布的是不完整的。最终,Oracle决定听从Java社区中技术人言的意见,基于大家的呼声和反馈,最终选择按时发布Java 7,没有完成的功能将在Java 8中完成。

Georges Saab强调,Oracle希望提高发布过程的透明度,通过OpenJDK提升项目,通过社区可以预见的方式来进行发布。

在Oracle接手Java后,曾一度不被业界看弄好,打补丁修复漏洞的速度一直是Oracle的短板,再加之六年的时间中,Java仅发布了2个版本,未免也会让Java开发者有些失望。Georges Saab表示,“Java相关的发布时间表都在一年前公布,Oracle会严格按照公布的时间来发布。例如,每个季度的安全补丁发布,大型版本的发布做到每两年一次,小型的发布时间在6个月左右。”

Java的未来

目前,Oracle和Java社区现在主要专注于进行Java 9的创新。该版本的主要特色是Project Jigsaw,其目的是让Java平台模块化,让其能够针对更广泛的设备进行扩展,让开发人员更容易建立和维护类库和大型应用,同时提升安全性、可维护性和性能。Java 9的其他特性还包括Java Shell(用于评估Java代码片段的交互式工具)、一个新的HTTP客户端应用程序接口(支持HTTP/2和网络插座)、一个连接基于Linux的ARM AArch64架构的端口、对现有应用程序接口进行的众多更新和重大性能改进。

未来的Java,又会有哪些创新呢?Georges Saab表示,过去大部分应用会受CPU的限制,而未来内存应该会成为瓶颈。怎样优化内存分布、优化数据的结构,使同样的资源能够发挥更大的作用,是Java未来的趋势。

对于Java感兴趣的用户,可以在OpenJDK JEP(即JDK Enhancement Proposal,JDK增强方案)的进程页面中,查看大家正在讨论的方案和思路。同时,还可以查看名为Valhalla的项目,该项目的着眼点位于Java主体与Java对象之间,是专门研究Java 9之后的问题。

Georges Saab表示,“我们一直在努力,确保Java社区继续保持活力、充满干劲并推动该项技术不断发展。二十岁对于人类来说仅仅算是步入青年,我们期待着Java能够继续充 满生机地迎来下一个二十年。”


作者:鸢玮

来源:51CTO


相关文章
|
4月前
|
NoSQL Java 应用服务中间件
六年Java开发,分享年薪50W+架构师一路成长的辛酸
13年下半年接触java,奇遇一般参加了java培训,期间甘苦自知。14年初如愿找到人生第一份工作,工资3k;对于之前的付出也算是回报吧 ,对于当时的我已经很满足了。 但是后来没想到公司是个坑, 入司半年有余,写的代码屈指可数;但是却结交了一位良师益友对我以后的职业发展和技术上提供了明灯,给予了不少帮助。所以说(塞翁失马,焉知非福)还是有些道理的。
|
11月前
|
缓存 负载均衡 NoSQL
六年Java开发,分享年薪50W+架构师一路成长的辛酸
13年下半年接触java,奇遇一般参加了java培训,期间甘苦自知。14年初如愿找到人生第一份工作,工资3k;对于之前的付出也算是回报吧 ,对于当时的我已经很满足了。 但是后来没想到公司是个坑, 入司半年有余,写的代码屈指可数;但是却结交了一位良师益友对我以后的职业发展和技术上提供了明灯,给予了不少帮助。所以说(塞翁失马,焉知非福)还是有些道理的。
|
14天前
|
算法 Java 开发者
Java中的多线程编程:概念、实现与性能优化
【4月更文挑战第9天】在Java编程中,多线程是一种强大的工具,它允许开发者创建并发执行的程序,提高系统的响应性和吞吐量。本文将深入探讨Java多线程的核心概念,包括线程的生命周期、线程同步机制以及线程池的使用。接着,我们将展示如何通过继承Thread类和实现Runnable接口来创建线程,并讨论各自的优缺点。此外,文章还将介绍高级主题,如死锁的预防、避免和检测,以及如何使用并发集合和原子变量来提高多线程程序的性能和安全性。最后,我们将提供一些实用的性能优化技巧,帮助开发者编写出更高效、更稳定的多线程应用程序。
|
12天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第11天】 在Java中,高效的并发编程是提升应用性能和响应能力的关键。本文将探讨Java并发的核心概念,包括线程安全、锁机制、线程池以及并发集合等,同时提供实用的编程技巧和最佳实践,帮助开发者在保证线程安全的前提下,优化程序性能。我们将通过分析常见的并发问题,如竞态条件、死锁,以及如何利用现代Java并发工具来避免这些问题,从而构建更加健壮和高效的多线程应用程序。
|
4天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
5天前
|
安全 Java
java多线程(一)(火车售票)
java多线程(一)(火车售票)
|
5天前
|
安全 Java 调度
Java并发编程:深入理解线程与锁
【4月更文挑战第18天】本文探讨了Java中的线程和锁机制,包括线程的创建(通过Thread类、Runnable接口或Callable/Future)及其生命周期。Java提供多种锁机制,如`synchronized`关键字、ReentrantLock和ReadWriteLock,以确保并发访问共享资源的安全。此外,文章还介绍了高级并发工具,如Semaphore(控制并发线程数)、CountDownLatch(线程间等待)和CyclicBarrier(同步多个线程)。掌握这些知识对于编写高效、正确的并发程序至关重要。
|
5天前
|
安全 Java 程序员
Java中的多线程并发编程实践
【4月更文挑战第18天】在现代软件开发中,为了提高程序性能和响应速度,经常需要利用多线程技术来实现并发执行。本文将深入探讨Java语言中的多线程机制,包括线程的创建、启动、同步以及线程池的使用等关键技术点。我们将通过具体代码实例,分析多线程编程的优势与挑战,并提出一系列优化策略来确保多线程环境下的程序稳定性和性能。
|
6天前
|
缓存 分布式计算 监控
Java并发编程:深入理解线程池
【4月更文挑战第17天】在Java并发编程中,线程池是一种非常重要的技术,它可以有效地管理和控制线程的执行,提高系统的性能和稳定性。本文将深入探讨Java线程池的工作原理,使用方法以及在实际开发中的应用场景,帮助读者更好地理解和使用Java线程池。
|
6天前
|
存储 安全 Java
Java中的容器,线程安全和线程不安全
Java中的容器,线程安全和线程不安全
15 1