热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Rust能够取代C语言吗

Rust是Mozilla基金会的一个雄心勃勃的项目,号称是C语言和C++的继任者,这篇文章主要介绍了Rust能够取代C语言吗的相关知识,需要的朋友可以参考下

Rust 是 Mozilla 基金会的一个雄心勃勃的项目,号称是 C 语言和 C++ 的继任者。一直以来,C/C++ 中的一些基本问题都没能得到解决,比如分段错误、手动内存管理、内存泄漏风险和不可预测的编译器行为。Rust 的诞生就是为了解决这些问题,并提高安全性和性能。

Evrone(一家软件公司)在很多项目中使用了 Rust,我们的工程师们这方面在积累了丰富的经验。在这篇文章中,我们将分享 Rust 的一些主要特性。

主要特性

强静态类型;无垃圾回收以及通过指针手动控制数据存储位置的能力;强大的内置静态代码分析器,有助于避免与内存管理和多线程相关的问题;C 语言风格的语法,具有简短的关键字。

Rust 简史

Graydon Hore 于 2008 年发起 Rust 项目。2009 年,Mozilla 表达了对这个项目的兴趣。一年之后,项目正式公开。2012 年,Rust 的第一个 alpha 版本发布。一年后,Servo Web 引擎(基于 Rust)开发人员宣布,他们得到了三星公司的支持,将引擎移植到 ARM 架构。

Rust 1.0 于 2015 年 5 月发布。同年,Rust 在 Stack Overflow 发布的最受欢迎开发工具排行榜中排名第三。从 2016 年至今,Rust 一直高居榜首。

为什么要使用 Rust优点统一的编译器,提供了一个内置的包生成器和管理器、测试系统和文档生成器;安全的内存管理,有助于避免分段错误;抽象能力,让手动内存管理变得更容易;提供了常见的编译错误修复建议;只能在非安全代码中使用指针——安全代码中只包括指向确切存在的对象的链接;与 Mac 和 Unix 家族系统具有良好的兼容性。不足没有类和继承机制,难以编写面向对象的代码;编译器太过严格,有时候对内存地址的限制过多。

Rust 的使用场景

Rust 支持主要的编程范式:面向对象编程、并发编程、函数式编程和过程编程。它提供了足够的内存管理能力,同时又足够安全,让它成为操作系统和关键应用程序的开发工具。它的主要缺点是硬件厂商对它支持不够,厂商更喜欢使用 C/C++。下面是一些使用 Rust 开发的软件项目:

Redox,一个基于微内核的 Unix 家族操作系统,该操作系统中的大部分软件也是使用 Rust 开发的;Servo,多线程 Web 引擎;Firecracker,用于无服务器环境的微虚拟化系统。使用 Rust 开发的区块链系统

基于分布式账本的系统必须能够以最小的设备计算负载快速地处理请求。C++ 非常适合用来完成这项任务,而使用 Rust 开发区块链系统将会更加高效。下面这些都是值得关注的案例:

Parity.io——以太坊和比特币的一个客户端;Polkadot.network——异构区块链网络;Exonum,一个基于区块链的项目框架;MaidSafe,一个分布式数据处理和存储系统;Solana,一个用于开发 Web 区块链应用程序的平台。

Rust 可以用来开发 Web 项目:Rust 的 SDK 可用于前端和后端开发。例如,使用 Yew(灵感源自 React 和 Angular)开发客户端,使用 Actix-web(一个高性能框架,支持 WebSockets、TLS 和 HTTP/2.0)开发 Web 服务器。

其他工具还包括:rocket、conduit、gotham、pencil。

一些成功的 Rust 项目Dropbox,一种云存储服务;OpenDNS,一种用于创建公共 DNS 服务器的 Web 服务;Coursera,由斯坦福大学 IT 教授创建的教育门户网站;使用 Rust 开发的机器学习项目。

使用 Rust 开发的神经网络似乎非常有前景。因为 Rust 的高性能和底层内存控制能力,Rust API 可以成为神经网络领域非常流行的开发工具。

但目前使用 Rust 开发机器学习应用还处于实验阶段,Rust 生态系统还缺少可用于开发类似 Python 神经网络的库。

Rust 的未来

C++ 已经统治了编程语言领域近 40 年,成为了一个行业标准,并保持这个头衔至今。Rust 正在积极演进,试图解决 C++ 和其他编程语言当中最为致命的缺陷。

在 Evrone,我们使用 Rust 开发了一个大型的连锁餐厅 ERP 系统。其中微服务部分使用 Rust 开发,为用户提供离他们最近的餐厅的数据。

Rust 的另一个应用——也就是我们的持续集成服务 Vexor。在这个服务中,Rust 负责任务的管理和调度以及日志管理,并作为任务隔离执行代理的基础。

英文原文

Why Rust is Meant to Replace C

到此这篇关于Rust 能够取代 C 语言吗的文章就介绍到这了,更多相关Rust C 语言内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 如何使用代理服务器进行网页抓取?
    本文介绍了如何使用代理服务器进行网页抓取,并探讨了数据驱动对竞争优势的重要性。通过网页抓取,企业可以快速获取并分析大量与需求相关的数据,从而制定营销战略。同时,网页抓取还可以帮助电子商务公司在竞争对手的网站上下载数百页的有用数据,提高销售增长和毛利率。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • McAfee预测2018年网络安全趋势
    McAfee预测2018年网络安全趋势 ... [详细]
  • 大厂首发!思源笔记docker
    JVMRedisJVM面试内存模型以及分区,需要详细到每个区放什么?GC的两种判定方法GC的三种收集方法:标记清除、标记整理、复制算法的 ... [详细]
  • C++程序员视角下的Rust语言
    自上世纪80年代初问世以来,C就是一门非常重要的系统级编程语言。到目前为止,仍然在很多注重性能、实时性、偏硬件等领域发挥着重要的作用。C和C一样&#x ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • angular2/4 使用[innerHTML]时样式不生效
    首先默认情况下,innerHTML会被认为是不安全的,因此屏蔽掉了样式。不生效场景我们通过innerHTML引入一段html格式的文本, ... [详细]
author-avatar
曾军78930
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有