内容简介:【51CTO.com快译】众所周知,为了在竞争激烈的业务应用中得以脱颖而出,并能够蓬勃发展,选择正确的基础性编程语言是非常至关重要的。与此同时,对于企业和开发人员来说,能够为其用户提供良好的使用体验也是值得考虑的当务之急。
【51CTO.com快译】
众所周知,为了在竞争激烈的业务应用中得以脱颖而出,并能够蓬勃发展,选择正确的基础性编程语言是非常至关重要的。与此同时,对于企业和开发人员来说,能够为其用户提供良好的使用体验也是值得考虑的当务之急。
根据过往的项目实践经验:在如今各种琳琅满目且各有专攻的编程语言中,我们很难只选择其中的一种,去通配各种实际应用的场景。因此,在本文中,我将和您讨论两种最受欢迎的编程语言--Rust和Go,并详细比较它们各自的优缺点。
Rust
于2010年推出的Rust语言,旨在通过各种出色的模块化,提高程序的安全性,以及改进原有的并发量和性能。有研究表明(请参见--https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html):2018年,Rust编程语言的使用量增长了约有23%。目前,大约有74.5%的开发人员看好Rust编程语言。而业界用到Rust编程语言的项目也是比比皆是。
Rust的优点
- 相对其他编程语言,Rust的整体速度要快许多。这恐怕也是它如此流行的原因之一。
- 大幅减少了崩溃、测试和调试的时间和频率。
- 具有零成本抽象(Zero-cost abstraction)和运行时(runtime)的可预测行为。
- 阻止那些不受保护的内存访问。
- Rust拥有广泛的支持社区。
- Rust可与C、FFI(译者注:Foreign Function Interface)和许多其他语言进行互操作。
Go
由Google于2007年推出的Go语言,旨在从理念上提高程序的“生产力”。Go(也称为Golang,https://golang.org/)在内置并发数和垃圾收集方面非常见长。Go被设计为可以横跨各种组件的边界,来管理严苛的依赖性和鲁棒性。
Go的优点
- Go的最大优点是简便。
- 它是一种以高效、简洁和顺磁性(paramagnetic)而著称的语言。
- 开发人员将受益于该语言极大的灵活性。
- 就代码的编译效率而言,它比任何其他编程语言都要迅速。
- 它与C#语言之间具有极强的互操作性。
上面是我们对Rust和Go语言基本特征的介绍。下面,让我们从性能、并发量、开发速度、以及内存管理等方面进行比较。
性能
无论是软件程序还是应用产品,性能总是大家考虑的首要因素。就两种语言的运行速度而言,Rust之于Go,好比C ++之于C。而在开发速度方面,Go会比Rust来得快。在性能方面,Go比Rust要慢很多。
并发量
撇开功能不谈,各类应用程序的基本原则应该是:能够保障在平稳运行的同时,避免出现各类数据遭受损坏的风险。因此,我们往往需要通过任务之间的状态共享,来控制此类风险。那么就并发而言,Go的语法中会带有内置的并发性,而Rust并没有。
开发速度
在某些快速试错和迭代的需求场景中,有时候程序的开发速度比其本身的运行速度更为重要。Go语言自带的简单性和直接性,使其比许多其他语言更为迅速和高效。而在另一方面,Rust虽然带有更多的语言功能,但是这也导致了 程序员 的开发、甚至是编译的过程更需要时间。因此总的说来,Go语言在开发和编译上的速度更加占优。
内存管理
通过上述提到的零成本抽象,Rust使用编译策略进行内存管理(请参见--https://dzone.com/articles/memory-management-net)。如果Rust程序中存在任何安全问题,它将在编译阶段无法被执行。Go语言虽然有着与Rust一样的内存安全性。但是由于Go的内存管理是在运行时自动处理的,因此有时可能会引起某些不可预见的问题。可见,Rust在内存管理方面比Go要更为可靠。
不过在Web开发中,虽然两者都能够提供出色的Web设计支持,但是在普通开发者眼中,Go要比Rust略强一些。
总结
其实此类细枝末节的讨论和比较,可能永远也没有尽头。凡事都有优缺点,纵然是顶级的编程语言也是如此。那么我们具体应该如何去选择,则很大程度上取决于手头的实现项目需求。下面,我只是给出一些适合于某种语言的场景与需求的经验总结:
何时该选择Rust:
- 如果您计划与 C语言 实现互操作的话。
- 如果性能是您业务的主要目标。
- 当您需要对平台中的每个程序进行控制,并希望准确地了解系统中每个线程的性能时。
何时该选择Go:
- 当程序的可读性是您的主要需求时。
- 如果您的目标是简单且统一的话。
- 如果您想实现更快的开发和编译的话。
原标题:A Detailed Comparison Between Top Programming Language: Rust vs Go ,作者: Paresh Sagar
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
【责任编辑:庞桂玉 TEL:(010)68476606】
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 聊聊服务器开发语言比较
- 涨涨姿势 13 个比较冷门但很实用的编程语言
- 涨涨姿势 13 个比较冷门但很实用的编程语言
- 木兰编程语言 0.0.14.8:WebSocket 聊天演示;部分比较 Python 语法
- 放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较
- React与Vue模板使用比较(一、vue模板与React JSX比较)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
scikit learn机器学习
黄永昌 / 机械工业出版社 / 2018-3-1 / CNY 59.00
本书通过通俗易懂的语言、丰富的图示和生动的实例,拨开了笼罩在机器学习上方复杂的数学“乌云”,让读者以较低的代价和门槛轻松入门机器学习。本书共分为11章,主要介绍了在Python环境下学习scikit-learn机器学习框架的相关知识。本书涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA ......一起来看看 《scikit learn机器学习》 这本书的介绍吧!