Categories
程式開發

Rust首次进入TIOBE榜单前20


Rust首次进入TIOBE榜单前20 1

近日,TIOBE公布2020年6月的编程语言排行榜,Rust语言首次进入该榜单的前20并排在第20位。

Rust首次进入TIOBE榜单前20 2

最近几年,Rust在TIOBE榜单上的排名不断上升,从去年的第38位上升至如今的第20位。据悉,TIOBE指数基于主要搜索引擎上对编程语言的搜索。虽然排名的上升并不意味着有更多人使用Rust,但是它却表明有越来越多的开发者搜索有关这门编程语言的信息。

TIOBE软件CEO Paul Jansen称,Rust排名的上升是因为它作为一款系统编程语言一直在沿着正确的轨迹发展。

他说,“其他编程语言的所有冗长编程和尖锐问题都被Rust解决了,同时它还是静态强类型的。它的类型系统可以防止运行时出现空指针异常,内存管理则是在编译时计算的。所以,没有垃圾回收会突然发生,D、Lua和Julia试图打败C和C++,但Rust似乎是第一个真正接近这个目标的编程语言。”

根据Stack Overflow近日发布的《2020年开发人员调查》报告表明,Rust连续5年荣获开发者“最受喜爱的编程语言”称号。这一年,有86%的开发人员表示他们热衷于使用Rust,但只有5%的开发人员实际将其用于编程。

Rust首次进入TIOBE榜单前20 3

Rust官方博客发布的“Rust 2019年度调查报告”显示,有 82.8% 的受访者表示目前在使用 Rust,7.1% 的受访者表示曾经使用过 Rust,但是现在已经放弃了,还有 10% 的受访者表示从未使用过 Rust。

而调查也发现,学习曲线陡峭和公司不使用 Rust是受访者放弃使用Rust的重要原因。此外,缺少所需的库、因切换到 Rust 而减慢了速度和缺少 IDE 支持也是用户停止使用 Rust 的常见原因。

调查发现,Rust应用的最大障碍是学习曲线和互操作性

作为Rust的竞争对手,Go语言的排名也在不断上升,它从一年前的第15位上升至现在的第12位。据了解,包括Google、Netflix、Salesforce、IBM和Twitter等公司都在使用Go语言开发平台。

一周前,Chromium项目发表一篇博文称

Chrome 代码库中所有严重的安全漏洞,70% 是内存管理的安全漏洞,其中 50% 的内存漏洞是 use-after-free 漏洞,因为对内存指针的错误管理,给予了攻击者攻击 Chrome 内部组件的机会。

Rust首次进入TIOBE榜单前20 4

而微软工程师也曾公开表示:在过去 12 年中,微软产品的安全更新中,约有 70% 也是在解决内存安全漏洞。

据悉,Google和微软代码库中使用的主要编程语言是C和C++,而它们却不“安全”。池老师在《深受程序员喜爱的Rust(上)》一文中指出:

自操作系统诞生以来,系统级主流编程语言从汇编语言到C到C++,已经发展了近50个年头,但依然存在两个难题:

  • 很难编写内存安全的代码;
  • 很难编写线程安全的代码。

这两个难题存在的本质原因是C/C++属于类型不安全的语言,它们薄弱的内存管理机制导致了很多常见的漏洞。

左耳朵耗子(耗子叔)则在《RUST语言的编程范式》一文中也指出C/C++的安全问题。他在文中写道:“Java 与 Rust 在改善C/C++上走了完全不同的两条路,他们主要改善的问题就是C/C++ Safety的问题。所谓C/C++编程安全上的问题,主要是:内存的管理、数据在共享中出现的‘野指针’、‘野引用’的问题。”

而Rust自出生即主打安全性。它是静态的,拥有丰富的类型系统和所有权语义模型,保证了内存安全性和线程安全性。

除了安全,Rust还具备并发、高效的优点。

当今,Rust不仅深受开发者群体的喜爱,而且受到Google、亚马逊AWS和微软的欢迎。

据悉,亚马逊AWS将Rust用于Lambda、EC2和S3中performance-sensitive的组件。

Google则表示将开发自定义 C++ 库,与 Chrome 代码库配合使用,以便更好地处理与内存相关的错误。并且有计划,在可能的情况下探索使用“内存安全”的编程语言,首选的候选对象为Rust。

不过,对Rust兴趣最大的企业要数微软。

2019年7月,微软安全响应中心(MSRC)团队在官网发文称,未来使用Rust作为C、C++以及其他编程语言的替代方案以改善应用程序的安全性的计划。并且,微软正用Rust重写Windows组件。

另一方面,微软已经发布Rust/WinRT 预览版。Rust 开发人员则可以使用 Rust/WinRT 开发 Windows 应用程序和组件,以及 NT 服务或 Windows 驱动程序。这将促使Rust得到更广泛的使用。