Java语言毫无疑问地稳坐霸主位置了。如今很难找到哪台机器上没有安装JDK。有了虚拟机,确实很方便,不需要过多地考虑机器环境,一次编写到处运行基本实现了。但,隔着一层“虚拟机”,无论怎样优化,总还是比直接编译到本地指令慢些。
C语言总还是有用武之地的。如果特别看重效率,比如一些核心算法,总是想着用C重写。
C语言要想真正驾驭确实很难,而且不同程序员间水平差异巨大。要组个称心的团队,难啊。上个世纪七十年代的语言,奋斗到今日还要担纲主角,可以算个奇迹了。几十年的软件工程实践,已经为我们积累了宝贵的经验。需要恰当地反应到新语言中。
Go语言希望能代替C,称为21世纪的C语言。GO的确也做得很好,至少是足够简单、实用。
但,GO语言在语言层面并无太多的创新,仅仅是没有泛型,没有解构匹配就很可惜了。
Rust语言则提出了很多革命性的解决方案。虽然比GO复杂,但其后的空间广阔!
Rust采用了 所有权、引用借用、生命期等一系列全新的概念来解决内存分配的问题。这是所有高级语言要面对的头疼问题。C把责任全推给程序员,如果你思路不严谨,内存泄漏,活该!Java等一大部分后起之秀使用“垃圾回收”制度。管杀不管埋,有专门的收尸队。什么时候来收,你说了不算。
Rust无垃圾回收,却实现了内存的自动管理。这是低成本、高效率的内存管理。所有可能出现的内存资源问题,都交给编译器搞定,不是在“运行期”修补!这恐怕是Rust最引以为豪的特性了。属于Rust宣称的:“零成本抽象”。
Rust有很多激动人心的特性,比如泛型,比如对并发的支持(与Go语言类似)
万事开头难,还是先安装一下环境吧。
------------------------------------
登陆官网,下载Windows下的安装包,我选的是32位for GNU的。
rust-1.9.0-i686-pc-windows-gnu.msi
安装很简单,几乎是一键完成。实际上,Rust可以不用安装,直接拷贝解压到某个目录下就可以的。安装只不过是自动设置了环境变量path指向了rust的bin目录。这对于我等程序员出身易如反掌。
安装后做个小测试。随便找个位置,打开cmd窗口。输入: rustc --version
如打印出版本信息,则安装成功了。
再写个小程序试试。做个文本文件,改名:my.rs 内容:
fn main(){
println!("hello, rust!");
}
先编译一下: rustc my.rs
看看目录下,是否生成了 my.exe, 运行它就可以了。
作为程序员,总不能只用记事本,至少需要一个代码编辑环境,最少要能够代码着色啊,能代码提示、补全就更好。
这里推荐:SublimeText3。
从官方下载该编辑工具。免费版与注册版的差异是时不时弹出对话框,脸皮厚度够,这倒无大妨碍。
sublimeText支持强大的插件扩展。
(1) 安装 package controler
ctrl + ` (tab 上方的键)
输入(很长,只有一行,是个python脚本):
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
等待完成,提示重启。
(2) 安装Rust插件
此时,preferences 下多了一项:package control, 运行它(有快键:ctrl + shift + p)
输入:ins,选install Packages
等待弹出可安装插件的列表。再输入rust,
安装前3个就可以了。
(3)其中的第3个插件,RustAutoComplete,代码自动补全,额外需要两个东西:一个是外部工具 racer, 一个是Rust编译器的源代码。
对于第一个,下载racer的rust源码,并编译。这需要Rust的管理工具cargo,已经随着rust发行了。
找个靠谱的位置,运行cmd,输入:
就会下载racer源代码(如果不知道git怎么安装,那个另一个问题)
然后,
cd racer
cargo build
等待编译完成吧......
一切ok后,到racer/target/debug 目录下寻找我们的产品: racer.exe
把它安排到个 path 能看见的位置。
对于第二项,直接到rust网站找到源码下载。下载后解压,做个环境设置:
RUST_SRC_PATH = D:\1_GREEN\RUST\rustc-1.9.0\src
这时候,cmd下,运行racer.exe 就不会出错了。
一切ok,回头设置 sublimeText:
preferences | package settings | RustAutoComplete | Settings - user
该文件中写入:
{
// racer.exe绝对路径
"racer": "racer.exe",
// rust源码文件路径
"search_paths": [ "D:\\1_GREEN\\RUST\\rustc-1.9.0\\src" ]
}
重启 sublimeText, 应该可以自动代码补全了。