年近而立,Java何去何从?
摘要:各种新需求新应用层出不尽,各路新生代编程语言异军突起等等,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何去何从?的更多相关文章
- 【限时免费】近1000G JAVA学习视频下载
2020的情人节是个极特殊的情人节,面对肆虐的疫情,我们无法出门,宅在家里,也无法阻止你作为一名优秀程序员的梦想. 或许没有鲜花.没有蛋糕…… 姜小白就为大家备好了一份大礼,将自己近几年整理收藏的全网 ...
- Java与.net的选择和比较
跨平台对开发商是一个巨大的诱惑.一次开发,多个平台使用,降低了迁移成本,有利.但Java的开发工具没有.net顺手,对编码人员的要求比.net要高. .net培训成本低,上手快.尤其如果开发人员以前都 ...
- Java GUI界面补充总结(不定期补充)
一.Java中如何设置各类组件透明 感谢原文:https://kslsi.iteye.com/blog/2096608 补充:Frame透明:AWTUtilities.setWindowOpacity ...
- 碎碎念,浅饮-------Day30
这不是关于技术的文章,它偏离了我原来的计划轨迹.但,我相信这将是远远超出了技术的意义使我无论什么价格值. 高考已经开始,不知道在这片宁静的夜空下有多少人已经美美的睡了,香甜憨然.又有多少人这睡着的眼角 ...
- ES进阶--02
第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索 课程大纲 1.为帖子数据增加content字段 POST /forum/article/_bulk{ ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 近5年133个Java面试问题列表
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...
- 近5年常考Java面试题及答案整理(三)
上一篇:近5年常考Java面试题及答案整理(二) 68.Java中如何实现序列化,有什么意义? 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写 ...
- 近5年常考Java面试题及答案整理(二)
上一篇:近5年常考Java面试题及答案整理(一) 31.String s = new String("xyz");创建了几个字符串对象? 答:两个对象,一个是静态区的"x ...
随机推荐
- css:实现文本两行或多行文本溢出显示省略号
div{ display: -webkit-box; -webkit-box-orient: vertical; word-break: break-all; word-wrap: break-wor ...
- 使用recv函数和send函数的技巧
一些述说 recv函数用于socket通信中接收消息,接口定义如下: int recv(SOCKET s, char *buf, int len, int flags) 参数一:指定接收端套接字描述符 ...
- python3的字符串常用方法
find()# 方法 find()# 范围查找子串,返回索引值,找不到返回-1 # 语法 s.find(substring, start=0, end=len(string)) # 参数 # subs ...
- [leetcode/lintcode 题解] Amazon面试题:连接棒材的最低费用
为了装修新房,你需要加工一些长度为正整数的棒材 sticks. 如果要将长度分别为 X 和 Y 的两根棒材连接在一起,你需要支付 X + Y 的费用. 由于施工需要,你必须将所有棒材连接成一根. 返回 ...
- 1.pandas打开和读取文件
最近在公司在弄数据分析相关的项目,数据分析就免不了要先对数据进行处理,也就自然避不开关于excel文档的初始化操作了. 一段时间之后,发现pandas更加符合我的项目要求,所以,将一些常规操作记录下来 ...
- Myeclipse-10.7.1版本破解
自从上次写了IDEA2020版本破解方式,这次写一下Myeclipse10.7.1版本破解 下方链接是IDEA破解教程 点击即可跳转 Myeclipse下载地址这里我上传到了百度网盘 这里提取码 ...
- Day15_用户中心接口说明
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 用户中心 ...
- Oracle帐户被锁了,如何解锁
原文链接:https://jingyan.baidu.com/article/25648fc144b76b9191fd0087.html 背景:Oracle帐户在密码被连续输入错误3次的情况下就会锁定 ...
- 如何使用 PHP 语言来编码和解码 JSON 对象
PHP JSON 本章节我们将为大家介绍如何使用 PHP 语言来编码和解码 JSON 对象. 环境配置 在 php5.2.0 及以上版本已经内置 JSON 扩展. JSON 函数 函数 描述 json ...
- Virtuoso 中 display.drf、techfile.tf、tech.db 之间的关系,以及 Packet 在它们之间的作用
https://www.cnblogs.com/yeungchie/ 一般工艺库下的"技术文件"有 tech.db 和 techfile.tf , Packet 是 display ...