首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2018年伊始,系统编程语言Rust为何令程序员感到兴奋?

所以谈谈为什么现在喜欢使用Rust语言,以及几个关于Rust语言明年发展趋势的想法! 我和Rust 我是一个中级Rust程序员(绝对不是高级程序员!)。...在2016年RustConf访谈中,我说: 我花了很多时间,仍对Rust编译器感到沮丧,但是依然喜欢它,因为它让我做一些我可能不会做的事情。 我不再对Rust编译器感到沮丧了。...当谈到编译器时,我试图谨慎地说“更容易”,而不是“简单” —“简单”对Rust来说是有限度的!当然,关于Rust的一些事情(比如编译时线程安全保证!)...公认的RFC 更好的人机工程学模式匹配引用,使引用工作更容易,而不会牺牲任何性能或可靠性!非常酷!匹配人机工程学的特征已经在Rust上试运行。...可以在程序里用.clone()搜索每个地方 ,并对它们进行审计—这个函数是否被调用了很多次?应该担心吗?刚刚查过程序中使用clone()的每一个地方,在程序开始的时候,只调用一次或两次。

4.6K100

我们为什么选 Rust 重写核心服务?

正确性在 Kraken 中绝对至关重要,而 Rust 的现代语言结构让我们更容易编写正确而健壮的代码。...Rust 缺少垃圾收集的特性在编写不需要“关心”内存管理的通用逻辑时往往被认为是一种劣势,但在实践中这并不是问题,因为我们正在构建的是无状态服务,而存储循环数据从来都不是问题。...Rust 的 linter、Clippy 有助于统一代码样式,带来了更符合习惯、更一致的代码库。最近两年来我审查了成千上万的合并请求,Rust 为我带来了比其他主流编程语言都更高的信心。...许多经验丰富的开发人员更愿意留在他们擅长的技术栈中,但是有些人可能还是喜欢尝试摆脱自己的舒适区并挑战自我。 6Rust 很伟大,但不是完美的! Rust 让我们能够构建许多运行良好的高性能生产代码。...线程局部变量的普遍使用加大了调试的困难。 如果能够在特征中设计异步函数而无需装箱,并能引用结果类型,肯定会成为一项重大的性能改进。

