Rust,Go 与 Haskell 比较
Go语言精选
共 989字,需浏览 2分钟
·
2022-05-11 02:00
对这三者隐含的设计范式的非常简洁的总结:
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 可以通过它的类型系统保证没有副作用。
原文:https://www.jdon.com/59557
推荐阅读
评论