rust语言的优缺点

匿名 不建议 2023-08-21 15:37:15 -
有哪位Rust大佬知道Rust游戏语音本来是按键说话现在变成自由语音的 怎么办啊 游戏 YY有声音

其实rust语言的优缺点的问题并不复杂,但是又很多的朋友都不太了解c语言为什么不建议学rust,因此呢,今天小编就来为大家分享rust语言的优缺点的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

  1. C#这么优秀的语言为什么不流行
  2. Rust可能取代C语言吗
  3. rust语言的优缺点
  4. 未来Rust编程语言会成为主流吗

C#这么优秀的语言为什么不流行

C#为什么不流行?

说到底这个锅该鲍尔默来背,他差点都把比尔盖茨一手打下的微软江山给败光了,更别说一个C#了。C#能做的JAVA基本都能做,JAVA不能做的有其他语言比C#做得更好,然后你的开源和跨平台还姗姗来迟,C#拿什么跟JAVA斗?

行业有个笑话,.NET最厉害的地方是跨平台,但是.NET最大的笑话也是跨平台。除了C++之外,能在.NET上运行的编程语言,是唯一一个能做到在所有平台上都能运行的编程语言,能把桌面MacOS、Linux、Windows,移动Android、iOS、WP(假设这玩意儿还在)全部跨完。不过遗憾的是,理想与现实总是残酷的,理论上是可以跨平台的,不过遗憾的是这么多年了微软一直都没跨出去。

这些年C#过得其实还挺憋屈的,前面的C/C++、JAVA交替做老大,两个老前辈C、C++时而来个青春走一回、容光焕发的,PHP、Python也是时常爆发,Go语言这个年轻人也是越来越强大,都实现自举了,可是C#呢打不过老年人,也打不过年轻人,其实还蛮惨的。

C#也不是一无是处

Windows应用程序,现在很多都是C#开发的,MSDN、SQLServerManagementStudio、Bing的很多服务,也都是用C#开发的,现在office365、Windows、VisualStudio也用了一些C#开发,C#现在还是Unity开发游戏的主要脚本语言。

微软自己的产品用C#自然是无可厚非,还有很多非微软网站也是用C#开发的。程序员问答网站StackOverflow、国内著名的技术博客网站博客园、国内程序员社区CSDN、开源中国,都是用C#开发的。以前当当、京东的核心技术栈也都是C#,不过后来才转向了JAVA技术栈。

C#其实能做的事情还蛮多的,Windows桌面应用开发,Web应用,也可以用来做移动开发,不过做得都比较差强人意。做桌面开发弄不过C++、现在甚至连Electron都弄不过了,除了一些B端应用,大家基本都不会选C#,Web应用方面弄不过JAVA和PHP,移动方面弄不过JAVA和swift,然后大企业也都有自己的技术栈,可是这些技术栈都跟C#无关。

C#、.NET,以及ASP.NET的关系,C#错过第一波红利

.NET是一个平台,本身实现的方式当然也是各种各样的库,理论上各种各样的编程语言都可以编译成其IL,然后在这个平台上运行,当然这个平台上面的编程语言很多,C#毫无疑问是这里面最重要的一个。ASP.NET是.NET主要用来做web开发的技术方案,当然这里面主要也是C#作为核心。

JAVA在96年面世,C#则是在2000年面世,JAVA的先发优势并没有那么明显,可是JAVA开源、免费的特点,让JAVA迅速攻城拔寨。C#有个好父亲、还是含着金钥匙长大的,C#的创造者安德斯·海尔斯伯格是TurboPascal编译器、Delphi的作者,在设计C#之前,已经是计算机工业界最伟大的科学家之一,后来又设计了TypeScript,打早了整个.NET体系。

C#语言设计本身在很多方面都是要超过JAVA的,可是吧微软早期的策略一直比较保守,不愿意跨平台,也不愿意开源,尽管安德斯·海尔斯伯格一直在努力推动这件事情,保守的鲍尔默领导下的微软错过了C#最好的几年,可是在这期间JAVA等编程语言不断攻城拔寨,C#终于还是输掉了未来。

C#输掉了移动互联网,大数据、云计算、AI也全都错过了

编程语言总得要抓住几个机会才能发展得更好,C#除了抓住了Windows,其余全都没有抓住,也许这就是命,当然跟微软自己作也有很大的关系。

你看Android爆发的时候选择了开源的JAVA,尽管现在Google因为这事儿天天被Oracle恶心;iOS自然不用说,人家先是objective-C、接着是swift,这个微软没办法;到了大数据时代,JAVA和Python又大发威风;云计算来了吧,你看Go语言又逐渐爆发了,越来越多的移动互联网企业比如字节跳动、B站也都转向了Go语言,就连Google、百度、腾讯也都在用Go语言;人工智能时代,C/C++做底层,Python用来做上层应用和算法。

