2021哪门编程语言挣得最多?答案并不是Python。
今年6月,O'Reilly对来自英国和美国的3136名受访者进行了调查,以了解数据和人工智能行业的薪酬状况、职业机会和挑战。
报告显示,从编程语言的薪水来看,使用Rust 的程序员的平均薪水最高,超过18万美元;其次是Go(17.9万美元)和Scala(17.8万美元)。
虽然Python用户在调查受访者中是主要群体,但报告中使用Python的程序员平均收入约为15万美元。
最近,StackOverflow又放出了他们的开发者年度调查,薪资最高的语言变成了Clojure,中位数年薪比第二名的F#足足高出了1.4万美元。
82914名受访者表示,对于未掌握的语言来说,程序员最想学习的语言是Python,其次是TypeScript,JavaScript,Go,Rust。
最受程序员喜爱的语言是Rust,喜爱比例达到了86.98%,第二名Clojure 的喜爱比例为81.12%。
在过去的几年里,Rust的受欢迎程度一直在稳步增长。它具有许多优势,如速度快,内存高效:没有运行时或垃圾收集器,它可以提供高性能的关键服务,在嵌入式设备上运行,并且很容易与其他语言集成。
Rust丰富的类型系统和所有权模型保证了内存安全和线程安全,使编程人员能够在编译时消除许多类错误。
简直是太方便了!
Rust还有优秀的文档、友好的编译器和有用的错误消息,以及集成包管理器和构建工具形式的上层工具、支持自动完成和类型检查的智能多编辑器、自动格式化器等。
2021年,Rust开发者的高薪收入也是来之不易,O'Reilly报告的作者Mike Loukides在接受采访时对Rust工资超越Python解释道:
虽然Python程序员的需求很大,但供应量也很大。Python已经是大学课程中的标准语言,也是科学计算中常用于数据分析的两种语言之一。对于Rust和Go来说,虽然需求量较小,但供应也要少得多。
Rust 能做的事也很多,在Jobbio data上也有Rust相关岗位的工资情况统计。
游戏引擎工程师的平均年薪是34830英镑,主要负责在引擎中创建新的功能,并重写现有系统,使其尽可能高效。当开发了新游戏时,引擎程序员将指出如何为特定游戏创建最佳的游戏引擎并处理任何技术问题。
软件工程师的平均年薪是43886英镑,主要负责编写计算机操作系统和内部运行的软件。这个职位实际上也涵盖了从系统开发人员到软件架构师的多种角色。这是一项高度专业化的工作,需要良好的技术背景,对软硬件有透彻的了解,并能很好地掌握数学推理和编码语言。
后端工程师的平均年薪是55856英镑,主要负责设计、构建和维护Web应用程序的服务器端。换句话说,后端工程师的主要职责是构建软件应用程序的结构,为软件团队建立了实现主要目标所需的基础。这意味着,软件开发团队中后端工程师的主要功能之一是编写业务逻辑、服务器脚本和API,供其他开发人员和团队成员使用。
区块链工程师的平均年薪为55232英镑,专门为使用独特技术的组织创建和实施数字解决方案。区块链技术允许信息在不被复制的情况下通过互联网公开分发和共享。信息不存储在中心位置。工作职责可能包括开发和实施加速器和资产等项目,协助组织使用技术的基础设施设置,并确保应用程序的安全。
作为新兴的开发语言,Rust在函数式编程、网络编程、多线程、消息同步、锁、测试代码、异常处理等方面都有不俗表现。
Rust包含了长期软件工程中对于高频Bug的经验总结,从而开创性的提出了大量的全新编程理念。不同于很多新式语言给予开发者更多的便利和自由,Rust更苛刻的对待程序员的开发工作。尽管在易用方面Rust也下了不少的功夫,但相对于繁复的规则,这些努力很容易被忽视。
而这些代价保证了更高品质的开发输出。
但Rust也有缺陷,对于初学者来说太不友好。虽然学习Rust能训练良好的编程习惯,从长远看对提高学习者的开发素养极具价值。但短期的大量付出很容易让初学者难以应付。并且尽管官方文档并不欠缺,但学习资料对于初学者来讲仍然是远远不够的,所以比较而言,得不偿失,所以C/Java/Python/Js都是更好的入门选择。
对于有一定经验的软件工程师,他们已经有了一段时间的开发工作实践,对于软件开发的现状、发展都已经形成了自己的世界观。如果感觉并不很喜欢这个行业,希望将来转行管理岗位或者产品岗位。那当前应当做的更多是倾向业务领域,了解业务和技术的衔接和互动,完全不需要学习Rust。
而如果醉心于技术,并从中获得了自己的乐趣,希望逐步提高自己的技术水平。那么Rust会是一个很好的桥梁,哪怕仅仅学习Rust而并不将其应用于工作,也能让开发者从中获取大量的有益习惯和软件底层经验,从而形成自己良好的代码风格。
对于资深工程师,即便并不从事底层系统级的开发工作,Rust也是一门很优秀的语言。它能弥补当前多种开发语言的不足,形成良好的开发哲学和思想导向,帮助开发者交付高质量的软件产品。
在大学还学习C++ 的今天,尽早学习并应用Rust也非常有价值。
知乎网友也表示,Rust目前没有广泛应用更多是个历史问题,C/C++仍然有大量合格的人才,大公司在C++的工具链上深耕多年积累深厚。而且不少人对C++有宗教式的偏执,很多场景比如web完全可以用其他成本更低的语言解决(Go,Java),还是会用C++来做,Rust在某些地方也还没有C++强大。