最近一直在做团队招聘工作,也会有一些基友问我该学习点啥新鲜的东西,今天花点时间把一些零散的想法整理一下供大家审阅,以下就个人关注的Java、Golang、Rust说说。
1 基础介绍(来自百度百科)
2 语言本身
2.1 语言因素
- 维护组织人力投入稳定性,为什么提到“组织”不是“个人”,主要是个人长期稳定投入无法保障;
- 语言BUG的修复响应能力和速度,这个就不用多说,BUG丢那几个月不管就不好;
- 语言新特性迭代周期,项目大到一定程度就越发依赖LTS版本周期,频繁升级风险很大;
- 运行平台兼容性及开发工具支持,能适配开发和运行平台约丰富越好,而且良好的编辑器支持太重要了,我可不想回到SourceInsight写跨平台写C的时代;
2.2 人才及生态因素
- 大公司对某一语言和技术带来的影响是非常大的,会形成大的学习热潮;
- DevOps相关配套越完善越让你运行时省心;
- 多查查你经常用搞得开源组件是不是都支持该语言本身;
如果只是写个Demo自己玩玩以上直接忽略,怎么好玩怎么酷就怎么整;如果项目是多人维护,而且维护周期很长(比如5-10年)就真的要考虑以上因素了;
| 语言 | 语言特性 | 标注库质量 | 维护稳定性 | 组件支持程度 | 开发工具 | 人才基数 | 不稳定因素 |
|---|---|---|---|---|---|---|---|
| Java | 非常完善 | 极好 | 极好 | 极好 | 极好 | 非常大 | Oracle授权 |
| Go | 较好 | 较好 | 极好 | 较好 | 较好 | 一般 | 暂无 |
| Rust | 较好 | 较好 | 极好 | 一般 | 一般 | 较少 | 维护组织 |
3 人才成本
3.1 成本政策
- 云时代节省内存对成本的重要性(都是GC语言但是Go相对Java能省下不少内存成本);
- 地方政策对语言的一些选择,比如一些国家宗教特殊性;
- 相关人才在市场上占比,可以直接降低团队人才培养成本;
3.2 人才储备
- 云时代Golang必要性(标准库稳定、语言兼容、编译速度、分发方便等);
- Rust强性能要求场景及IoT低运行环境强要求;
- 自有中间件定制构建,越靠近机器对性能要求越高;
3 2022~2023 关注比重
综合考虑我们部门技能关注比重
- Java(作为业务的胶水语言) -- 85%
- Golang -- 10%
- Rust -- 5%