专栏首页Rust语言学习交流【Rust日报】2019-09-13 - C/C++ vs Rust:开发人员的观点

【Rust日报】2019-09-13 - C/C++ vs Rust:开发人员的观点

C/C++ vs Rust:开发人员的观点(译)

在这篇文章中,将从开发人员的角度看到Rust和C / C ++之间的区别

最初由Maourice Gonzalez在https://www.onmsft.com上发布

C++是一种非常快速和高效的编程语言。它的多功能性无任何限制,其成熟度确保支持和可靠性是首屈一指的。用C ++开发的代码也非常便携,所有主流操作系统都支持它。许多开发人员开始使用该语言进行Coding,这并非巧合。面向对象意味着它在,类,继承,抽象,封装和多态等概念方面做得非常好,它的概念和语法都能在现代语言中找到,如C#,Java和Rust。它提供了一个很好的基础,可以提供更高速度,更易于使用和更现代的替代方案。

现在它并不都是美好的, C++有一个非常陡峭的学习曲线,需要开发人员将最佳实践应用到程序中,否则最终会导致不安全或性能不佳的代码,标准库的体积很小,虽然大多数时候被认为是一个好处同时也增加了难度。这意味着成功使用C++创建有用的复杂库和应用程序可能具有挑战性。在内存管理方面几乎没有提供什么帮助,开发人员必须自己做。由于缺乏经验会导致内存安全问题和其他棘手的情况,新手程序员最终可能会遇到调试噩梦。最后一点引导许多公司探索快速,安全且同样强大的C++替代品,对今天的微软来说,那个东西就是rust

修复了大多数漏洞且分配了CVE [常见漏洞和暴露]的漏洞是由开发人员无意导致内存安全问题,系C和C++中的代码所引起的 - Gavin Thomas,Microsoft安全响应中心

Rust在2006年的某个时候由一位名叫Graydon Hoare的Mozilla员工开始作为个人项目。这个雄心勃勃的项目已经在发布前开发了近十年,终于在2015年5月推出了1.0版本。在眨眼之间之间在Stack Overflow开发者调查中,自2016年以来被选为四年来最受欢迎的语言,已经偷走了大批开发者的心。

努力工作肯定得到了回报。最终结果是非常有效的语言,其特征在于面向对象。事实上,它被设计为在语法上类似于C++,这使得它很容易接近。但与前面提到的不同,它还被设计为内存安全,同时还采用了一种新型的内存管理形式,而没有明确使用垃圾收集。

丑陋的事实是软件开发是一个试错法(哈哈哈,玄学问题请重启)。Rust已经超越了帮助我们调试我们的代码。编译器可生成非常直观且用户友好的错误消息,并可直接链接到相关文档以帮助进行故障排除。这意味着如果问题不明显,大多数时候答案是点击一下。我发现自己很少需要启动浏览器来寻找Rust编译器在解释和文档方面提供的解决方案之外的解决方案。

Rust没有垃圾收集器,但大多数时候仍为您分配和释放内存。它也被设计为内存安全,与C++不同,C++很容易让您在悬挂指针和数据竞争时遇到麻烦。相比之下,Rust采用了可以帮助您预防和避免此类问题的概念。

还有许多其他因素使我从C++转向Rust。但说实话,它与我们刚刚探索过的所有伟大的东西毫无关系。我从WebAssembly开始的旅程中来到了Rust。从我开始寻找一种更有效的网络JavaScript替代方案开始变成了确定Rust的强大功能。从它的无缝互操作......

在Rust,WebAssembly和JavaScript API之间自动生成绑定代码。利用像web-sys这样的库,为整个Web平台提供预打包的绑定。- rust website

它的性能有多快和可预测。我们生活中的一切都在发展。我们的智能手机,汽车,家用电器,自己的身体。C ++虽然仍然非常强大,快速和多功能只能带我们到目前为止。在探索替代方案方面没有任何害处,特别是那些与Rust相比具有特殊性和承诺的替代方案。

Read More: https://morioh.com/p/95c294659991

