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 日报小组 月泉
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
评论区
写评论还没有评论