欢迎访问潇洒职业培训学校官网
模具资讯 机械资讯

Java之后谁是下一个编程巨头,一次电梯故障成就全球最热门编程语言

2023-05-15 09:29:26 7566

许多软件项目的建立都是因为某个地方的某个程序员遇到了一个需要解决的问题。Graydon Hoare 的故事也源于此。

Rust 诞生背景

2006 年,Hoare 是一名 29 岁的计算机程序员,就业于开源浏览器公司 Mozilla。有一天,回到温哥华的公寓,他发现电梯坏了,原因是电梯的软件系统崩溃了。这已不是第一次发生这样的事情。

Graydon Hoare 住在 21 楼,想到要爬楼梯回家,他顿时感到很恼火:“我们这些从事计算机工作的人甚至无法制造出一部不会崩溃的电梯!”

15092456RB6PJ4.jpg

Graydon Hoare 知道,许多此类的崩溃都是由于程序使用内存的方式存在问题而造成的。电梯之类的设备内部的软件通常是用 C++ 或 C 等语言编写的,用这两种语言编写的代码运行速度非常快,而且代码非常紧凑。然而,问题在于,这两种语言也很容易意外引入内存错误,这些错误会导致程序崩溃。根据微软的估计,其代码中 70% 的漏洞是由于使用这些语言编写的代码存在的内存错误造成的。

对于大多数人而言,当知道自己需要爬到 21 楼时,都会很生气,但也就仅此而已了。但 Graydon Hoare 决心为此做点什么。于是,他打开笔记本,开始设计一种全新的计算机语言,他希望这种语言能够编写出没有内存错误、小而快的代码。他将其命名为 Rust,英文单词“rust”本是一种真菌,中文中叫植物锈病的不少都是这类真菌造成的,他说这个名字的寓意是:“为了生存而过度设计”。

成为“最受程序员喜爱”的编程语言

17 年后,Rust 发展成为了全球最热门的新语言之一。有将近 280 万程序员使用 Rust 编写代码,从微软到亚马逊,许多公司都将其视为未来的关键。聊天平台 Discord 使用 Rust 来加速其系统,Dropbox 使用它来将文件同步到用户的计算机,而 Cloudflare 使用它来处理超过 20% 的互联网流量。

在 Stack Overflow 的年度调查中,Rust 连续七年蝉联“最受程序员喜爱”的编程语言。就连美国政府也在积极地推广 Rust 软件,将其作为确保流程更安全的一种方式。与许多成功的开源项目一样,Rust 的发展也离不开社区的共同努力,现有数百名贡献者仍在支持,其中许多是志愿者。Graydon Hoare 本人在 2013 年退出了该项目,很放心地将其移交给了其他工程师,包括 Mozilla 的核心团队。

创造一种新的计算机语言并不罕见。许多程序员都会利用业余时间建立一个小项目。但是,能够在 JavaScript、Python 或 Java 等众多流行的编程语言之中站稳脚跟,实属罕见。

凭什么脱颖而出

一个人发明一门新的程序设计语言并不稀奇。许多程序员一直把创建小项目作为自己的副业。但很少有一门语言可以像 JavaScript、Python、Java 这样的著名语言一样屹立不倒。Rust 是怎么做到的?

要明白为什么 Rust 如此有用,就必须要深入地研究一下程序员是怎样处理计算机内存的。

150925308RKAW4.jpg

你可以非常简单地将计算机中的动态存储器想象成一块黑板。一个软件运行时会在黑板上不停地写下数据,记录哪一个数据在哪里,然后在不需要的时候擦除。但是,不同的计算机语言对数据的处理方法是不一样的。传统的 C 或 C++ 等程序设计语言被设计成,程序员在软件如何以及何时使用黑板的问题上有很大的权力。

这种权力很有用:有了对动态存储器如此多的控制,程序员可以让软件运行得非常快速。这也是 C 和 C++ 常常用于编写“裸机”代码的原因,也就是可以直接与硬件进行交互。没有搭载像 Windows 或 Linux 操作系统的机器,包括从透析机到收银机,都是基于这样的代码运行的。(它也适用于更高级的计算:有时,操作系统必须和硬件进行通信)Windows、Linux 和 MacOS 的内核基本上都是用 C 语言编写的。

不过,虽然 C 和 C++ 之类的语言很快,但要付出一定的代价。它们需要程序员密切跟踪哪些存储器被写入以及何时进行擦除。万一你不经意间忘记擦除了些什么,那很有可能会造成程序崩溃:软件稍后可能会试图利用那些它认为是空的内存空间,而那些内存空间中却存在着一些东西。或者,你可以给数字入侵者一个潜入的方法。黑客们可能会发现,某个程序没有正确地清理它的内存——那些本应被删除的信息(如密码、财务信息等)还留在那儿,并悄悄地将其窃取。C 或 C++ 代码越长就越容易出现内存错误,即使是最细心的程序员,也会让软件充满大量的漏洞。

