摘要:各种新需求新应用层出不尽,各路新生代编程语言异军突起等等,Java未来会不会继续受欢迎?曾经备受关注的Java是否能紧跟时代步伐?新基建时代破茧重生引领云端未来潮流?

1995年第一个Java版本诞生到现在已经25年,它成功的建立了一个开放、成熟、稳定的开源生态。但现在也有各种争议,如版权限制,授权收费,社区投入减少,各种新需求新应用层出不尽,各路新生代编程语言异军突起等等,Java未来会不会继续受欢迎?曾经备受关注的Java是否能紧跟时代步伐?新基建时代破茧重生引领云端未来潮流?

日前华为云DevRun直播间特邀请华为莫斯科研究所系统编程实验室主任Yegor Bugayenko,开源中国创始人兼CTO&码云开发平台负责人红薯,禧天龙科技发展有限公司CTO郭曦三位嘉宾,并由华为云DevCloud首席技术布道师徐毅引导,嘉宾们围绕中俄社区现状和当前Java热点话题进行了讨论。

中俄Java社区知多少

通过红薯和 Yegor Bugayenko两位大咖的介绍,我们对中俄Java社区有了初步的了解。开源中国成立到现在已经有12年的发展历史,对开发者的数量有很大的关注,当前国内业界比较认可的一个数字中国开发者人群规模大约 1000 万,从正常一个公司的技术人员配比来看,直接参与编程的人员比例在 80%左右 。同时根据码云目前超过1000万的仓库推算,国内有大约 200 万的 Java 开发者。在俄罗斯其实从事编程工作的人员不是很多,根据Yegor Bugayenko的初步估计应该在10万左右,由于编程语言的多样性,使用Java的开发者数量不好评估,但也在大多数。

两国开发者都有“自嘲”文化,在中国就比较突出比如技术男,理工男,程序猿,攻城狮,搬砖,大牛等等,比较有争议性,但是随着互联网、高科技、新兴产业的发展,程序员也越来越受欢迎。俄罗斯很多程序员会认为自己是哲学家甚至艺术家,编程和代码帮助人们更深刻的理解这个世界的哲学,数学,宗教,艺术和文化,并以前所未有的效率将思想转化为生产力,随着科技发展,教育普及,现在编程工作越来越像一种普通的工作,但是可以肯定的是从事编程是一个很有“钱”途的工作。

从Java数次历史变更看影响

    • 1991年,Sun公司的James Gosling等人开始开发名称为 Oak (橡树)的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器。
    • 1994年,将Oak语言更名为Java
    • 1998年,JDK1.2时,更名为Java 2 Platform,分为标准版J2SE,企业版J2EE,微型版J2ME,这是 Java 一个重大的版本,修复了早先的一些重要 Bug
    • 2004年,J2SE 5.0 (1.5.0) Tiger老虎
    • 2006年,J2SE 6.0 (1.6.0) Mustang野马
    • 2009年,Oracle 74亿美元收购 Sun
    • 2014年,Java 8 发布,Lambda 表达式支持,而且兼容老版本,堪称奇迹再以后 Java 调整版本发布策略
    • 2018年, Oracle 发布Java 10 并决定每 6 个月发布一个新版本
    • 2019 年1月, Oracle 宣布 Oracle JDK 不再提供免费支持,一些大互联网公司开始推出自己的 JDK,并宣布提供免费技术支持

红薯老师经历Java的多次变化并对其有亲身体会,他认为从整个变更过程看,Java 更多用来开发具体的应用,每次变更对国内影响有限,Java仍然是很受欢迎的语言。

未来Java会不会被取代?哪些语言最有可能取代Java

Java私有化之后, Oracle对社区投入的逐渐减少,出现版权问题、收费问题、企业对Java的依赖等一些问题,这引来了开源社区更多的担忧和猜忌,未来Java会不会被取代?哪些语言最有可能取代Java?

收费、版权等问题是未来各个技术发展必然面对的问题,比较具备争议性。

