189 8069 5689

rustgo语言对比 rust语言 go语言比较

Rust 和 Go 的并发模型有什么不同,为什说 Rust 的并发模型更好

1.根据Rust的特点和定位适用于对控制性比较强,对性能很敏感的领域,比如底层软件(OS/driver),基础系统软件(Compiler/VM/DB等),性能要求比较高的应用软件(浏览器/图形图像处理/游戏/高性能服务器软件等,或者可能包括近来很火的ML应用方向)。2.底层软件(比如OS/driver)部分是和C应用领域有很大重合度的,在这个领域我认为对C冲击不大。在这里C已经足够好了,而且这些领域技术性很高,但业务逻辑其实并不算太复杂,Rust的优势作用有限。而且Rust相比于C语言,带来了一定的“黑盒”和这些领域一些不需要的语言复杂特性。C作为“可移植的汇编”恰到好处的非常适合这个领域,其他语言基本无法构成挑战。3.前面1中提到的领域除了底层软件(OS/driver之类)剩下的领域,C++目前最具有优势。在这些领域C++相对于C提供了高级特性方便开发,相对于JVM系的性能更高内存更少。(虽然这些领域有些知名软件是C和JVM系的,比如postgresql/redis/nginx/Hadoop/spark等,但在这些领域目前只有C++一个是全能型)我认为rust的主要战场就在这里,需要对决的对手就是C++。C++既有的力量(系统/代码/人员/习惯)太强大了,在这些领域完全打败C++是非常困难的。而且C++也在不断发展,近年来发展的步伐也快了起来,C++11/14/17等等。但C++的历史包袱是很重的,越发展其实复杂性也在不断提高,何况有些问题(像安全/异常/复杂继承等等)是基因里的,通过增加feature打补丁是弥补不了的。Rust最容易吸引的人群可能是C++程序员:因为,一方面解决了不少C++的痛点,另一方面Rust的很多特性其实有点复杂也有点门槛的。这些特性背后的动因有C++背景的程序员是非常容易理解,也是不少C++程序员梦寐以求的。相对而言,其他语言背景出身的程序员,对Rust的共鸣性远远没有C++程序员强烈。猜测Rust会:a.蚕食掉一定的C++份额。一些可能本会选择C++开发的新项目,可能会选择Rust。b.蚕食掉一定的Java份额。有些项目选择JVM系是由于C++开发太复杂,同时该项目对性能又有一定的要求。那么Rust出现以后也会蚕食掉一定的此类项目。c.蚕食掉一定的golang份额。不满意gc(即使1.5改善了,gc的先天问题是无法彻底解决的),不满意泛型,不满意性能的一部分项目。不过也要依赖于Rust未来并发的解决方案是否足够理想了。1.0这种是没戏的。d.移动端Rust从自己实力上说是够的。不过这个真的要看出品移动端设备的“爹”的意思了。Rust自身有一些优势非常明显,在这些领域是很有竞争力的。Rust社区一定要重视IDE开发环境,花费精力出eclipse/intellji/vs的高质量的IDE插件,对于推广和流行大有帮助。只要Rust社区不要犯D语言曾经反复折腾的毛病,能像golang社区那样基础做的不错并且工程质量优秀,那么未来Rust出几个杀手级的应用,前途还是很可期的。

创新互联建站是一家集网站建设,多伦企业网站建设,多伦品牌网站建设,网站定制,多伦网站建设报价,网络营销,网络优化,多伦网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

大家如何评价Rust语言

我用rust正在写一个区块链项目。

如果不熟悉它的机制,很可能会写得非常啰嗦。

举个例子MutexRefCellRc 这种类型多了会让人崩溃。

c++很多东西被简化了, 比如拷贝构造函数变成了Copy trait,移动构造函数自带。 RAII被rust强推(连lock都是).. 想要用内存不安全的操作需要加unsafe。c++那几个智能指针变成rust的基本类型了。所有的变量都会有一个所有权,不用智能指针的话,只能用引用(rust叫借用),增加了很多限制。指针什么的很难看到了(写起来啰嗦)

恶心的生命周期标注,没有ide很容易被这个烦死。

没了容器类, 这个习惯c++的要吐槽。

加了很多函数编程的概念。 比如: arr.to_iter().filter(|x| x.age 20), 还有模式匹配,高阶枚举,但总体没有scala ocaml这类强大。

完全编译时, 极少运行时(有类似c++的typeid),要想用类似java的反射机制就不要想了。 泛型和c++一样, 基本就是一个文本替换(宏)

常用的功能, 如多线程,日志,文件,网络等都比c++ std和boost好用很多, 但是功能也没有那么强大, 不少功能和c一样直接在系统内核上封装了一下,写起来跟c有点像。

完全抛弃面向对象,和go很像,全是struct。这点真心比c++半吊子面向对象强。

比c++方便最多的地方是有一个模块管理系统,项目的结构都是订死的(和sbt有点像),灵活性不强。

目前社区不完善,基本上找不到什么有用的论坛。debug比较痛苦。

总体觉得是c++的阉割版,写起来很难像c++一样放得开。小项目会快那么一点,毕竟不用写makefile。

对比Go 语言,Rust 有什么优势和劣势

Python 是脚本语言,也就是中间件语言,其内核仍然是纯 c 的性能表达的,而主要性能消耗在脚本的实时编译上。而对比c,同样的功能,python可以表达比c更加精炼,当然牺牲了一些性能。如果确实对某个模组性能不满意,还可以使用 c 编写 Python 模块为其加速。面对一些并不需要过多性能而可以获得更快捷的开发速度,Python的优势完全可以盖过“劣势”。可以说,Python基本完美。例如知乎就是使用 Python 制作的。Google 的许多页面也是使用 Python 进行渲染的。

gorust字符串效率

gorust字符串效率中go的效率更高。Go的简单直接特性,让它比其它语言开发效率更高。而Rust具有甚多的语言功能,这就让开发、编译过程时间更长。

Python , Go , Rust

Go语言非常酷,但并没有为我提供足够的类型安全。如果不需要并发,那么我宁可继续使用Python及其生态环境,而不会去冒险采用Go重写一切。如果需要并发,那我也不会使用Go,因为它缺乏类型安全,这个炸弹肯定会爆炸。

Rust非常适合并发和安全,尽管futures-rs的“箱子”(Rust里函数库叫做“箱子”)依然非常新。我认为,以后Rust会成为许多后台的默认语言。


网站标题:rustgo语言对比 rust语言 go语言比较
网站路径:http://cdxtjz.cn/article/hhciic.html

其他资讯