3

Rust, Go与Hasekll比较 - Reddit

 8 months ago
source link: https://www.jdon.com/59557.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Rust, Go与Hasekll比较

对这三者隐含的设计范式的非常简洁的总结:

  • Haskell:适合计算,默认情况下容易抽象(专注于指定做什么而不是怎么做,需要很少的代码来表示它)。
  • Go : 适合做服务,默认情况下容易并发(专注于指定如何做而不是何时做,需要非常少的代码来并行化它)
  • Rust:适合做系统,默认情况下容易实现可靠性(专注于指定什么时候做而不是在哪里做,需要很少的代码来管理内存)。

但是,需要首先问问自己你想解决什么样的问题,然后看看哪些语言(库)在解决这些问题方面很流行。
例如:

  • 机器学习:Python 非常流行,为什么会这样,考虑到它是一种缓慢的解释语言,具有并发挑战(答案:令人惊叹的库)
  • 游戏编程:尽管 C++ 中存在内存管理挑战,但 C# 和 C++ 都非常流行。
  • 流和事件处理:Java 以 Kafka、Kinesis、Flink、Hadoop 等为主。

最后,一般新手不会选择 Haskell 或 Rust 作为第一种编程语言,可能需要考虑从 Python 或 Golang 开始,然后再分支到具有更复杂内存管理和高级类型系统的语言。

下面是另外一种角度比较这三者:

  • Haskell 致力于提升程序语言设计的艺术水平:
    如果对于 Next Big Language(下一个大语言) 来说这似乎是一个好主意,Haskell 很可能会这样做。
  • Go 是关于拥有一种简单、高效的语言:
    简单被定义为“对实施者来说简单”。高效被定义为“初学者开始编写与专家编写的代码一样好的代码的时间很短”。
  • Rust 是关于务实的:
    你有完全的权力来控制微小的细节,在某种程度上你需要。它具有众所周知的高学习曲线。另一方面,一旦你越过了学习曲线,它就会感觉像是一门富有表现力的高级语言。

Haskell 的一大重点也是纯度。就像 Rust 有它的内存保证和生命周期一样,Haskell 可以通过它的类型系统保证没有副作用。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK