金沙赌场线上开户:年仅 5 岁的 Rust 如何成为最受欢迎的编程语言?

本文来源:http://www.5566122.com/www_xcar_com_cn/

申博网址登入导航登入,新浪中国网络游戏排行榜将网络游戏从六大项、二十八个小分项与同类游戏进行横向比较,再将该游戏与自身的不同版本进行纵向对比后,由评测中心根据加权平均数得出最后的游戏分数,并以游戏测试及上线时间点为分组,根据每款游戏的CGWS分数在每个季度发布排行榜榜单,实现了排行榜的透明化和实时化,帮助玩家准确、迅速地找到心目中的理想游戏。  施政效果:1)任期内GDP年均增长1.4%,美国经济缓慢复苏;2)财政赤字占GDP比重2010年达9.8%,2015年降至2.5%;3)贸易赤字明显减少;4)政府债务持续增加。行情12月07日【广西IT前线今日报道】惠普Pavilion14-AL131TX搭载第七代英特尔#174;酷睿i5-7200U处理器,采用KabyLake架构,运用成熟的14纳米工艺,功耗较第六代更低。@北京往事网站27日发布了一条微博:【公共场所注意举止,不要裸露性器官】姑凉,你在地铁上这个样子真的好吗?哦,对了,可能你忘记了这里是哪里了,那由我提醒你一下吧,这里是北京德地铁之上,不是你们村的公交车,你这么做真的好吗?这条微博在发布后数小时后,引来万余次转发和评论。

但一些商标权利人却向工商部门反映,这其中有很多是假货。行情12月07日【广西IT前线今日报道】惠普Pavilion14-AL131TX搭载第七代英特尔#174;酷睿i5-7200U处理器,采用KabyLake架构,运用成熟的14纳米工艺,功耗较第六代更低。  目前,绿地旗下绿地金融、(,)、建信三方已成立国内首只千亿规模的中国城市轨道交通PPP产业基金,总规模为1000亿元,分期发行,首期规模240亿元。在公告并购重组事项后,股价大幅拉升,上市公司大股东和机构趁机进行减持套现退出,套牢跟风追涨的中小股民。

  无论是类似绿地这样的“地铁+物业”开发模式,还是像万科、万达所做的存量资产投资、开发、管理,又或者是类似碧桂园(02007)物业所做的住宅小区运营管理,他们都在以各自不同的模式,诠释城市运营商这个大生意。1953年美国历史上大规模的减税有三次:民主党肯尼迪-约翰逊时期,共和党里根时期,共和党小布什时期。2006年7月通过的《刑法修正案》第182条修改了对操纵证券类违法行为的惩处力度,从定罪量刑上“最高5年有期徒刑”修改为“5年以上10年以下有期徒刑”,犯罪成本进一步提高。  绿大地业绩不断变脸引发证监会的注意。

当今世界科技发展日新月异,Rust 1.0 版本发布至今已有五年时光!在这五年中,Rust改变了许凭借自身的优势,Rust 也连续四年成为开发者最受欢迎的编程语言。目前,也有越来越多的项目及企业开始选择使用 Rust 作为其应用及工具开发语言。

如今 Rust 发行五周年之际,Rust 核心团队回顾了过去五年间,Rust发展历程,在其每个版本的更新迭代中,我们或许能明白 Rust?流行的真正原因。

作者 | Rust核心团队

译者 | 弯月,责编 | 屠敏

图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

Rust是一个通用的编程语言,任何人都可以使用它构建可靠、高效的软件。Rust适用于技术栈的任何地方,不论是操作系统内核,还是Web应用程序。它完全是由一个开放、多样化的社区构建的 ,多亏了志愿者们贡献出宝贵的个人时间和专业技能,Rust才有了今天的发展。

1.0版以来的主要变化

2015年

1.2 - 并行代码生成:Rust的每次发布,编译时间都会有很大提升。很难想象,曾经有一段时间,Rust还没有提供并行代码生成功能。

1.3 - Rustonomicon:《Rustonomicon》的第一版发行。这本书总结了一些不安全的Rust用法。这本书以及相关资源成为了人们学习以及理解Rust语言最难懂部分的最佳资源。

1.4 - Windows MSVC Tier 1支持:第一个Tier 1平台提升,通过Microsoft Visual C++工具链(MSVC)带来了对64位Windows的原生支持。在1.4之前,你必须同时安装MinGW(一个第三方的GNU环境)才能编译并使用Rust程序。Rust的Windows支持是过去五年的一项巨大进步。最近,微软公布了他们的WinRT API准备正式支持Rust!现在,构建跨平台的高质量原生代码已经非常容易了。

1.5 - Cargo Install:在cargo已有的插件支持之外,能够构建Rust二进制文件,这个功能打造了一个完整的生态系统,里面包含了大量社区喜爱并且每天都使用的应用程序、工具和开发工具等。cargo的许多命令最初都是社区构建并在crates.io上分享的插件!

2016年

1.6 - Libcore:libcore是标准库的一个子集,它仅包括那些不需要内存分配或操作系统级别功能的API。libcore非常稳定,因此Rust的编译不需要再耗费大量资源或依赖于操作系统,这是Rust朝着嵌入式系统开发迈进的一大步。

