还在死守Java,该学习一下GoLang和Rust

344 阅读2分钟

最近一直在做团队招聘工作,也会有一些基友问我该学习点啥新鲜的东西,今天花点时间把一些零散的想法整理一下供大家审阅,以下就个人关注的Java、Golang、Rust说说。

1 基础介绍(来自百度百科)

image.png image.png

image.png

2 语言本身

2.1 语言因素
  1. 维护组织人力投入稳定性,为什么提到“组织”不是“个人”,主要是个人长期稳定投入无法保障;
  2. 语言BUG的修复响应能力和速度,这个就不用多说,BUG丢那几个月不管就不好;
  3. 语言新特性迭代周期,项目大到一定程度就越发依赖LTS版本周期,频繁升级风险很大;
  4. 运行平台兼容性及开发工具支持,能适配开发和运行平台约丰富越好,而且良好的编辑器支持太重要了,我可不想回到SourceInsight写跨平台写C的时代;
2.2 人才及生态因素
  1. 大公司对某一语言和技术带来的影响是非常大的,会形成大的学习热潮;
  2. DevOps相关配套越完善越让你运行时省心;
  3. 多查查你经常用搞得开源组件是不是都支持该语言本身;

如果只是写个Demo自己玩玩以上直接忽略,怎么好玩怎么酷就怎么整;如果项目是多人维护,而且维护周期很长(比如5-10年)就真的要考虑以上因素了;

语言语言特性标注库质量维护稳定性组件支持程度开发工具人才基数不稳定因素
Java非常完善极好极好极好极好非常大Oracle授权
Go较好较好极好较好较好一般暂无
Rust较好较好极好一般一般较少维护组织

3 人才成本

3.1 成本政策
  1. 云时代节省内存对成本的重要性(都是GC语言但是Go相对Java能省下不少内存成本);
  2. 地方政策对语言的一些选择,比如一些国家宗教特殊性;
  3. 相关人才在市场上占比,可以直接降低团队人才培养成本;
3.2 人才储备
  1. 云时代Golang必要性(标准库稳定、语言兼容、编译速度、分发方便等);
  2. Rust强性能要求场景及IoT低运行环境强要求;
  3. 自有中间件定制构建,越靠近机器对性能要求越高;

3 2022~2023 关注比重

综合考虑我们部门技能关注比重

  1. Java(作为业务的胶水语言) -- 85%
  2. Golang -- 10%
  3. Rust -- 5%