标签归档:编程语言

Rust 之坑:啰嗦的浮点数排序

最近,一篇比较 Rust 和新出的 Nim 的语言的文章出现了,作者列举了 Rust 总总繁琐啰嗦的地方,然后在 Hacker News 中提供了新的弹药

如果要对一个浮点数数组进行排序,在 Python 中非常简单:

在 Haskell 中也非常简洁:

而在 Rust 中你得写这么一长串怪物:

继续阅读

传教文:Rust 大法好

Rust 是一门设计得非常不错的语言。我在 Twitter 上经常提起它。现在发布了 1.0 Alpha 测试版,是时候开始安利了!

rust game

不好意思图贴错了,

rust-lang

简介

Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.

这是网站上的宣传语。作为一个系统级编程语言 Rust 并没有 .NET 或者 JVM 那样厚厚的 Runtime,并且有和 C 一样底层编程的能力。

并且非常快,速度和 C++ 差距不大,并且把 JVM .NET 甩在后面。它通过编译时检查来保证整个程序的正确和安全性,所有资源都会被回收,并且没有 GC 开销。在 Rust 中,一个变量的生存期(lifetime)是类型系统的一部分,内存何时回收会在编译时自动推算出来。

对比 C++ 它有更加干净的类型系统和语法,简洁的范型,在编译时被验证的 RAII,还有模式匹配之类独特的的函数式特性,以及强大的宏系统以及现代的模块管理。这里有一篇简单的比较

对比 Python、Ruby 等动态语言,可能没有那么灵活,但是先进技术下的静态类型语言别有一番风味,编译器会严谨地检查你的代码,杜绝一切低级错误发生。只要你心里装着:这个变量是什么类型,这个表达式是什么类型……你就会愉快地写程序,很多时候只要程序能编译出来,那么就能良好的运行了。

这一篇文章讲了语言本身的目标。和 C++ 一样,Rust 反对一个语言遵循一种教条的范式,你可以用它进行基本无副作用的函数式编程,也可以 OOP 或者过程式编程,利用宏,更多的范式也可以支持。没有多少的语法糖扰乱视线,比起一门炫酷的语言,Rust 更倾向于成为更现代化的工业级编程语言。

P.S. Rust 以前曾用过一个宣传语:“像 Haskell 一样类型安全,像 Erlang 一样并发,像 C++ 一样的性能。”。

特性概览

语言网站上的例子很好,而且能在网页上编译运行,只是用到的特性比较少。

继续阅读