Java会不会被替代?其实并不是语言本身,而是Java搭建的生态系统,其中有各种各样的组件元素,如Java基础、WEB开发架构、负载均衡、分布式服务框架等,以及对应的应用虚拟机、安卓系统等等。

Java从诞生起就有无数的缺陷,但这些并没有阻止Java的成功。开放就是Java 成功的核心,拥有跨平台、面向对象、泛型编程的特性保证其可运行性、可扩展性和可连接性,并保障了其在Web开发、大数据开发、Android开发和各种后端服务开发等领域都有大量的应用,同时,Java凭借其稳定的性能和较强的扩展性得到了广泛的应用,并且互联网的行业备受认可,未来仍然存在很大的发展空间。

该次活动中我们对“未来最可能取代Java的语言”进行了一轮投票活动,根据参与者的反馈来看,大家认为最有可能取代Java语言的Top3分别是Python(34.99%),JavaScript(23.24%),Go(13.05%),其实每种语言都有自己擅长的领域和方向。

Python主要的领域是大数据和人工智能,在Web开发、大数据开发、人工智能开发、后端服务开发和嵌入式开发等应用比较广泛。主要是因为语言语法简单,调整方便,但是Python在运行性能上与Java还有一定的差距。

JavaScript主要是从事前端任务开发的场景,解决服务器端语言遗留的速度问题,但是随着Node.js的兴起给JavaScript从前端走向后端的机会,未来JavaScript会得到进一步的发展。

Go语言主打性能,特别是在当下的大数据环境下,对性能要求越来越高,Go语言应该能够发挥出更大作用。

企业基于Java开发商业软件有没有比较好的最佳业务实践或者方法

嘉宾郭曦分享了如下的一个真实案例。

最早的三层架构是没有集成层的,IBM/BEA/SAP甚至开源社区很多优秀的产品进入了继承领域,在这一层级以Java为主要开发语言开发的企业服务总线已经占据着企业继承市场90%以上的份额。

应用公有云微服务架构+SAP企业服务总线无缝整合面向互联网的SaaS/PaaS平台,比如多家国内知名电商,是通过公有云+私有云对接的形式,利用云端应用服务器构建自己面向互联网应用后台。通过云端代码托管和自动化构建设施建立自己的代码仓库和配合敏捷开发理论形成企业的应用开发体系,利用云端项目/任务管理软件进行任务分配/质量控制/成本预算核算,利用云端运维管理应用构建企业自己基于ITIL管理体系的运维框架。

最佳实践带来了不错的效果

    • 标准研发流程和经验,研发数据集中存储,防止流失
    • 配置管理改为Git,效率提升30%
    • 减少构建依赖错误,构建效率提高70%
    • 发布部署的出错率降低90%

未来变成语言会是百花齐放的方式往前发展。Java语言生态体系比较健全,开发者数量上占据优势,其自身开放、跨平台、面向对象、泛编程性等特性其他语言也很难取代,未来在其最擅长细分领域如:Web开发、移动互联网开发和大数据(云计算)开发等领域,未来还是会继续保持其优势。

Java 已经25年,历经磨难,却历久弥新,其构建的应用生态也越来越丰富,未来的发展应用会越来越多。文章仅介绍了大咖们在本场直播中的部分精彩观点,欲知详情,请至该活动的华为云社区页面及预告视频和直播回放。

请点击链接查看直播回放:https://bbs.huaweicloud.com/forum/thread-65920-1-1.htm

点击关注,第一时间了解华为云新鲜技术~