59720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我们为什么选 Rust 重写核心服务?

    正确性在 Kraken 中绝对至关重要,而 Rust 的现代语言结构让我们更容易编写正确而健壮的代码。...Rust 缺少垃圾收集的特性在编写不需要“关心”内存管理的通用逻辑时往往被认为是一种劣势,但在实践中这并不是问题,因为我们正在构建的是无状态服务,而存储循环数据从来都不是问题。...Rust 的 linter、Clippy 有助于统一代码样式,带来了更符合习惯、更一致的代码库。最近两年来我审查了成千上万的合并请求,Rust 为我带来了比其他主流编程语言都更高的信心。...许多经验丰富的开发人员更愿意留在他们擅长的技术栈中,但是有些人可能还是喜欢尝试摆脱自己的舒适区并挑战自我。 6Rust 很伟大,但不是完美的! Rust 让我们能够构建许多运行良好的高性能生产代码。...线程局部变量的普遍使用加大了调试的困难。 如果能够在特征中设计异步函数而无需装箱,并能引用结果类型,肯定会成为一项重大的性能改进。

    78220

    AI助力,程序员压力倍增?

    讲动人的故事,写懂人的代码 你知道程序员现在在AI辅助编程时最头疼的事情是什么吗?就是怎么在改代码的时候保住小命。大家都听过程序员因为工作太累导致过劳湿的事情。...但是背这个黑锅的,肯定是人类程序员,而不是AI。所以,程序员得在短时间内评审和验证AI的代码质量。时间一缩短,程序员的压力就会大增。而且系统越来越复杂,代码越来越多,不受控的因素也越来越多。...有人可能会问,那AI不能帮你在代码里做到这些吗?如果你自己都不清楚怎么让代码更易懂、更易改、性能更好、更安全的话,那你自然也不会在提示词里写明,那样的话,AI确实帮不上忙哦。如何让自己的代码更易理解?...Rust的内存管理机制能够在编译时就预防一系列常见的内存错误,如空指针解引用、数据竞争等,使得在Rust中编写的代码具有很高的安全性。这使得程序员可以在不牺牲性能的前提下,编写出更加安全的代码。...如果喜欢我的观点,期待你的点赞、在看和转发。如果你不喜欢,留个言告诉我哪里不喜欢~

    26043

    exa:一个 ls 命令的现代替代品 | Linux 中国

    在 Linux 系统上安装 exa exa 最近很流行,因为许多发行版开始将其包括在其官方软件库中。也就是说,你应该可以使用你的 [发行版的包管理器] 来安装它。...例如,虽然 -l 选项在 exa 和 ls 中都给出了长列表,但 -h 选项添加了一个列标题,而不是 ls 的人类可读选项。...请注意 test_file 在 git 的 tracked 列中显示 -N ,因为它尚未添加到存储库中。 exa --git -lh image.png 下面的例子不是我的猫键入的。...值得从 ls 切换到 exa 吗? 对于类 UNIX 操作系统的新手来说,exa 可能是用户友好的,它牺牲了在脚本中容易使用的能力,以换取“易用性”和外观。其中,显示得更清楚并不是一件坏事。...对于类 UNIX 操作系统的新手来说,exa 可能是用户友好的,它牺牲了在脚本中容易使用的能力,以换取“易用性”和外观。其中,显示得更清楚并不是一件坏事。 无论如何,ls 就像通用命令。

    1.2K30

    Reddit 观察:你何时会考虑使用 Cpp 而非 Rust ?

    所以,他在 Reddit Rust 和 Cpp 频道都发了同一个帖子,想了解大家何时会选择使用 Cpp 而不是 Rust ?...即使 Rust 没有大热,我仍然可以依靠我在短时间内学到的其他语言。 pr06lefs: 我曾经是一名 Cpp 开发者,有15年的经验。我现在仍然在做一些 Cpp 的工作,但是我更喜欢 Rust。...Cargo是一个很重要的原因,其他函数式语言的便利也是,比如 match(而不是switch),没有异常,以及一切都是表达式而不是语句。另外一个问题是 Cpp 中错误信息的质量很差。...别误会,我并不是要冒犯 Cpp,它是一门了不起的语言,如果没有 Rust,我可能会更经常地使用它。但是与 Rust 提供的功能相比,如今它的特性相当可怜。...自1996年以来,我一直将C++作为我的主要编程语言。我可能已经写了超过一百万行的C++代码。我仍然比我使用过的任何其他编程语言更喜欢C++。我的观点是,标准中的变化/创新是一把双刃剑。

    34610

    为什么 Rust 是初创公司的绝佳选择?

    Rust 让我们能够快速而又充满信心地完成公司的任务目标。 在开始这个项目的时候,我们只有三个人。我是团队中唯一的工程师,所以我可以完全自由地选择语言和工具。...除了在机器学习方面明显可以使用 Python 之外,其他一切都是开放的。我们是否应该选择 Java,因为它令人厌倦?我们应该因为其优秀的社区而选择 Python 吗?...当程序小而独立的时候,没什么问题,但当我开始创建和使用库,并向周围不透明的结构传递指针时,就变得混乱了。Rust 让我明白,我并不是我以为的那个程序员。...通常,人们会这样反驳我:“工程师的时间比电脑的时间更昂贵”,是这样的。但与使用其他语言相比,你并不需要付出更多的工程师时间,而当你实际运行程序时,开销却更低。 很快就能收回成本。...你的初创公司应该使用 Rust 吗? 我不是创业顾问。 我在本文开头写道,为初创公司选择一种语言可能会令人生畏,尤其是当你认为最适合的语言有点小众而且比较年轻的时候。

    38720

    Rust 欧洲之声|真实世界中的 Rust

    我最喜欢的一篇关于编程语言的论文之一是讲「在商业层面,没有人会为实现一些功能而去改变编程语言」,这是一个残酷的现实,但是这种需求是存在的。...我们只需要选择一个靠谱的工具,而不需要不断地想要更换工具,可以专注在更有趣的事情上。...我很确定,我们除了一些非常小的组件之外,现在所有调试处理实际上都是基于 Rust 来处理的,而之前这部分工作是用 Cpp 实现的。...并且,在 Meta 中处理网络并发和async等在 Cpp 中是一项艰巨的工作。所以他们考虑选择 Rust ,并开始引入 Rust ,结果非常好。...Chris: 如果你不喜欢 Rust ,那么你真的可以尝试一下 Rust ,然后确认下自己是不是真的不喜欢。Rust 虽然有学习曲线,但它真的值的你学习一下。

    69210

    为什么我十分喜欢C,却很不喜欢C++?

    ,也不是我的最后一门语言,但是我仍然非常喜欢 C,当需要写程序时,我的第一选择还是 C。...同时,我也会关注现代编程语言及其发展趋势,而且我还使用 Rust 编写了自己的业务爱好项目。那么,为什么我没有抛弃 C 而选择其他语言呢?我对于 C++的看法又是如何的呢? ?...在大多数情况下,你都可以预见到编译的结果,即对象在内存中的表示方式,以及如何通过不同的方式理解编译后的结果(新版 C 标准中这一点变得更困难,这都要怪 C++,我稍后再详细介绍)。...另一方面,C++ 有两个特征,我非常不喜欢。 首先是这门语言的整体性质。其他编程语言拥有的流行功能最终都会进入 C++。因此,每过几年,C++标准就会添加一些新功能。...但是,C++ 24 能够在 C++ 21 的基础之上,发展成为一门独立的编程语言吗?大多数过时的功能都可以抛弃吗?我对此表示怀疑。

    78610

    C语言不是最好的,却是我最爱的~

    正文 以下为译文: 虽然 C 语言并不是我所学的第一门语言,也不是我的最后一门语言,但是我仍然非常喜欢 C,当需要写程序时,我的第一选择还是 C。...同时,我也会关注现代编程语言及其发展趋势,而且我还使用 Rust 编写了自己的业务爱好项目。那么,为什么我没有抛弃 C 而选择其他语言呢?我对于 C++的看法又是如何的呢?...在大多数情况下,你都可以预见到编译的结果,即对象在内存中的表示方式,以及如何通过不同的方式理解编译后的结果(新版 C 标准中这一点变得更困难,这都要怪 C++,我稍后再详细介绍)。...另一方面,C++ 有两个特征,我非常不喜欢。 首先是这门语言的整体性质。其他编程语言拥有的流行功能最终都会进入 C++。因此,每过几年,C++标准就会添加一些新功能。...但是,C++ 24 能够在 C++ 21 的基础之上,发展成为一门独立的编程语言吗?大多数过时的功能都可以抛弃吗?我对此表示怀疑。

    17510

    14 款命令行常用工具的替代品!

    大家好,我是杰哥。 在 Linux 操作系统下,ls (list) 可以说是我们日常使用率较高的命令了,它主要用来显示目标列表,输出信息可以进行彩色加亮显示,以分区不同类型的文件。...mcfly 的特征: 绑定ctrl+r以启动全屏反向历史搜索 基于 Rust 编写,快速、安全 搜索时键入%以匹配任意数量的字符 维护正常 Shell 历史文件,以便可随时停止使用 McFly 支持从...,并能够提供格式化和彩色输出。...curlie 与 httpie 的区别: curlie 像 curl,但不像 httpie,文件头是写在 stderr,而不是写在 stdout; 输出没缓冲,所有格式化均动态完成,可轻松调试流数据;...example.net # 查看 MX 记录 dog example.net MX # 使用特定的命名服务器 dog example.net MX @IP地址 x.x.x.x # 使用 TCP 而不是

    2.2K10

    我的 7 大 Rust 关键字

    我使用 Rust 已经有几个月了,写的东西比我预期的要多——尽管随着我的学习,我改进了所写的代码,并完成了一些超出我最初意图的更复杂的任务,相当多的东西已经被扔掉了。...我仍然喜欢它,并认为谈论一些在 Rust 中反复出现的重要关键字可能会有好处。...虽然这不是造火箭,但请一定要用 const ,如果你要在不同的模块中使用常量,那请创建一个 lib.rs 文件(Rust 默认的),你可以把所有的常量放在一个命名良好的模块中。...return – 实际上我很少使用 return,它用于从函数中返回一个值,但是如果你只是在函数的最后一行提供值(或提供返回值的函数),通常会变得更简单,能更清晰地阅读。...我知道,这不是我写过的最复杂的文章,但这是我在开始学习 Rust 时会欣赏的那种文章。我计划在关键函数和其他 Rust 必知知识方面编写类似的文章:如果你有任何要求,请告诉我!

    57720

    听GPT 讲Rust源代码--librarycoresrc(3)

    EscapeDefault 结构体是类似于 EscapeUnicode 的迭代器,但它使用了默认的转义方式,而不是Unicode转义序列。...而 EscapeDebugInner 是一个枚举类型,用于定义调试格式的转义方式。 CaseMappingIter 是一个枚举类型,用于标识字符在进行大小写转换时所使用的索引和转换方式。...Drain 通过迭代器的方式提供对数组元素的访问,同时允许在迭代过程中修改数组。 在迭代器开始迭代时,Drain 会获取一个范围,表示应该移除哪些元素。...DebugInner:该结构体用于格式化输出一个包裹在 () 中的值的调试信息。 DebugSet:该结构体用于格式化输出一个集合的调试信息。...SignAwareZeroPad:对于正数,将前面用0填充而不是空格。

    21330

    三年全职 Rust 游戏开发,真要放弃 Rust 吗?

    很多时候人们使用 ECS 是因为它解决了“我应该把我的对象放在哪里”的特定问题,而不是真正使用它进行组合,也不真正需要它的性能。...我们可以选择自己喜欢用的,但没有去强迫别人也去用自己喜欢的,就没什么问题。我们选择自己喜欢用的库和框架,不是原罪吧? Bevy 作为一个开源商业项目,构建自己的社区,培养自己的生态,营销有毛病吗?...“如果您真的不关心安全性(尤其是如果您已经到了更喜欢使用允许多个可变借用的“不安全”语言的程度),在 Bevy 中您总是可以使用 get_unchecked 逃生通道。...我是 ECS 的坚定支持者,但承认在 Rust 游戏开发社区中的交流并不多。 我个人的理念是组件应该非常细粒度地拆分,但系统不应该。...“我不得不说我同意。我希望我不同意,因为我真的很喜欢用 Rust 编程,但是(独立)游戏开发主要不是编程,而 Rust 真的妨碍了这项工作。 “这归结为系统编程和游戏编程之间的差异。

    3.2K20

    谷歌软件工程师:我为什么喜欢用Go语言?

    在其他社区中被视为停滞或忽视的事物,在Go这里反而是复兴的标志。 在Go中,我需要的依赖项更少,而依赖项本身的依赖项也更少。Go没有将更多的逻辑导出到外部依赖项习惯。Go社区中也更容易接受代码重复。...Rust尚未达到Go所具有的稳定性,这可能是因为Rust还不是一种成熟的语言,但也正朝着逐步成熟方向发展。Python 3本身是向前兼容的,我希望Python核心开发人员能从中学到一些教训。...格式化,格式化,格式化,重要的事情说三遍 最后必须说到gofmt。在格式化方面,我有点挑剔。我并不特别在乎应用哪些规则,但是我非常在乎一致性。...Go的内部格式化工具gofmt被社区广泛采用,并提供了足够的一致性,使Go的代码“看起来”很用的惯,而不会看代码看得要抓狂。 就我个人而言,我发现使用gofmt可以轻松阅读开源Go代码。...我可能以后会在Rust流行起来之后,去用Rust赶一波时髦,因为我确实喜欢一些类似于函数式的编程。 但是现在,我非常愿意继续使用Go语言。

    83720

    编程不适合12小时工作制,“我有灵感才工作” | 专访《Java编程思想》作者Bruce Eckel

    我们做过很多测试,比如异常处理,这种方法在小型或者低级线程程序中效果不错。但如果系统变得更大、更复杂的时候,问题就会出现,因为这些设计在中大型项目中基本起不了作用。...以版本控制为例,要想彻底消除跟版本控制相关的问题,那就得在语言设计中体现,这样程序员才能用不着自己亲自费心。总之,程序员那边的麻烦够多了,语言设计者应该帮他们减轻负担、而不是增加负担。...这才是最应该关注的趋势。 InfoQ:在美国您见过的优秀的开发者一般具备什么样的特征,水平一般的开发者又有哪些相应的特征? Bruce:就是好奇心和毅力。没错,就这些了。...而且最终大家应该会进入一家符合自己脾气秉性的企业。先有了兴趣,之后我们才成了 Java 程序员,应该是这样才对。而不是说之所以学 Java,是因为将来学会了更能赚钱。...他们又得鼓捣线程,调试那些在编程黄金时代中从来没出现过的调用。 所以在我看来,编程的黄金时代可能永远是在十年之后,至少我自己完全预见不到。我只能看到自己目前手头的工作,我能把握的也只有当下的具体事物。

    63710

    Rust 官方周报 384 期

    如果您想提出意见或建议,请在推特联系我们账号 @ThisWeekInRust,或者在 github 向我们发送 PR。想参与吗?我们期待您的贡献。 Rust 社区更新 本周无咨询。...观测/思考 使用 Rust 疯狂提升 Python 性能,产品性能提升 500%。 Rust web 框架现状,如下图为 Rocket 框架调试工具 LogRocket 界面。...Rust 中的网格,第二部分:常量泛型 Rust 中,符合人类工程学的错误处理,即处理方式舒适,不生硬。...:trust-dns-resolver [视频] 更安全的 Rust:和 Creusot 一起检查程序 其它 在 Linux 内核中,Linus Torvalds 对 Rust 语言进行评估 所有权的概念图...Atlanta 本周引语 尽管存在所有负面影响,但我必须说:我确实非常喜欢 Rust 所采用的基于民意调查的方法。

    51520

    只为兴趣,2024年你该学什么编程?

    那你得试试 Rust 啦!这个语言超级酷,它的设计就是为了让我们写出更安全的代码,避免掉 C++ 中那些让人头疼的内存管理问题。...你知道吗,最近谷歌都开始用 Rust 重写他们原来用 C++ 写的系统了,这可是大大的印证了 Rust 在系统编程领域的重要性呢。...虽然说,C++ 在理解底层编程和性能优化这些方面确实很关键,但是因为它对内存安全的保证不够、比较复杂、对新手不够友好,所以我们建议你只把它当作了解和扩宽视野的工具,而不是深入学习的首选语言哦。...下面是 Rust 官网推荐的 Rust 书的链接,你可以看看。f-08: Rust权威指南记住,学习编程语言的过程应该是有趣和充满挑战的。选择对你来说最有吸引力的路径,享受编程带来的乐趣吧!...如果喜欢我的观点,期待你的点赞、在看和转发。如果你不喜欢,留个言告诉我哪里不喜欢~

    42853

    雄心勃勃的计划:沃尔沃正在将 Rust 用于其车载软件

    你知道,我对开始在那里工作感到兴奋,但结果,我还是要调试和之前一样的内存模糊问题。 我突然有个想法,这是最好的结果了吗? 我的职业生涯就这样了吗? 我下半辈子都要做这个吗?...因为 Rust 自带一个内置的工具链,负责构建、获取和解析依赖项,所以添加新的依赖项也变得更容易、更安全。 你不再需要检查: 构建了吗? 失败是构建系统导致的吗?...你不必再为了构建和链接而修改构建系统。如果我不用再考虑下面这些问题,你在使用第三方组件时会感觉轻松很多: 第三方库对于内存和所有权所做的假设和我一样吗? 谁将负责释放这块内存?...例如 Miri,从根本上讲,它是编译期间在虚拟机中运行代码,从而找出代码库中任何不健全之处。 JF:大学里不是也有人做了一个这样的工具吗?...替换已经开发完成并经过测试的代码没有意义,但是,只要可行,从头开发的代码肯定应该用 Rust 开发。这并不是说 Rust 是万能的。

    59820
    领券