Rust不是一个拥有前沿科技的革命性语言,但是Rust合并了已经在老的语言中证明了自己的技术。当然它在c++的基础上大大的提升安全性。
Rust的开发者,设计Rust成为通用的有大量实例的语言。就像C++,他是结构化的面向对象语言。除了这一点,它从现有的语言中集合和继承了许多先进的技术。
在Rust中,输入变量是静态和强壮的因为Rust已经被编译好。 但是,不像java和C++,开发者不用强制去制定所有实物的类型,Rust的编译器在很多情况下可以推测类型。
C和C++中,有被人熟知的一系列问题会导致系统的崩溃,内存溢出。而且这些问题是很难被调试和解决的。
想象一下 dangling pointers,缓冲区溢出,空指针,segmentation错误,数据风暴等等都可以被避免是多么美好。
Rust的编译器又叫做RUSTC 是非常智能,而且在编译时可以识别处这些异常。从而在执行中保护内存的安全。 这些是编译器的工作,并且同时编译器保留内存布局的控制,这样就不需要在运行时,垃圾收集器带来的负担。
另外它的安全也意味着更少的安全隐患的可能性。
Rust类似Go和Julia语言一样的编译代码。但是,和Go和Julia相比,Rust不需要垃圾收集器。 在这个方面,这和java的JVM和其他运行在JVM上的语言比如Scala和Clojure也有很大不同。 其他的大部分语言比如 .NET,JavaScript,Python,Ruby,Dart和其他,都需要虚拟机和垃圾收集器。
作为Rust的其中一个并发机制,Rust采用Erlang中熟知的角色模型。 轻量级的进程叫做现成平台,所有现成平行运行。它们之间不分享堆内存,但是数据通过频道交流,数据风暴被Rust的type系统所屏蔽。
这些原函数使的开发者在未来计算机平台中平衡多核cpu。
这个rust编译器是自我编程的,说明它本身也是用Rust编写的并且是被它的前一个版本的自己编译的。它使用LLVM 编译框架作为它的后端(关于 LLVMhttp://en.wikipedia.org/wiki/LLVM) ,然后制作本地可执行的代码,这样它可以运行的非常的快,媲美C++ (一个关于速度的例子http://benchmarksgame.alioth.debian.org/u64q/rust.php).
Rust设计时是作为可一直语言的比如C++,而且它运行在广大的在使用中的硬件和软件平台。 现如今,它可以运行在Linux,MacOS X,Windows,FreeBSD,Android和IOS。 它可以称作为C系列语言,就和C一样简单和高效,一样可以调用它自己的代码,而且相反,C语言也可以调用Rust的代码。
下面是Rust的Logo。
其他Rust的特性我们后面再详细讨论。如下:
- Rust的变量初始化时是不变的。
- 枚举
- 模式匹配
- 泛型
- 高阶功能和回路
- 界面系统(叫做traits)
- 一个干净的宏系统
- 零消耗的抽象画,这表示Rust有高级语言的构造但是在表现上没有突破。
总结一下,Rust给了你 可以分配内存,可以消除许多安全和稳定性问题的力量!
关注我们: