公司新来CTO,上线5年的Java项目用Rust重构?
有网友吐槽:新来的CTO把我们全组都rust了。。。
不是简单的重构,而是要把一个上线5年多的java项目,用rust重构。
而且CTO非常强硬,对全组人说:要么rust,要么go。
这个go,是不是可以有两种理解?
评论区一下炸锅了。
有网友调侃:你和cto说:你只是简单的做了对比,我没看到思考在哪儿,下班之前我希望看到一份有思考的文章。
有人分析了cto要rust的原因:rust轮子少,新cto容易出东西。
也有人安慰说,没说,等几个月,ceo就让他go了。
内心阳光的网友则安慰说:那也挺好,JAVA现在比较饱和,不好就业,可以拿着工资学rust。
比较阴谋论的说法则是:目的不是rust,而是把老员工赶走,培养嫡系亲信!
总之是各有各的看法。
有一说一,Rust还是有很多优势的,比如高性能、高安全和可靠性——
Rust 拥有不亚于 C 的性能;在引擎层面,Rust 具有可靠的安全性和稳定性;在数据接入层,Rust 足够底层,可以做更多其它语言比较吃力的事。
此外,对于企业级生产项目的开发,采用 Rust 更能保证程序的稳定性。
但是,Rust在现阶段也存在一些问题,包括:
第一,上手门槛高,导致市场上相关的工程师较少,人不好招。企业想扩大产出时招不到人,又要面临现有人员离职后无人能接手相关项目的风险。
第二,相关的生态还比较弱,还有很多轮子需要造,特别是高并发和低延迟部分。Rust 相关的成熟库还是太少,纯从零开始造的轮子,还是需要企业级的打磨才能更可靠,而造轮子和打磨都是需要时间的。
第三,http://crates.io 上的库大部分都还在 0.x 版本 ,1.x 以上版本的库很少,而且即使 1.x 以上版本了,还是有变更 API 的现象存在,稳定性没那么好。
第四,在后端或系统级开发中,Rust 跨平台开发还不成熟,无法做到像 Java 这种一次编译、多平台可部署运行的效果。有些功能开发甚至由于与操作系统强耦合,在跨平台时不止是简单交叉编译个目标平台的就可以了,还需要做对应的不同平台实现。
第五,企业级开发中,Rust 还达不到 Java 这种开发速度,例如 Java 的 Springboot 框架,上手简单,开发也简单,开发周期非常短就可完成企业级开发的任务。
所以,对于一个上线5年的,到底该不该用Rust重构呢?
你怎么看?