首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2019-09-13 - C/C++ vs Rust:开发人员的观点

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

作者头像
MikeLoveRust
发布2019-09-17 17:06:51
9090
发布2019-09-17 17:06:51
举报

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 语言学习交流
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C/C++ vs Rust:开发人员的观点(译)
  • async-std v0.99.5 - Rust异步标准库
  • 使用Rust构建Python扩展
  • Rust的WebAssembly简介,来自Rust Melbourne的演讲
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档