知乎高赞:听说Rust要取代C++?

news2024/11/24 20:42:06

 

随着近几年Rust的大火,越来越多的人开始质疑,Rust势头这么猛,是不是要取代C++?小慕认为,一门编程语言想要完全取代另一门编程语言是很难的,毕竟每一门技术都有它的专属优势和特点,总会在特别的地方发光发热。不过随着Rust的势头越来越强,希望Rust取代C++呼声也越来越高,莫非Rust真能取代C++? 到底能不能取代,我们还是先来了解一下Rust和C++这两种编程语言吧。 

01 C++ VS Rust 谁胜谁败?

1、C++,是在C语言的基础之上开发的一种高级通用语言,它的应用广泛,支持多种编程范式。至今为止也是广大程序员最喜欢最受用的出色编程语言之一。

2、Rust是一种专注于安全,性能的泛型等编程范式的多范式语言,更系统更具有创新性,致力于解决高并发和高安全性系统等问题。

3、从两种编程的语言定义上你就能看出他们的优缺点:

1、C++具有很多软件开发框架支持,而Rust没有。

2、Rust具有强大的内存安全性。

3、由于Rust有cargo 的存在, 所以相较于C++项目和依赖管理更加简单。一些程序员非常沉迷于Rust的使用,主要是因为Rust的性能和标准的C++的性能真的是不相上下,结合来看,Rust相较于C++略胜一筹。

Rust 语言相对较新,受欢迎程度稳步增长,但市场占有量却不是很大,这也就导致了Rust技术人员的薪酬一路水涨船高,甚至在2021年还荣登过O’Reilly 薪酬榜榜首。而 C++在薪资方面对比Rust,很明显要逊色一些了,并且最近几年新增岗位也有缓慢减少的趋势。之前有人说Rust无法超越C++,虽然薪资很高,但却没有被广泛应用,自然岗位也颇为稀缺。但就在近几年,Rust一鼓作气拿下了区块链行业,成为了区块链领域的主导语言,仅国内市场,Rust的应用范围就已经扩大了好几倍。不仅如此,Rust 马上要进入 linux main stream 了,这足以证明,Rust 已经被世界最优秀的程序员 linus 和项目 linux 认可了。越来越多的企业开始对Rust产生兴趣,越来越多的编码人才正在加入到学习Rust语言的行列中来,学习Rust语言已成为趋势,Rust未来的发展不可估量。

02 Rust到底能不能取代C++?

那我们再回到最开始的问题:Rust到底能不能取代C++? 小慕认为,这种可能性还是蛮大的。

Rust应用优势

现阶段的 Rust 在向上走, C++ 却在向下走,但C++毕竟是老牌编程语言,底蕴在那呢,Rust作为新语言,未来或许只能取代C++某个应用场景的一部分,但要想真正取代,势必要有非常漫长的一段路要走。

03 Rust那么火,我要不要学? 

学啊,学会Rust,保命抗内卷啊。小慕认为,现在学Rust,时间真的刚刚好。Rust入门难度大,对程序员的基本素质和能力要求极高,所以初期入坑的程序员学成后本身就很“贵”,薪酬起点高是肯定的;Rust虽然现在看起来很小众,岗位少,但也是供不应求的状态;从互联网目前的发展趋势来看,区块链领域发力势头很好,国内很多区块链公司招人基本要求一定是要熟练掌握Rust;2022 年传统互联网大厂腾讯、阿里、字节、B 站、抖音等都在裁员,互联网时代已经过去了,所有增量都已经枯萎,但是相反,区块链很有可能引领下一次工业革命,投资 Rust 就是投资未来。

在大学还在学习C++ 的今天,尽早学习并使用Rust真的非常有必要,有价值。

04 Rust不好学,如何快速入门?

