极客时间已完结课程限时免费阅读

大咖对话 | 不可替代的Java:生态与程序员是两道护城河

大咖对话 | 不可替代的Java:生态与程序员是两道护城河-极客时间

大咖对话 | 不可替代的Java:生态与程序员是两道护城河

讲述:黄洲君

时长08:03大小3.68M

你好!
本周作客“大咖对话”的嘉宾是杨晓峰,他目前是 Java 核心类库北京团队 leader,首席工程师。2011 年加入 Oracle Java 团队,经历了从 JDK 7 到 JDK 11 的研发过程,目前领导 Java 核心类库北京团队,专注于 JDK 核心类库新特性的测试和开发,希望对 Java 技术的演进和普及做出贡献。
极客时间:目前您的工作中,技术和管理各自占的比重大概是多少?有什么心得?
杨晓峰:技术和管理各占一半一半,因为我不做人事管理,更多的是属于技术 leader。Leader 和 manager 是不同的,对 leader 来说,一方面思考更多的是团队未来的技术路线图,并要做好短期和长期的计划;另一方面要让团队有士气、让团队出成果,每个人都清楚自己的目标,实现自己的价值。
首先,作为技术上的带头人,一定要弄明白未来的方向什么是对的、什么是错的。这个对错是带引号的,并非那种绝对的对错,而是要清楚公司整体的目标与未来一段时间内的规划,作为 leader 定出的路线图要与部门或是公司的整体方向保持一致。
如果 leader 对目标的理解有偏差,很可能团队辛辛苦苦做事,最后却得不到认可,这是很伤士气的。因此,在具体的操作上,作为 Leader,会积极地去和我的上级和合作团队去沟通,保证我带着大家走的路是没有走偏的。
其次,我所涉及的管理,更多的是让团队出成果、有士气,攻克前路上的难点,而有成果是有士气的保证。比如现在我们的目标,就是把 JDK 11 发布计划里的内容,按照既定周期把相关任务高质量的完成好。
在具体执行中,我的原则是不能把目标设定的太大,即使是一个大的目标,最好也采用迭代的方式,把它拆分成一个一个小的可验证的里程碑。这样做的好处是团队能一直看到成果,了解自己所做事情的价值,否则人是很难保持一个长久的状态的。如果在被认可之前走太久的话,难免会感觉到倦怠与疲惫。
这些都是一些实际执行中的做法,并没有太多高大上的东西,但对我来说,带团队就是这样一步一步踏踏实实往前走。
当然,每个产品的要点不一样,对 Java 来说,质量是首先要保证的,对质量的要求会远远高于对数量和对速度的要求。因为 Java 是一个非常基础的平台,它也是整个 Java 生态的基础,一旦它出了问题,就会波及在它之上的所有工具、产品、厂商,影响会非常非常大,因此基础平台必须要谨慎。
但对于创业期的产品来说,可能会以一些可接受的质量代价来换取速度,这些都是要看实际情况来判断的。
极客时间:Java 已经更新到版本 10,但有调查显示目前绝大部分的程序员仍在使用 Java 8,不知道这一数据是否准确?判断是否迁移需要考量哪些关键因素?
杨晓峰:的确是这样,目前大部分用户还在使用 Java 8,还有人在使用 Java 7,甚至是 Java 6,但与此同时,新版本的热度和接受度在不断提高。主要原因有以下两点:
第一个原因,语言版本升级从来不是个一蹴可就的事情。Java 是一个基础平台,它的生态中包涵大量类库工具,比如 Maven、Spring、Guava 等,还有各种基于它的基础产品,比如 Cassandra、Hadoop 等。
对一个严肃的厂商来说,升级不是一个简单的事情,选择升级 Java 的前提是所有主要开源类库、软件、第三方厂商产品都已经支持了新版本。很高兴的是,目前主流的项目都已经逐渐完成了对 Java 10 等新版本的支持。除此之外,还得考虑新版本中有什么特性是自己必须的,能对自己的效率产生很大提高的,还有安全、性能等不同角度的考量。而这个过程必然是需要一定时间的。
第二个原因,在过去的发版模式里,Oracle 为每个大的 Java 版本都提供了长期升级,JDK 8 按目前计划至少到明年年初才会停止免费升级,相当于免费升级了 5 年。坦白说,对比主流产品,Java 的免费支持周期,从任何角度来说都不能算短,背后是厂商大量的、持续的、默默无闻的投入。
如果想升级的话,成熟的 JDK10,或者即将发布的 JDK 11 都会是一个好的选择。例如,JDK 11 是一个长期支持版本,按照目前的发布计划,它会有非常长的支持周期。这是一个非常重要的考虑因素,Java 这么多年起起伏伏,但却能一直稳定保持在编程语言第一的位置,跟背后有一个可信厂商的持续投入是分不开的。
另外,从新特性的角度出发,新版本里,从强大的 ZGC、更好的 G1 到基本的字符串改进,再到各种基础类库、协议,各方面都有非常大的提高,不是修修补补,而是本身能力的巨大提升。因此,虽然升级到新版本会有一些学习曲线,但一定是值得的。
极客时间:现在很多新语言都极具冲击力,您能谈谈 Java 目前面临的最大挑战,以及未来的发展趋势么?
杨晓峰:虽然现在各种新语言活跃,但我认为 Java 面临的最大的挑战并不在于外部语言的冲击,而是计算模式和场景的变化。
过去十几年里,Java 平台主要的投入都致力于让它可以在那种大吞吐量的、长期运行的服务器端跑的好。
但云计算兴起后,微服务、Serverless 等新的计算模式对编程语言的技术要求变成支持快速启动、高数据密度、短时间运行的工作负载等。另外像大数据、人工智能、深度学习这些领域,会更看中语言对数据的运算能力等。
而这些方面恰恰是 Java 仍然需要进一步改进的。目前,Java 也在不断精进、不断加强这些方面的能力,比如 Amber,旨在大大改善 Java 的开发效率,让语法变得简单,更加符合现代的编程思维;比如 Valhalla,旨在提高 Java 的数据处理能力,支持更加高效的数据处理和复杂数据类型等;比如 Panama,旨在解决和本地代码交互的效率等问题;比如 Loom,旨在让并发相关的开发变得更高效和平易近人,还有引入 Fiber 等类似协程的机制。
除了不断提升基础能力、提升应用性能之外,Java 也在积极做瘦身,去掉一些已经退出历史舞台的技术,甩掉一些包袱,让自己变得更简洁、更高效。
极客时间:您能用一句话来概括 Java 的核心竞争力么?能进一步介绍一下吗?
杨晓峰:Java 最大的核心竞争力来源于全球超过 1200 万的 Java 程序员,庞大的 Java 生态,海量的类库、工具、产品构建的无所不能的竞争力。
从语言特性来讲,Java 有它的优势,比如扩展性、可靠性、安全性、强大的 JVM 等。你可以重新设计一个语言,去掉 Java 的历史包袱,保留 Java 的长处,还能吸收其他语言的优点。然而,Java 已经聚集起来的生态是不可替代的,如果真想替代,那将是一个庞大的不可估量的投资,另外重复制造轮子的价值是什么呢。
很多问题不是靠语言本身能解决的,而是要靠语言衍生出的各种类库和工具,因此,选择了 Java 就相当于选择了一个最可靠的一站式解决平台。比如想搭建微服务框架,在 Java 生态中能找到各种快速搭建的框架和方案,还能找到足够多的优秀程序员。
总结来说,Java 有着世界上最完整的生态、最庞大的程序员群体。目前,从小型设备到超大规模的应用开发中,Java 几乎是不可替代的,真正的大规模系统很少能够离开 Java。
分享给需要的人,Ta购买本课程,你将得29
生成海报并分享

赞 3

提建议

上一篇
第60讲 | 正确对待技术演讲中的失误
下一篇
第61讲 | 刘俊强:技术最高决策者应该关注技术细节吗?
unpreview
 写留言

精选留言(2)

  • Michael
    2019-09-02
    java是世界上最好的语言
    5
  • 苏近之
    2021-04-11
    重复造轮子有时候不是为了创造价值,而是平摊风险。再创造轮子的过程中,会出现颠覆的创新。
    2