无人机公司 Fusion Engineering 的联合创始人、Rust 库团队的负责人 Mara Bos 说:“在 C 或 C++ 中,你一直都很担心自己的代码会突然崩溃。”

在 90 年代,一组新的语言如 Java、JavaScript 和 Python 开始风靡全球。这些语言采取了完全不同的方式。为了减轻程序员的压力,它们通过使用“垃圾收集器”来自动管理内存,这些组件会在软件运行时定期清理内存。转眼间,你就可以编写没有内存错误的代码了。

但是坏处在于,你会丧失细粒度的控制,你的程序也会变得更慢(因为垃圾回收会占用关键的处理时间),并且用这种语言编写的软件需要更多的内存。所以,编程的世界大致被划分为两个部分。如果一个软件需要快速运行或者在嵌入式设备很小的芯片上运行,那么这个软件就倾向于使用 C 或 C++ 编写。如果是 Web 应用或移动设备应用——在代码世界中越来越壮大——那么你就得使用较新的、具备垃圾回收特性的程序设计语言。

对于 Rust,Hoare 的目的是创建一门语言来这些方法的差异。该语言不要求程序员手工计算出他们在内存中放置数据的位置,Rust 会做到这一点。但是它对如何在程序中使用或者复制数据,却有很多严格的规则。你必须学会那些编程规则,它们比 Python 或 JavaScript 中的那些规则复杂得多。

Rust 代码编写起来可能会比较困难,但是“内存安全”,你不必担心无意中插入了一个致命的内存错误。最重要的是,Rust 还会提供“并发安全”的特性。现代程序可以同时处理多个任务,也就是并发处理。有时候不同的线程会在同一时间对同一内存位置进行编辑,而 Rust 的内存管理机制可以避免这一问题。

历年编程语言趋势回顾

1. Java、C和Python的争霸:在过去的二十年里,Java、C和Python一直是TIOBE排行榜的常客。Java和C语言在企业级应用和底层系统开发领域具有广泛的市场份额。Python则在过去十年里逐渐崛起,凭借其易于学习、强大的生态系统以及在数据科学、人工智能等领域的优势,逐渐成为热门编程语言之一。

2. JavaScript的网络统治:作为Web开发的核心编程语言,JavaScript凭借其跨平台特性和广泛的应用领域,已经成为TIOBE排行榜的常客。

3. 新兴编程语言的崛起:随着技术和行业的发展,一些新兴编程语言在特定领域快速崛起。例如,Go语言在云计算和并发性能方面表现出色,而Rust则以其安全性和内存管理能力受到关注。此外,Kotlin作为Android官方开发语言,在移动应用开发方面有着广泛的应用前景。

预测下一个编程巨头

Python:考虑到当前Python在数据科学、人工智能、Web开发等领域的广泛应用,结合其强大的生态系统、第三方库以及简洁的语法,Python有望继续保持热门地位,并可能在未来几年成为编程巨头之一。

Go语言:Go语言作为谷歌推出的革新性编程语言,拥有高性能、简洁语法和出色的并发能力。它在云计算、容器技术和微服务领域有着广阔的应用前景,因此有望成为未来编程巨头的有力竞争者。

Rust:Rust是一种安全且性能出色的编程语言,致力于解决C和C++等传统编程语言的内存安全问题。随着系统编程和WebAssembly等领域的发展,Rust有望吸引越来越多的关注,并有潜力成为编程巨头之一。

Kotlin:自从Kotlin成为Android官方开发语言后,它在移动应用开发领域获得了快速发展。凭借简洁的语法、出色的兼容性和与Java的互操作性,Kotlin在未来有可能成为移动应用领域的编程巨头。

综上所述,根据历年编程语言趋势和技术发展趋势,我们预测Python、Go、Rust和Kotlin等编程语言在未来有较大的潜力成为编程巨头。然而,由于技术领域的不断变革和发展,未来的编程语言格局仍有不确定性。因此,软件开发者需要保持警觉,关注行业动态,以便在不断变化的计算世界中保持竞争力。

联系我们
客服电话0679-83722215
24小时热线15019229965
联系邮箱
1113692011@qq.com
联系地址横沥校区:广东省东莞市横沥镇新城工业区兴业路121号(潇洒职业培训学院) / 南城校区:广东省东莞市南城街道莞太路南城段1号(智通模具学院)
在线客服
在线客服

微信扫码关注

021643494PKN24.jpg