1.10 - C ABI动态库:cdylib类型允许Rust编译成C动态库,这样人们就可以将Rust项目嵌入到任何支持C ABI的系统中。已有一些成功的Rust案例,如用Rust编写系统中关键的一小部分,然后无缝集成到整体代码中,这种实现已经非常容易。

1.12 - Cargo工作空间:现在工作空间可以组织多个Rust项目,并共享同一个lockfile。在构建大型、多crate的项目时,工作空间是无价之宝。

1.13 - Try运算符:增加的第一个语法就是 ? ,或者叫做“try”运算符。该运算符可以很容易地将错误从调用栈中向上传递。之前必须使用try!宏,需要在每次遇到结果时将整个表达式都包裹起来。而现在可以方便地使用 ? 来串联方法。

try!(try!(expression).method());?/?Old
expression?.method()?;???????????/?New

1.14 - Rustup 1.0:Rustup是Rust的工具链管理器,可以让你无缝地使用任何Rust版本,或者使用它的任何工具。最初这个工具只是一个shell脚本,后来被维护者称为“奇美拉”。能够在五年期就提供 一个跨Linux、macOS、Windows和各种目标平台上的编译器,真是一个奇迹。

2017年

1.15 - 继承过程式宏(Derive Procedural Macros):继承过程式宏可以建立强大且可扩展的有类型的API,而无需编写样板代码。这个版本的Rust首次能够使用serde、diesel等库的宏。

1.17 - Rustbuild:这是我们的贡献者为Rust做出的最大改进之一,将最初基于make的构建系统改成了使用cargo。从那以后,rust - lang/rust降低了新成员构建的门槛以及为项目做贡献的难度。

1.20 - 关联常量:以前,常量只能关联到模块上。从1.20开始,我们开始稳定地支持将常量关联至结构体、枚举,最重要的是还能关联到trait上。从那以后,我们可以很轻松地给API的类型增加丰富的预设值,比如常见的IP地址,或关心的数字等。

2018年

1.24 - 增量式编译:在1.24之前,修改代码库后,rustc会编译全部代码。现在rustc变得非常聪明,会尽可能使用缓存来生成需要的东西。

1.26 - impl Trait:新增的impl Trait支持含义丰富的动态API,还能提供静态分发的好处和性能。

1.28 - 全局分配器:之前你只能使用rust提供的分配器。有了全局分配器API,现在你可以使用自定义的分配器来实现自己的需求。这是实现alloc库的重要一步,alloc库是标注库的另一个子集,它仅包含需要分配器的部分,如Vec或String。现在我们可以更方便地在多种系统上使用更多标准库了。

1.31 - 2018版:2018版的发布是自1.0以来最大的一次版本发布,其中增加了许多语法的变化与改进,同时完全维持了Rust的向后兼容,可以让各种不同版本的库无缝协同工作。

  • 非词法生命周期:这是对Rust borrow checker的一个巨大改进,可以接受更多可验证的安全代码。

  • 模块系统改进:针对模块的定义和使用方式进行的巨大UX改进。

  • 常量函数:常量函数可以在编译时运行和计算Rust代码。

  • Rustfmt 1.0:专门为Rust打造的专用代码格式化工具。

  • Clippy 1.0:用于捕捉常见错误的Rust linter。Clippy可以很轻松地确保代码的安全性和正确性。

  • Rustfix:由于有许多语法改变,我们希望提供一个工具,可以很容易地进行代码转换。有了这个工具,只需要执行cargo fix就可以解决语法改动的问题。

2019年

1.34 - 自定义Crate仓库:随着Rust越来越多地在生产环境中应用,在非公共领域运行项目的需求也越来越大。尽管cargo允许依赖于异地的git代码仓库,但有了自定义Crate仓库,各个公司就可以很轻松地构建并共享自己的仓库,用于自己的项目中,就跟crates.io一样。

1.39 - Async/Await:async/await关键字可用于处理Future,这是Rust开始支持异步编程的一个重要里程碑。在Rust发布异步编程后仅仅六个月内就催生了各种各样高性能的生态系统。

2020年

1.42 - subslice模式:尽管不是最大的改动,但 ..(其余)模式的添加能够极大地提高代码在带有slice的模式匹配方面的表达性。

错误诊断

我们没有提过过多的一点就是Rust的错误信息和诊断从1.0开始就在不断改进。现在看看最初的错误信息,就像是看着一个完全不同的语言一样。

下面的几个例子展示了错误信息的改进,以及这些改进对于用户理解错误和修复错误的重要性。

第一个例子(Traits)

use?std::io::Write;

fn?trait_obj(w:?&Write)?{
????generic(w);
}

fn?generic<W:?Write>(_w:?&W)?{}

1.2.0的错误信息

1.43.0的错误信息

第二个例子(help)

fn?main()?{
????let?s?=?"".to_owned();
????println!("{:?}",?s.find("".to_owned()));
}

1.2.0错误信息

1.43.0错误信息

第三个例子(borrow checker)