你看几乎每一个重要的技术变革都跟C#无关。在大企业里面微软自己的核心技术栈都是C++,Google也是C/C++,Facebook是C和PHP,百度是C/PHP/Go,字节跳动是Python/Go,阿里巴巴是JAVA,B站是Go语言。你同样可以发现,这里面没有一家企业将C#作为核心技术栈。

C#本来可以有个很好的发展的,可惜微软自己作死,浪费了C#发展最好的几年,等到纳德拉上台之后,试图通过开源来发展C#的时候,已经来不及了。未来看微软的决心有多大,比如微软是否愿意将全功能的VisualStudio移植到MacOS平台,假设微软带着VisualStudio威力还是有点大的,不过这也可能反过来威胁到Windows的地位。

Rust可能取代C语言吗

很有可能。

内核和QEMU这样的C语言项目已经在积极考虑使用Rust开发的可能性了,而且行业里已经有不少公司在开始用Rust来做一些新的项目。

相信经过众多的小规模验证以后,如果Rust的生态发展趋势比较好,未来应该能够胜任很多用C的场景。

关注我了解更多Rust编程技巧!

rust语言的优缺点

你好,Rust语言的优点:

1.内存安全性:Rust通过所有权系统和借用系统确保内存安全,避免了常见的内存问题,如空指针、野指针和内存泄漏。

2.高性能:Rust可以像C/C++一样进行底层编程,同时具有更高的抽象级别,使程序员可以轻松地编写高性能、可维护的代码。

3.并发性:Rust拥有内置的并发支持,可以轻松地创建并发程序,而不会出现常见的并发问题,如竞态条件和死锁。

4.可靠性:Rust通过编译时检查和强类型系统确保代码的正确性,减少了运行时错误和崩溃的可能性。

5.社区支持:Rust拥有活跃的社区,提供了大量的开源库和工具,使得开发变得更加轻松。

Rust语言的缺点:

1.学习曲线:Rust具有较高的学习曲线,需要花费一定的时间和精力来学习其独特的语法和概念。

2.生态系统不够成熟:相比于其他主流编程语言,Rust的生态系统还不够成熟,缺乏一些常见的库和工具。

3.编译时间较长:Rust的编译时间较长,特别是对于较大的项目,可能需要花费相当长的时间来编译。

4.内存管理较为严格:Rust的所有权和借用系统虽然保证了内存安全性,但是在一些情况下可能会导致编码更加困难。

未来Rust编程语言会成为主流吗

《2021年将成为系统程序员的“RUST”年》——Rust提供了业界创建安全系统编程的最佳选择

Rust是一种开源系统编程语言,专注于速度、内存安全性和并行性。Rust编程语言作为C、C++和其他语言的替代方案,以此来改善应用程序的安全状况Rust旨在利用高级语言的能力来满足低级系统编程的需求。

未来Rust编程语言是否会成为主流,这需要了解Rust的过去和以后动向:

Rust的2021动向对于已过去的2020年,关于Rust你需要知道些什么

最近几年来,Rust积攒了很多粉丝,这不是毫无原因的——

对于满足系统编程需求,C++是个选择,而Rust旨在成为其可靠的替代品。实际上,它解决了C++中许多固有限制,例如:内存安全和线程安全问题,这些问题通常会导致令人厌烦的的分段错误。Rust旨在利用高级语言的能力来满足低级系统编程的需求。

在许多情况下,内存安全错误已成为安全漏洞的根本原因。从一定的视角下,请考虑一下这个数字–“Microsoft的所有CVE中,大约70%是内存安全问题”。C/C++程序员一直都在遇到与内存相关的错误——使用未初始化的内存、基于“释放”内存后使用、缓冲区溢出。另一个棘手的错误源是数据争用(dataraces)和竞争条件;基于进行读/写的顺序对数据的不可预见的使用。

Rust是一种开源系统编程语言,专注于速度,内存安全性和并行性。三个词定义了Rust:安全,并发和快速。其目的是防止首先引入内存安全错误。

一个简单示例的截图,显示Rust在编译时如何捕获内存错误;而实际场景更加复杂,这是内置功能应派上用场的地方。

Rust在编译时如何捕获内存错误,数据源Source:TalkbySteveKlabnik(@SteveKlabnik)

尽管现代变体引入了更多的保护措施,但C++并不是一种内存安全的语言,鉴于使用C/C++构建了许多核心平台组件,这样说一点也不过分。