async-std v0.99.5 - Rust异步标准库

async-std外观和感觉像是Rust标准库,一切如你所期待使用async/await的工作方式一样。该版本主要更新内容如下:

  • 增加了io::timeout的测试
  • 增加了fs::create_dir_all
  • 增加了io::prelude
  • 增加了stream::Stream::all
  • 增加了stream::Stream::filter_map
  • 增加了stream::Stream::find_map
  • .....

Repo:https://github.com/async-rs/async-std

使用Rust构建Python扩展

本演讲将集中讨论pyo3和milksnake,这两个流行的库提供了非常不同的编写Rust扩展的方法; 它将涵盖对图书馆的基本介绍,并比较它们的相对优势和劣势。

Read More: https://morioh.com/p/14b736e8b8de

Rust的WebAssembly简介,来自Rust Melbourne的演讲

在2019-08-14的Rust Melbourne,David Cristofaro给了我们一个关于WebAssembly的介绍

Read More: https://www.youtube.com/watch?v=WONGc1zUxtc


From 日报小组 月泉

日报订阅地址:

独立日报订阅地址:

  • Telgram Channel
  • 阿里云语雀订阅
  • Steemit
  • GitHub

社区学习交流平台订阅:

  • Rust.cc 论坛: 支持 rss
  • Rust Force: 支持 rss
  • 微信公众号:Rust 语言学习交流

本文分享自微信公众号 - Rust语言学习交流(rust-china),作者:yuequan1997

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Rust 语言新人入门指南

    首先,学习 Rust 不能急躁。如果你抱着之前 1 天上手 Python, 2 天入门 Go 的经验和优越感来学习 Rust 的话,你可能会遭遇严重的失败感。如...

    MikeLoveRust
  • Rust 又成为 SO 的开发者最爱语言

    本次调查 Rust 得分是 83.5%,力压第二名 Python 73.1% 10 个百分点。

    MikeLoveRust
  • 【Rust日报】 2019-07-31:Debian Buster 将会预装Rust编译器

    两个指针a和b有可能互为别名(俩指针指向同一数据),所以clang在编译该代码的时候,会在寄存器中存储两次(%rsi),%eax来防止这种情况。当然也可以使用r...

    MikeLoveRust
  • 我用 Rust 重写了博客,谈谈我眼中的 Rust.

    我已经学习 Rust 有挺长的一段时间了,一直想用 Rust 来写点东西,但是缺乏好的想法; 有些想法自我感觉良好,但是又没有能力实现 (比如,写一个操作系统?...

    春哥大魔王
  • Rust 编译模型之殇

    本文转载自 PingCap 公众号。原文地址:https://mp.weixin.qq.com/s/j8qsUpphshwGh9TaaWpNTA

    MikeLoveRust
  • 【深度知识】Rust语言入门、关键技术与实战经验

    编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由唐刘在高可用架构群分享。转载请注明来自高可用架构公众号「 ArchNotes 」。

    辉哥
  • Rust 语言新人入门指南

    首先,学习 Rust 不能急躁。如果你抱着之前 1 天上手 Python, 2 天入门 Go 的经验和优越感来学习 Rust 的话,你可能会遭遇严重的失败感。如...

    MikeLoveRust
  • 【Rust日报】 2019-07-31:Debian Buster 将会预装Rust编译器

    两个指针a和b有可能互为别名(俩指针指向同一数据),所以clang在编译该代码的时候,会在寄存器中存储两次(%rsi),%eax来防止这种情况。当然也可以使用r...

    MikeLoveRust
  • Rust 又成为 SO 的开发者最爱语言

    本次调查 Rust 得分是 83.5%,力压第二名 Python 73.1% 10 个百分点。

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

    自2013年年底以来,作者本人时断时续地会用Rust语言编程。4周前,再次用到Rust,语言比上次使用时更加容易(2016年5月)。这真的很令人兴奋!所以谈谈为...

    CSDN技术头条

扫码关注云+社区

领取腾讯云代金券