设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

为什么说Go和Rust不是竞争者

2015-7-8 23:28| 发布者: joejoe0332| 查看: 1106| 评论: 0|原作者: 一曲, Finlay, gx老苗|来自: oschina

摘要: 这篇短文解释了,为什么我认为 Go 和 Rust 并不是竞争对手。在解释为什么我认为 Go 和 Rust 不是竞争对手前,我想说明一下为什么这个问题会被提起。Rust 和 Go 发布的时间相近。Go 从 2007 年开始构思,2009 年十一 ...

  这篇短文解释了,为什么我认为 Go 和 Rust 并不是竞争对手。


为什么人们认为 Go 和 Rust 是竞争关系


  在解释为什么我认为 Go 和 Rust 不是竞争对手前,我想说明一下为什么这个问题会被提起。

  • Rust 和 Go 发布的时间相近。Go 从 2007 年开始构思,2009 年十一月对外公开。Rust 发布于2010 年,只晚了几个月,尽管 Graydon(格雷顿)声明 Rust 可能是更早就开始构思了。无论怎样,这两个语言都有着前辈的贵族血统。对于 Go 来说,有 Hoare(霍尔)的 CSP,Alef 和Pike(派克)的 Newsqueak,而 Rust 则是 ML 家族的语言之一。

  • Rust 和 Go 都是被誉为内存安全的。虽然这个说法没错,这两种语言都不允许不安全的内存访问,更重要的是,世界已经不能容忍一个不是内存安全的新语言了。事实是 Go 和 Rust 这两种语言,经过数十年的证据表明,现实世界中,程序员们普遍是不能安全手动管理内存的。

  • 同样是年轻的语言,Go 的 1.0 版本发布于 2012 年,而 Rust 的 1.0 版本是今年(2015)早些时候,这意味着他们都雄心勃勃和有上进心,想要占领现任编程语言的市场。


  这些迹象都可以说明为什么我们看的 Rust 和 Go 是竞争关系。放眼看去,确实很难找到他们的其它联系,他们出现得太偶然了。


为什么我认为 Rust 与 Go 不是竞争对手


  综上,我认为 Go 与 Rust 之间不为竞争关系有以下原因:

  • Rust 关注 “free of charge” 的抽象。如果你对这很熟悉,说明你已经使用 C++ 很多年了。Go 为了保证语言的简洁性和正交性,将很多底层的操作推迟到运行时来进行。

  • Rust 是专门为与 C语言 的互操作而进行设计的;Rust 代码一般位于被 C语言 调用的其他大型程序中。Go 通过 cgo 来进行语言之间的交互,但这并不是 Go 被设计的首要原因。

  • Go 将并发作为首先的关注目标。并不是说在 Rust 里面没有类似 Go 的并发框架,但 Rust 将这部分留给了程序员。

  • Go 关注程序员的编码效率,可以从across the whole software development lifecycle 看出。Rust 作为 LLVM 的顶层代码,存在很多类似的做法。


Rust 和 Go 不是竞争者


  Go 着重于提高大团队开发者工作效率,遵循严格应用简洁化原则( rigid application of simplicity) —拒绝复杂化和歧义化的观点。


  Rust则面向无法容忍不安全内存访问或运行时开销的程序员(Go也不能容忍,我想没有人愿意学习一门新的不安全的编程语言)  —哪些不安全的,或带来(额外)开销的想法会被拒绝,至少要排除在核心语言之外。


  Rust竞争对象是C++ and D编程语言,这类语言的程序员容易接受更复杂的语法和语义(可能还有更高的可读性代价-注,应该是更难于读懂代码的意思) 以换取最高性能。 例如,单片机,AAA游戏引擎, 和web渲染引擎(等应用领域)。


  Go主要抢占2006年以来的互联网2.0公司市场,它们大量采用(outgrown)Ruby, Python, 和Node.js (v8) 语言,没有耐心使用部署代价<>高昂的基于JVM语言。




酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部