Rust难不难学?肯定难啊。Rust是一门很有前途的明星语言,但同时又以高难度、高门槛而著称,劝退了不少自学者和有需求的开发人员。入门难、不友好、学习曲线又相对陡峭,难道我就真的学不会吗?慕课网精英讲师叶枭说:要想快速入门Rust也不难!先打好基础,再去入门,更简单。从Rust语言基础出发,关注Rust语言本身特点,使用最简程序,排除使用场景少、概念理解困难的分支内容干扰,就能很快的在最短时间内上手Rust开发,领略Rust编程之美。

Rust是一门非常优秀的语言,它不仅能弥补很多开发语言的不足,还可以帮助开发者交付高质量的软件产品。希望大家都能熟练掌握Rust这门编程语言。加油啊!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux 不依赖xcode成功运行appium+ios自动化

一、原理 **1、【常规】**常规情况下,ios自动化需要mac机器,如果强行使用linux运行,过程会提示Xcodebuild Failure,也就是强依赖Xcode。 失败图如下: **2、【思路】**那有没有什么方法可以绕过xcode的限制呢&#xf…

创建SpringBoot项目的几种方式

使用 spring boot 提供的初始化器。 向导的方式,完成 spring boot 项目的创建: 使用 方便.(需要联网)就是下图这个,在pom.xml里 选择依赖,选择些单体SpringBoot需要用到的一些 Spring Web包含SpringMVC Tomcat SQL 基本的JDBC MysqlDriver Mybatis 第…

发电控制系统面临的主要安全威胁

电力行业 工控安全解决思路保障框架从电力行业对工控安全需求看,电力企业在主要是以合规性建设为主,在 2004 年原电监会 5 号令颁布开始,大部 分的电厂控制系统安全 建设已经按照 5 号令的要求进行了整改,形成“安全分区、网络专…

再手写线程池以及性能分析

文章目录前言一、为什么要用线程池线程池的作用线程池的使用场景二、线程池的构成以及相关API的实现线程池中的相关变量类型线程池的创建任务线程实现获取任务线程池的销毁线程池的使用前言 以前写的线程池文章请参考:线程池的简单实现 本次文章是对线程池的再次学…

使用Egg调用mysql实现增删改查接口操作

市场上数据库可视化工具很多,笔者更多时间使用的是 Navicat ,但是因为它是收费的,一些伙伴可能没发使用,所以笔者在这里推荐一款 工具 名为: DBevaer,它所展现出来的能力,与navicat 类似,并且还…

玩RTOS这么久,一问原子操作,蒙了~

已剪辑自: https://mp.weixin.qq.com/s/kvxcOHT-xHtMAjQqJu7Y2g [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C3f9Rrei-1668695258073)(https://res.wx.qq.com/mmbizappmsg/zh_CN/htmledition/js/images/icon/audio/icon_qqmusic_source6201b5.sv…

代码随想录——钥匙和房间(图论)