fn?main()?{
????let?mut?x?=?7;
????let?y?=?&mut?x;

????println!("{}?{}",?x,?y);
}

1.2.0错误信息

1.43.0错误信息

来自开发团队的心声

?

当然,我们无法在本文中一一列举出我们做的所有改动。所以我们采访了一些团队成员,听听他们最引以为豪的工作:

rustdoc最重要的改动是:

  • 为blanket implementation自动生成文档

  • 搜索功能机器优化(最新的优化为转换为JSON)

  • 能够检测出更精确的文档代码块“compile_fail, should_panic, allow_fail”

  • 现在文档测试生成为独立的二进制文件

——Guillaume Gomez (负责rustdoc)

如今Rust支持基准的IDE了!大多数用户都认为自己在Intellij Rust、RLS和rust-analyzer之间取舍“不是那么糟糕”。五年前,编写Rust代码时需要使用古老的Vim/Emacs。

——Aleksey Kladov (IDE和编辑器)

我认为最重要的是,支持流行的嵌入式架构并建立了一个生态系统,从此使用Rust进行微控制器开发的难度大大降低,而且非常安全,还很有趣。

——Daniel Egger(嵌入式工作组)

发布团队在2018年前期才成立,但即使在当时,我们已经在rust-lang/rust下提交了将近4万个提交,而且稳定版中没有出现任何问题。

考虑到我们的编辑器和标准库的改进速度,我认为做到这一点非常不容易(当然,发布团队并不是唯一的贡献者)。总的来说,我认为发布团队的工作非常了不起,能够管理如此大规模的问题跟踪系统和提交的PR等。

——Mark Rousskov (发布)

我们仅用了三年时间就成功地将Miri从一个实验性质的解释器发展成了一个实用工具,可以在真正的代码中浏览语言的设计并寻找bug,这是编程语言理论和实践的完美结合。理论方面,我们使用了stacked borrows,这是Rust aliasing model目前为止最具体的提案。实践方面,最初我们只使用Miri检查少数几个关键的库,但最近我们发现,许多人开始使用Miri在他们自己的crate和依赖中寻找bug,还有同样多的贡献者在改进Miri,如添加文件系统支持、unwinding和并发支持等。

——Ralf Jung (Miri)

如果必须选择一个我最引以为豪的,那就是非词法生命周期(NLL)。原因不仅是它为Rust的可用性带来了巨大改善,而且它是通过建立了NLL工作组实现的。这个工作组带来了许多优秀的贡献者,许多人至今依然在为编译器工作。开源是最棒的!

——Niko Matsakis (语言)

社区

在过去的五年中,该语言发生了很多变化,同时社区也出现了很多改变。用Rust编写的优秀项目层出不穷,Rust在生产环境中的出镜率也呈指数级增长。我们想分享一些Rust成长的统计数据。

  • 自Rust发布1.0版本后,已连续四年在Stack Overflow开发者调查问卷上被评为“最受欢迎的编程语言”。

  • 仅今年一年,各个版本的编译器、工具和文档的下载流量加起来就超过了2.25PB(1PB = 1000TB)!

  • 同时,crates.io上crates的下载量已有170TB,下载次数18亿,与去年相比月流量比增长了一倍!

Rust 1.0发布的时候,使用Rust的公司屈指可数。如今,数百家科技公司在使用Rust,其中还包括一些世界顶级的大公司,比如苹果、亚马逊、Dropbox、Facebook、Google和微软,他们出于性能、可靠性和生产力的原因选择了Rust。

总结

最后,感谢所有为Rust做出贡献的人,不论你贡献了一个新的功能,还是仅改正了一个拼写错误,你的付出为Rust的发展奠定了基础。我们迫不及待地想看看Rust及其社区的成长和改变,同时对未来十年Rust的发展充满了期待!

原文:/blog_rust-lang_org/2020/05/15/five-years-of-rust.html

本文为 CSDN 翻译,转载请注明来源出处。

【END】

更多精彩推荐
??雷军:4G 手机已清仓,全力转 5G;QQ音乐播放中途插语音广告引热议;Wine 5.9 发布 | 极客头条
???中国 AI 应用元年来了!
?新基建东风下,开发者这样抓住工业互联网风口!
?15 岁黑进系统,发挑衅邮件意外获 Offer,不惑之年捐出全部财产,Twitter CEO 太牛了!
?避坑!使用 Kubernetes 最易犯的 10 个错误
?必读!53个Python经典面试题详解
?赠书 | 1月以来 Tether 增发47亿 USDT,美元都去哪儿了?
你点的每个“在看”,我都认真当成了喜欢
展开阅读全文
??2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 申博网址登入导航登入
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值
澳门美高梅游戏登入 菲律宾申博网址登入 申博在线咨询登入 777老虎机支付宝充值 电子游戏支付宝充值 旧版申博直营网
www.77msc.com 申博游戏苹果手机能玩吗 太阳城在线开户登入 申博在线直营网 www.shenbo2.com www.7788msc.com
申博游戏手机网址 申博代理登入 正规申博开户登入 菲律宾申博网址导航 www.11msc.com www.8888msc.com