谁在使用Rust?

目前在使用Rust这门语言的产品及大厂,数据来源:Source:RyanLevick’spresentation

说到利用Rust开发的应用,目前进行中的至少可以拿出两个:

操作系统作为系统程序的示例FirefoxServo作为高并发的示例

AmazonFirecracker,是一种支持AWSLambda和AWSFargate的开源虚拟化技术,它是用Rust编写的;目的是利用Rust的线程安全性并防止可能导致安全漏洞的缓冲区溢出错误。

与此有关AWS服务包括AmazonSimpleStorageService(AmazonS3),AmazonElasticComputeCloud(AmazonEC2),AmazonCloudFront,AmazonRoute53。

操作系统

AWS推出了Bottlerocket,这是一个用Rust编写的基于Linux的容器操作系统,Bottlerocket仅包含运行容器的基本软件,从而可以提高资源利用率并减少攻击面。

GoogleFuchsiaOS的TCP/IP堆栈是用Rust编写的。Fuchsia具有模块化的内核体系结构,其中一些组件是用C++编写的,一些组件是用Go语言编写的,其他组件则是用Rust语言编写的。这说明Rust具有与其他语言编写的组件进行交互以帮助实现模块化内核体系结构的能力。

数据来源:https://blog.quarkslab.com/playing-around-with-the-fuchsia-operating-system.html

Firefox

在其新的CSS引擎(QuantumCSS)中,Firefox利用了Rust内置的编译时支持并行性。Web浏览器为背景的并行性,意味着你正在尝试并行呈现网页的所有不同部分;要知道并行性是很困难的,因为它引入了“竞赛条件”(RaceConditions),这些条件难以识别且难以排除。

这就是Rust发挥其威力的地方,Rust编译器静态验证代码以防止在编译期间出现竞争状况。

来源:Source:https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/

WebAssembly

WebAssemply通过将已编译的代码带到浏览器来向Web应用程序添加新功能;WebAssembly允许你采用以编译语言编写的功能,例如:C++和Rust,并在Web浏览器中安全地运行它。

Rust提供了业界创建安全系统编程语言的最佳机会。——微软RyanLevick

最后,回顾下,2020年关于Rust发生了什么变化

Rust最初被认为是Mozilla研究项目,直到最近才成为[开源Rust]项目的唯一官方赞助商。然而,在2020年8月,它解雇了250人,其中包括积极参与Rust项目和Rust社区的部分人。

(一些Rust维护者正在加入Amazon和Facebook,领导他们新创建的Rust团队。NikoMatsakis(@nikomatsakis)加入了亚马逊,PatrickWalton(@pcwalton)加入了Facebook,成为Rust团队的技术负责人。此外,Rust基金会正在公司化成为一个独立实体成立,但尚不清楚发起人是谁。目前的赞助商名单包括Sentry、GitHub、GoogleCloud、AmazonWebServices、Mozilla和Microsoft。GitHub和Azure托管repo存储库和CI基础结构。

与众不同的Rust

与Java不同,Rust的设计不需要垃圾收集器。不需要垃圾收集器意味着你不会受到运行时性能的损失,尤其是在低功耗硬件上。编译时验证以确保线程安全和内存安全。我认为这是最重要的区别因素,因为你不再依赖运行时检查。系统编程应将异常处理移至编译时,并避免程序员犯错误在先。不允许为Null,也不支持例外。即用的软件包管理器可以与生态系统的其余部分集成(非常类似于Python),但是以前系统编程语言是没有有此功能的。零成本抽象。什么意思呢?也就是说,由于抽象的系统开销,高级语言的性能和安全性通常需要权衡。这会联想到引用计数的指针和运行时检查。

关于Rust的温馨提示

尽管Rust语言有诸多好处,但诚然其陡峭的学习曲线是不可避讳的。

此外,机构组织恐怕不太会利用Rust重新编写现有软件系统,而宁愿使用它来构建和当前生态系统作集成的新组件,因此,跨库组件和工具链的互操作性成为重要的考量因素。

Rust社区

过去的五年中,Rust在StackOverflow上的开发者调查问卷中一直是最受欢迎的编程语言,位居榜首。

例如,在2020年调查中,有86.1%的开发者正在使用该语言或技术进行开发,并且表示有兴趣继续选用该语言。这几乎是C++收到的票数的两倍!

另外也可以参考美国社群应用Reddit上Sub-Reddit调查(r/adventofcode),其中Rust在Python之后排在第二位。

关于本次rust语言的优缺点和c语言为什么不建议学rust的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

Rust语言安装 新建文件和写一个简单的demo