为什么说go和rust不是竞争者 -九游会j9官网ag登录入口

2顶
0踩

为什么说go和rust不是竞争者

2015-07-08 14:44 by 副主编 mengyidan1988 评论(2) 有5888人浏览
这篇短文解释了,为什么我认为 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关注程序员的编码效率,可以从看出。rust作为llvm的顶层代码,存在很多类似的做法。


rust和go不是竞争者
go 着重于提高大团队开发者工作效率,遵循严格应用简洁化原则()—拒绝复杂化和歧义化的观点。
rust则面向无法容忍不安全内存访问或运行时开销的程序员(go也不能容忍,我想没有人愿意学习一门新的不安全的编程语言)  —哪些不安全的,或带来(额外)开销的想法会被拒绝,至少要排除在核心语言之外。
rust竞争对象是c and d编程语言,这类语言的程序员容易接受更复杂的语法和语义(可能还有更高的可读性代价-注,应该是更难于读懂代码的意思) 以换取最高性能。 例如,单片机,aaa游戏引擎, 和web渲染引擎(等应用领域)。
go主要抢占2006年以来的互联网2.0公司市场,它们大量采用(outgrown)ruby, python, 和node.js (v8) 语言,没有耐心使用部署代价<>高昂的基于jvm语言。

译文来自:
来自:
2
0
评论 共 2 条 请登录后发表评论
2 楼 2015-07-09 22:18
一般公司玩docker的太少了。
1 楼 2015-07-09 10:06
伴随着docker的火爆,go语言势头会不会有所提升?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 《why go and rust are not competitors》这篇文章解释了为什么go和rust不是竞争者。这里对作者的观点进行简单摘选,供大家参考。人们为什么会认为“go和rust是一对竞争者”作者在文中先说了为什么人们会认为“go和...

  • 虽然很多人可能认为 rust 和 go 是竞争激烈的编程语言,但 rust 和 go 团队都不这么认为。恰恰相反,我们的团队非常尊重其他人正在做的事情,并将这些语言视为对整个软件开发行业现代化共同愿景的补充。

  • 相反,go和rust虽然都具有函数式和面向对象的编程功能,但它们始终强调一种务实的导向——即以最合适的...这是有道理的,因为如果 rust 和 go 都以基本相似的方式解决基本相同的问题,为什么我们需要两种不同的语言?

  • 另一方面,rust 是一种静态、强类型和 aot 编译的语言。rust 是一种多范式、高级和通用语言。(go由于有垃圾回收机制,在运行时性能会受到gc影响,而rust则无)让我们根据各种参数评估这两种语言。

  • go语言也具备很好的编译速度和可移植性,适用于构建高性能、可扩展和可靠的服务器端应用程序。有关学习价值,go和rust都是现代编程语言,具有很好的就业前景和发展潜力。此外,它们都有活跃的社区支持和丰富的学习...

  • 序言:本文试图帮您解答“我要不要(投入大量时间和精力)学习rust语言?”这个问题。作者尽量较少的谈及rust语言本身,反而尝试从rust语言周边入手,长时间、大范围、多角度地考察,研判rust语言是否靠谱,并给出尽...

  • 同时,如果你被微服务开发或用 golang 构建服务端程序所困扰,你应该从 golang.company 雇佣 go 开发者[1],他们会协助你完成各个环节,并为你建立一个可扩展的、强大的应用程序。golang 是在 2009 年出现的,而 ...

  • 对于很多初学者,最爱的问题,主攻哪一门编程语言,编程语言的选择,确实和行业有一定关系,因为每种语言都有自己适合的领域, 今天我们就来看一看前浪和后浪之间的较量,因为前浪和后浪在一些领域是有重叠,有重叠就...

  • 在过去的十年中,rust 和 go 两种新的编程语言主要为企业开发而开发和出现。go 于 2009 年由世界知名的 google 创建,其次是 rust,后者于 2010 年由 mozilla 创建。 尽管这两种编程语言可能看起来很相似,因为它们...

  • rust和go似乎都是系统编程语言,都编译为机器码,并且都提供了出色的性能。那么,您如何决定哪种语言适合您的需要呢?rustrust于2010年上市,尽管它的构思可能要早得多。rust通常被视为ml语言家族的一个扩展。mozilla...

  • rust和go似乎都是系统编程语言,都编译为机器码,并且都提供了出色的性能。那么,您如何决定哪种语言适合您的需要呢? rust rust于2010年上市,尽管它的构思可能要早得多。rust通常被视为ml语言家族的一个扩展。...

  • ”即便是在此时此刻创业的公司,公司的产品决定全部采用 go 和 rust 也是非常艰难的决定,更何况是七年前2015 到 2016 年,go 不到五岁,rust 还没发布 v1.0 版本,没有太多公司和开发者看好这两种语言,怎么会有...

  • go 是一种静态类型的aot编译语言,rust 是一种静态的、强类型的和aot编译的语言,是一种多范式、高级和通用语言,两种编程语言都是比较优秀现代语言,可以挑战一下上一代的编程语言。可以参考:rust go 大战 c/cpp...

  • 这两种语言,golang和rust,由于它们非常相近的起源时间,被认为是彼此的竞争对手。go的发展速度比rust快。这两种语言有很多相似之处。golang和rust之间的区别在于go是简单的,而rust是复杂的。然而,它们的功能和...

  • 本文主要是从 python 开发者的角度基于开发工效学对这三种语言进行的一个比较,你可以跳过讨论部分,直接查看代码示例、性能比较(如果你想要一些硬数据)、主要结论或 python 、 go 和 rust 的 diffimg 实现。...

  • 本文翻译自乔纳森·特纳(jonathan turner)和史蒂夫·弗朗西亚(steve francia)的文章《rust vs. go: why they’re better togeth...

  • 本文转载自公众号“读芯术”(id:ai_...自2010年年初以来,python一直在蓬勃发展——在流行趋势方面,它最终超过了c、c#、java和javascript,成为计算机语言中的“大热门”。它为人们提供了优质的服务——但...

  • 40 多年编程经验的知名 go 开发者与作家 john arundel 在其个人博客分享了《rust vs go in 2023》一文,该文章非常中肯地指出了这两门语言的优缺点,以及适用场景,对于那些不知道如何选择编程语言的开发者来说,...

  • 鱼和熊掌往往不可兼得,要想开发效率高,必然要牺牲性能和资源消耗,反之亦然。但是rust却出其不意,令人眼前一亮!本文将从性能、内存安全、开发效率、跨平台性及生态等五个方面,对rust这一编程语言进行一些科普...

  • qt项目为三维加工系统设计,主要仪器包括二维振镜,pi一维移动平台,索雷博光快门,大恒光快门、ids工业ccd等,其中技术包括多线程、dll函数调用、实时显示等 软件开发设计:php、qt、应用软件开发、系统软件开发、移动应用开发、网站开发c 、java、python、web、c#等语言的项目开发与学习资料 硬件与设备:单片机、eda、proteus、rtos、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:linux、ios、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

global site tag (gtag.js) - google analytics
网站地图