题目 有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上,对于每个房间 i 都有一个钥匙列表 rooms[…

tft lcd spi 驱动

tft lcd spi 驱动参考驱动uc1701SPI设备树配置背光控制IO设备树配置SPI控制引脚配置参考驱动uc1701 linux-4.1.15-imx6ul/drivers/staging/fbtftSPI设备树配置 根据原理图修改对应引脚 linux-3.10/arch/arm/boot/dts/sun8iw11p1-pinctrl.dtsi 蔽掉引脚冲突功能 linux-3.10/ar…

如何注册公司网站?【注册公司网站】

公司网站是很多公司的必备品,哪怕公司并不依赖线上业务,也会有自己的公司网站。随着互联网的发展成熟,其实现在注册公司网站基本上都是比较简单的,那么如何注册公司网站呢?下面给大家说一说。 一、注册公司网站前准备…

英伟达发布526.98 WHQL 显卡驱动,支持RTX 4080,三款即将上线游戏

11月16日,英伟达发布了526.98 WHQL 新驱动,支持最新发布的RTX 4080显卡。 新驱动为《蜘蛛侠:迈尔斯莫拉莱斯》、《战锤40k:暗潮》和《魔兽世界:巨龙时代》提供支持。此外,还支持《怪物猎人崛起》的DLAA更新和WRC世代-国际汽联WRC…

【FFmpeg】ffmpeg+nginx-rtmp实现视频流转发

1.应用场景 目前的摄像头厂家能提供出来的视频流格式有限,且chrome已经禁止了对flash的支持,导致像硬盘录像机这种只能提供rtsp格式流地址的摄像头无法接入Web应用,所以不得不对视频的流地址进行分发,通过代码对流地址中的数据进…

数仓开发之DWD层(三)

(附:由于篇幅原因,这里就不在展示代码了,直接告诉大家思路) 目录 五:交易域订单预处理表 5.1 主要任务 5.2 思路分析 5.3 图解 六:交易域下单事务事实表 6.1 主要任务: 6.2 …

泰克AFG31152函数信号发生器Tektronix AFG31152介绍

泰克AFG31152函数信号发生器Tektronix AFG31152 AFG31152 是 Tektronix 的 50 MHz 任意函数发生器。 特征: 的 InstaView™ 技术使工程师能够实时查看被测设备 (DUT) 的实际波形,而无需示波器和探头,从而消除了由阻抗不匹配引起的不确定性…

linux C.UTF-8和en-US.UTF-8语言环境有什么区别?(中文乱码问题)locale命令 centos、ubuntu修改编码集(没搞定!)

文章目录问题背景查看C.UTF-8和en-US.UTF-8语言环境差异关于locale修改编码集centos(没验证)ubuntu问题背景 我在ubuntu16.04虚拟机和英伟达盒子ubuntu18.04上分别部署了ngrest服务 用postman请求,ubuntu16.04虚拟机返回的中文是乱码&#…

软件测试职场焦虑之我对35岁危机的看法

目录 前言 如何理解35岁失业? 本质的原因是什么? 应对35岁失业的策略 总结 前言 这几年关于“35岁失业”的讨论甚嚣尘上,特别是进入疫情时代,身边也越来越多的人开始讨论这个话题。 一方面是疫情带来的巨大变革,…

SpringCloud——微服务介绍+系统架构

目录 1. 微服务介绍 2.系统架构演变 3. 单体应用架构 3.1优点: * 项目架构简单,小型项目的话, 开发成本低* 项目部署在一个节点上, 维护方便 3.2缺点: * 全部功能集成在一个工程中,对于大型项目来讲…

Data Catalog3.0:Modern Metadata for the Modern Data Stack

从2020年开始,在数据领域中,有一个比较流行的术语:The Modern Data Stack(现代数据堆栈),简单理解就是汇集了处理海量数据的最佳工具集。这包括在最好的工具上建立数据基础设施,如用于数据仓库的Snowflake,…

传奇外网架设常见的问题及解决办法-传奇创建人物失败/不开门/PAK显示密码错误/脚本错误

传奇外网架设常见的问题及解决办法-传奇创建人物失败/不开门/PAK显示密码错误/脚本错误 在架设传奇的时候是否有遇到无法创建人物、pak密码错误等一系列情况呢?咱们都知道是架设不对的问题,但是具体是哪部分的问题,很多同学都不清楚&#xff…

JDK与cglib动态代理

JDK动态代理 接口类 public interface Subject {void doSomething(); }接口实现 public class RealSubject implements Subject {Overridepublic void doSomething() {System.out.println("RealSubject do something");} }InvocationHandler类 package daili;imp…

随笔记:计算机基础及进制计数法

随笔记:计算机基础及进制计数法 记录一下最近接触的基本的概念,便于想看的时候随时来翻看一下。 基础理论还是比较重要滴,基础理论还是比较重要滴,基础理论还是比较重要滴 现代计算机是用 0 和 1 来表示信息的,使用的…