java的终结者来了么?

发布于 2021-09-04 15:14 ,所属分类:软件编程学习资料

属于C语言的时代

自操作系统诞生以来,系统级主流编程语言,从汇编语言到 C++,已经发展了超过 50 个年头,两个难题始终未能:

很难编写内存安全的代码

很难编写线程安全的代码

这两个难题存在的本质原因是 C/C++ 属于类型不安全的语言,它们薄弱的内存管理机制导致了很多常见的漏洞。其实 20 世纪 80 年代也出现过非常优秀的语言,比如 Ada 语言。Ada 拥有诸多优秀的特性:可以在编译期进行类型检查、无 GC 式确定性内存管理、内置安全并发模型、无数据竞争、系统级硬实时编程等。但它的性能和同时期的 C/C++ 相比确实是有差距的。那个时代计算机硬件资源匮乏,为了性能只能牺牲安全性来换取性能。这也是 C/C++ 得以普及的原因。

高手在民间

时间很快到了 2006 年,自称“职业编程语言工程师”的 Graydon Hoare (简称为 GH),开始开发一门名为 Rust 的编程语言。


GH 认为,互联网开发除了性能,还一定会高度安全性和并发性。整个世界对 C 和 C++ 的设计方式的青睐在不断地发生改变。其实 20 世纪七八十年代涌现了很多优秀的语言,拥有很多优秀的特性,但它们的内存模型非常简易,不能保证足够的安全。比如 美国军方主导的Ada 语言的动态内存管理虽然是高规格的安全设计,但还是引起了非常重大的安全事故(20 世纪 90 年代,欧洲空间局阿丽亚娜五号运载火箭发射失败,原因是 Ada 在将 64 位浮点数转换为 16 位无符号整数时,发生了溢出)。


所以,GH 对这门语言的设想如下:

1>.必须是更加安全

2>.不易崩溃的,尤其在操作内存时
3>.不需要有GC,不为了内存安全j降低性能

于是,Rus语言就这么诞生,它可以提供开发高效率、代码容易维护、性能媲美 C/C++ 、并发超越go-lang,还能同时保证安全的一门现代系统级编程语言。


开源力量

Rust 语言自身作为一个开源项目,也是现代开源软件中的一颗璀璨的明珠。


在 Rust 之前诞生的所有语言,都仅仅用于商用开发,但是 Rust 语言改变了这一状况。对于 Rust 语言来说,Rust 开源社区也是语言的一部分。同时,Rust 语言也是属于社区的。


Rust 团队由 Mozilla 和非 Mozilla 成员组成,至今 Rust 项目贡献者已经超过了 1900 人。Rust 团队分为核心组和其他领域工作组,针对 Rust 2的目标,Rust 团队被分为了

嵌入式工作组、

CLI 工作组、

网络工作组

WebAssembly 工作组

另外还有生态系统工作组和社区工作组等。


java老矣,Rust将引领未来

Java总有一天会死,世无定事,没有什么可以永恒。


纵观过去的十年,有着很多新的语言问世,这些语言有着现代的语法以及新功能的框架,并没有出现威胁到java江湖霸主地位的语言,因为这些语言都不是推倒式的创新,


以JavaScript为例,毕竟JavaScript正在占领这个世界,我们可以在后台使用Node.js,类似于移动设备上的React Native或Ionic,我们甚至不必提及在前端的所有竞争选项。


但至少在企业软件中,我没有看到JavaScript将要替代Java的趋势。JavaScript在企业领域中没有取得成功的框架或工具。它也没有与Java虚拟机(JVM)相当的东西,Java虚拟机(JVM)依然是大型和关键任务软件的首选平台。


直到我看到Rust,一个跟现代前端开发一样优雅,却全能的开发语言。Rust有着跟JavaScript成功相似的很多东西:轻量级的文本编辑器ide,使用 Rust 强大的生态系统快速实现命令行工具、基于对象的函数式动态开发语言,一流的包管理器Cargo和构建工具,优美的语法,日趋完美的生态链。


一统三界的Rust

嵌入式、后端、前端,Rust通杀...

相关资源