最近学习了一门新的语言: Rust。一个程序员通常会掌握好多门语言,java, python,c,js,html,shell,scala,go,c#等等。我曾经非常喜欢学习新的语言,不只是程序语言,人类语言也是一样的。当尝试多了就发现,这些语言都有很多相似的地方。
不管是静态语言,还是弱类型,不管是面向对象,还是函数式语言,不管是简单易懂,还是偏向底层开发。语言就是语言,他就在那里。
自从工作后,几乎没再学习新的语言。不过最近比较闲,就开始尝试新的可能,选择rust这门不算新兴的小众语言,也是出于好奇。
现在愈发觉得时间不够用,所以每次尝试前都会做一些调研,这可能也是受公司影响,总是在调研新技术。
我看了java的强劲对手go,发展起步晚,不过有google这个大后台,也是风生水起。再看看效率,编译成二进制的语言,运行内存小,启动速度也快,而且非常适合高并发。这些特性都可以打败java。腾讯也主要使用c++和go。
我知道,这门语言肯定要掌握的。不过现在并没有急切的需求,而且曾经看一本对象存储的书,里面用go实现,发现代码基本上都能看懂,我就知道这门语言写起来并不难。
不难,是对我没有挑战的,现在有点闲,所以要一些有挑战的事。另一门语言rust,曾经没有注意,现在看到觉得耳目一新: 比c++还快,内存却更安全,总之,唯一的缺点就是学习曲线陡峭。
咦,这太符合我胃口了。
去官网看看,简洁明了,依赖库也很清晰。官方给出了一本书,作为新手必学的一本书,已经被翻译成了中文《Rust权威指南》。花了近2个星期,基本上看完了,代码也敲了一遍。
怎么说呢,这还是第一门我学习完了,不知道怎么用的语言。事例我都能看懂,当自己写的时候才发现,好像什么都是缺失的,所有权机智真的是牛逼,生命周期我也知道,但怎么熟练使用。看来,还有很长一段路要走。
接下来,就是实战练习。因为rust更偏向底层系统,找到一个用rust写操作系统的博客,这就是接下来的目标了。