Rust,C++,Go语言这三款学习哪个更好?
链接:https://www.zhihu.com/question/1895916293934260613/answer/1895981132228576901
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果题主是刚入门编程的新手,想选一门实用性强的语言,这个需要看题主的目标领域。
Go语言相对来说语法简洁,特别适合快速开发网络服务和云原生应用。比如题主想做个高并发的网站后台,或者写个自动化运维工具,Go的goroutine机制能让程序像开多个快递站同时分拣包裹一样处理任务,效率高还不用操心复杂的线程管理。现在很多大厂的微服务、Docker容器都是用Go写的,找工作相对容易,学一段时间(快的话据说两三个月)就能做出能跑的东西,对新手特别友好。
Rust是系统级编程语言,适合对内存安全和性能有极致要求的场景。比如题主想开发游戏引擎、操作系统模块或者区块链底层,Rust的所有权系统可以确保每块内存借出去都能按时归还,彻底杜绝内存泄漏和崩溃问题。不过它的学习曲线有点像爬山(我个人是有Java/C++/Python/JavaScript这多种编程语言基础的情况下,才学习Rust的,在实习的时候干过Rust的活,个人感觉还是有难度的,对新手不友好),前两周可能会被生命周期、借用检查这些概念绕晕,但坚持过去就会发现写出来的程序既快又稳。现在像微软、亚马逊都在用Rust重构基础设施,未来在系统级开发领域感觉会越来越吃香。不过目前Rust作为小众语言,在国内似乎岗位并不多。
C++更老牌一点,在游戏开发、工业软件、嵌入式设备等领域依然不可替代。像《原神》客户端、特斯拉的车载系统都是C++写的,它能直接操作硬件资源,性能最高。但新手要面对指针乱飞、内存泄漏这些坑,可能写着写着程序就莫名其妙崩溃了。除非题主铁了心想进游戏大厂或做硬件方面的活,否则现在入行更建议考虑Go,实在不行学Java也可以。
实用性方面,Go语言目前在就业市场感觉最抢手,尤其云计算和中间件开发岗位多,我听周围人说学三个月就能干活;Rust适合愿意花半年时间沉淀的长期主义者,学成后竞争力强但岗位相对少;C++适合有明确行业目标的人,比如决心进大厂做游戏开发。如果非要在这三个里面选,建议题主先用Go练手做两个小项目培养成就感,再根据兴趣决定是否挑战Rust的硬核领域,这样既不会半途而废,又能保持技术视野的开阔性。
浙公网安备 33010602011771号