年近而立,Java何去何从?的更多相关文章

  1. 【限时免费】近1000G JAVA学习视频下载

    2020的情人节是个极特殊的情人节,面对肆虐的疫情,我们无法出门,宅在家里,也无法阻止你作为一名优秀程序员的梦想. 或许没有鲜花.没有蛋糕…… 姜小白就为大家备好了一份大礼,将自己近几年整理收藏的全网 ...

  2. Java与.net的选择和比较

    跨平台对开发商是一个巨大的诱惑.一次开发,多个平台使用,降低了迁移成本,有利.但Java的开发工具没有.net顺手,对编码人员的要求比.net要高. .net培训成本低,上手快.尤其如果开发人员以前都 ...

  3. Java GUI界面补充总结(不定期补充)

    一.Java中如何设置各类组件透明 感谢原文:https://kslsi.iteye.com/blog/2096608 补充:Frame透明:AWTUtilities.setWindowOpacity ...

  4. 碎碎念,浅饮-------Day30

    这不是关于技术的文章,它偏离了我原来的计划轨迹.但,我相信这将是远远超出了技术的意义使我无论什么价格值. 高考已经开始,不知道在这片宁静的夜空下有多少人已经美美的睡了,香甜憨然.又有多少人这睡着的眼角 ...

  5. ES进阶--02

    第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索 课程大纲 1.为帖子数据增加content字段 POST /forum/article/_bulk{ ...

  6. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  7. 近5年133个Java面试问题列表

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...

  8. 近5年常考Java面试题及答案整理(三)

    上一篇:近5年常考Java面试题及答案整理(二) 68.Java中如何实现序列化,有什么意义? 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写 ...

  9. 近5年常考Java面试题及答案整理(二)

    上一篇:近5年常考Java面试题及答案整理(一) 31.String s = new String("xyz");创建了几个字符串对象? 答:两个对象,一个是静态区的"x ...

随机推荐

  1. kubernetes+Azure DevOps实现.Net Core项目的自动化部署&均衡负载

    1. 前言 2. Net Core项目本身的准备 2.1 dockerfile 2.2 创建kubernetes用于helm的chart包 2.2.1 说明 2.2.2 chart文件目录和文件组成 ...

  2. 切换npm源的几种方法

    我们在使用官方提供的npm源安装各种依赖包的时候,下载速度会很慢,通常需要更换npm源. 我们可以在终端中输入命令 npm config list 来查看 npm 源地址,默认地址为 metrics- ...

  3. 题解 洛谷 P3710 【方方方的数据结构】

    因为有撤销操作,所以修改操作可能会只会存在一段时间,因此把时间看作一维,被修改的序列看作一维. 可以把操作都离线下来,对于每个修改操作,就是在二维平面上对一个矩形进行修改,询问操作,就是查询单点权值. ...

  4. git 缓存密码 unable to access... 403错误

    如果输入了 git config credential.helper 命令之后还是出现了osxkeychain, store 或者 cache 等,说明 git 的配置还是没有被清空,我参考了stac ...

  5. 源码分析清楚 AbstractQueuedSynchronizer

    本文关注以下几点内容: 深入理解 ReentrantLock 公平锁和非公平锁的区别 深入分析 AbstractQueuedSynchronizer 中的 ConditionObject 深入理解 j ...

  6. 水题----B - Badge CodeForces - 1020B

    In Summer Informatics School, if a student doesn't behave well, teachers make a hole in his badge. A ...

  7. 大数据篇:一文读懂@数据仓库(PPT文字版)

    大数据篇:一文读懂@数据仓库 1 网络词汇总结 1.1 数据中台 数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念. 数据中台是一套可持续"让企业的数据用起 ...

  8. 重学c#系列——非托管实例(五)

    前言 托管资源到是好,有垃圾回收资源可以帮忙,即使需要我们的一些小小的调试来优化,也是让人感到欣慰的.但是非托管资源就显得苍白无力了,需要程序员自己去设计回收,同样有设计的地方也就能体现出程序员的设计 ...

  9. Java复习总结(二)Java SE 面试题

    Java SE基础知识 目录 Java SE 1. 请你谈谈Java中是如何支持正则表达式操作的? 2. 请你简单描述一下正则表达式及其用途. 3. 请你比较一下Java和JavaSciprt? 4. ...

  10. 萌新学渗透系列之Hack The Box_Devel

    我将我的walkthrough过程用视频解说的形式记载 视频地址https://www.bilibili.com/video/BV1Ck4y1B7DB 一是因为看我视频的后来者应该都是刚入门的新手,视 ...