Rust,Go 与 Haskell 比较

Go语言精选

共 989字,需浏览 2分钟

 ·

2022-05-11 02:00

点击上方蓝色“Go语言中文网”关注,每天一起学 Go

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

  • 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



推荐阅读


福利

我为大家整理了一份从入门到进阶的Go学习资料礼包,包含学习建议:入门看什么,进阶看什么。关注公众号 「polarisxu」,回复 ebook 获取;还可以回复「进群」,和数万 Gopher 交流学习。

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报