文章目录

  • 背景
  • 以Java的发展看
  • 未来的语言形态

背景

带的实习生小伙伴问了我一个问题,大意是未来会不会出现一个全能语言,能解决从数据管理,缓存管理,数据库交互,多线程,NIO,协程,桌面端,移动端,并适配网页样式的所有问题。
这个问题真的很有趣,因为这个问题指向了一个编程语言发展的绕不过去的方向性选择:

究竟是要大而全,还是要小而美

以Java的发展看

我大约从2016年那会儿开始真正参与这个行业。那个时候Java还有一大部分公司在用SSM架构/SSH架构,没有上微服务也没有上容器,更遑论service mesh。甚至于前端也分属后端开发,用的技术基本是JSP或者THYMELEAF。少部分公司为了拓展Java的可用范围节约人力,正在努力探索Swing在客户端开发的潜力。
在这种情况下,其实在六年前那个时刻,Java就是一个大而全的语言。它用Spring做项目的整体管理,用Mybatis或者hibernate做数据库交互,用线程池技术做多线程,用Jsp做前端,用Swing做客户端,发版靠自行打包手动部署,服务监控靠经验,服务缩扩容靠怼人力。

但是到了2022年末的这个微凉的冬天,Java的绝大部分职能都被拆分了,分散到了各种技术模块

从终端到服务器,大概可以这么看:
前端页面:React / Vue等
桌面:Electron / QT等
打包:ci/cd持续交付
部署:service mesh弹性缩扩容、
监控:grafana / promethues监控预警系统
架构:微服务高度解藕
反向代理:Nginx / Kong
缓存:Redis / Mongo
数据库:mysql / Tidb / Oracle / CK / ES / Hbase / Hive
文件存储:AWS / COS等

核心思路就是:让专业的模块做专业的事,一切以项目的高效高可用快速推进为准。

未来的语言形态

我们来思考一下一个常见的案例:
登陆注册鉴权等模块使用Nodejs网关,而涉及真实服务则反向代理分发到各个不同的模块。可能是Python的某些AI模块,可能是Java的某些流批处理模块,也可能是Go / Rust的什么别的功能。

这个案例告诉我们,不仅仅是语言内的功能划分,甚至于不同的业务功能模块,也在迅速解藕。某项功能有更合适的语言,就一定要用更合适的语言。登陆注册鉴权在Java或者Go做的太重,就换Nodejs;数学计算 / AI计算在Java或者Go或者Nodejs都不够完善,就用Python。

也就是说,未来的语言发展方向,必然是数个小而美的语言,在各自擅长的领域成为不可替代的规范,然后多个语言通过统一规范相互交互,成为一个统一的大型微服务。这个微服务架构不再是某一个语言仅仅按照功能区块进行区分,而是按照不同语言的擅长领域,针对性的匹配对应业务。

这就对软件工程师、架构师提出了更高的要求,要对不同的语言体系有高度敏感,同时也要能感知业务形态内容的发展变化。

编程语言未来发展趋势之我见相关推荐

  1. 综述:编程语言的发展趋势及未来方向

    程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民.国内的计算机教育和工程培训,似乎一直在宣传"语言不重要,重要的是思想","语言一通百通" ...

  2. 教你一招看清编程语言的发展趋势及未来方向

    程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民.国内的计算机教育和工程培训,似乎一直在宣传"语言不重要,重要的是思想","语言一通百通" ...

  3. 未来计算机语言的发展趋势,编程语言的发展趋势及未来方向 I

    编程语言的发展趋势及未来方向(1):历史回顾及趋势概述 这是Anders Hejlsberg(不用介绍这是谁了吧)在比利时TechDays 2010所做的开场演讲.由于最近我在博客上关于语言的讨论比较 ...

  4. 编程语言的发展趋势及未来方向

    声明:转载自:http://www.csdn.net/article/2010-08-31/278848 感谢作者的整理,可以让语言使用者对语言的特性有更进一步的了解. 程序设计离不开编程语言,但是编 ...

  5. 人工智能是未来发展趋势吗 用Python入门怎么样 赶紧看看

    人工智能是未来发展趋势吗?用Python入门怎么样?人工智能引领科技发展,首选编程语言是Python.人工智能已被认为是引领新一轮科技革命和产业变革的战略性技术.当前,我国大力发展人工智能的春天已至, ...

  6. 一文读懂知识付费SaaS行业:未来发展趋势如何?

    一.IaaS.SaaS.PaaS的定义 IaaS(Infrastructure as a service – 基础设施即服务):用户可以在云服务提供商提供的基础设施上部署和运行任何软件,包括操作系统和 ...

  7. s21.云原生发展经历的阶段与未来发展趋势

    1.云原生发展经历的阶段与未来发展趋势 1.1 云计算的发展历程 "云"中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费.这种特性经常被称为像 ...

  8. 编程语言的发展趋势:从没有分号,到DSL

    在上一周,我阐述了一个观点:随着软件行业的逐渐成熟,算法将慢慢不再成为软件行业工作者必备的知识(但一定是信息学相关专业必学的知识).因为算法将被越来越多的封装,被直接使用.这就好比数据库,近乎是每一个 ...

  9. 自主系统的未来发展趋势

    王小凤 翻译 摘要 自主系统(AS)被认为是从反射式.指令式和自适应式智能发展而来的最先进的智能系统.在首届IEEEICAS'21上,组织了一个关于"自主系统的未来发展"的全体小组 ...

最新文章

  1. Spring Boot项目快速搭建
  2. 知识点1: 进度条随数据变化,并添加渐变样式
  3. 查看linux是否lvm分区,linux LVM分区查看dm设备
  4. 表面上承认错误_做一个可以承认错误的领导者
  5. python后台架构Django教程——manage.py命令
  6. Android: Android源码下载方法详解
  7. 惠普局域网共享打印机设置_打印机共享怎么设置 惠普打印机共享设置步骤介绍【详解】...
  8. 【华为云·云筑2020】AI考卷答案
  9. 【郝生活】如何下载微博视频(PC)
  10. 如何用网站统计工具追踪访客来路
  11. Android开发技术框架和编码规范
  12. Linux平台总线驱动设备模型
  13. 从零开始开发微信小程序(四):微信小程序绑定系统账号并授权登录之后台端...
  14. 阿德莱德大学计算机本科好吗,澳洲留学:阿德莱德大学计算机专业好不好?
  15. 《奔跑吧 Linux内核》之处理器体系结构
  16. NC 登录时,报“java.lang.reflect.UndeclaredThrowableException:null”错误
  17. 解决cuid卡写数据后,无法读取。以及救卡方法
  18. Python 打包适用于win 7/xp系统的应用程序(exe)
  19. DC-DC自举电容(BOOT)几个问题
  20. 基于Android的高考志愿填报咨询系统APP

热门文章

  1. php explode 效率,从源码去理解PHP的explode()函数
  2. 新东方人工智能中台建设和AI部门管理经验分享
  3. 手拍试卷的位置以及打印矫正
  4. java毕业设计纺织代加工车间生产状态监测系统Mybatis+系统+数据库+调试部署
  5. 谷歌官方正式发布了Go1.20稳定版「8千字详解」
  6. 《啥是佩奇》怎么就刷屏了?
  7. GNS3 vpcs ip、网关设置
  8. Pytorch 数据预处理
  9. springboot集成sitemesh
  10. 2023-6-2第三十三天