#yyds干货盘点#为什么要学习rust?

极客开发者 极客开发者     2022-12-03     597

关键词:

1. Rust相关概念与简介

Rust是一种令人兴奋的新兴编程语言,它可以让每个人编写可靠且高效的软件。Rust可以用来替换C/C++,Rust和他们具有相同的性能,但是很多常见的bug在编译时就可以被消灭。Rust是一种通用的编程语言,但是它更善于以下场景:

  • 需要运行时的速度
  • 需要内存安全
  • 更好地利用多核处理器

2. Rust与其他语言的比较

C/C++性能非常好,但类型系统和内存都不太安全。Java/C#拥有GC(内存回收器),能保证内存安全,也有很多优秀特性,但是性能相对C/C++不足。Rust则具有这两类语言的共同优点:

  • 安全
  • 无需GC
  • 易于维护、调试,代码安全高效

3. Rust擅长的领域

  • 高性能的 Web Service
  • WebAssembly
  • 命令行工具
  • 嵌入式设备
  • 系统编程

4. Rust与Firefox

Rust最初是 Mozilla 公司一个研究性项目。Firefox 是 Rust 产品应用的一个重要的例子。Mozzilla一直以来都在使用 Rust 创建一个名为Servo 的实验性浏览器引擎,其中所有内容都是并行执行的。目前 Servo 的部分功能已经被集成到 Firefox 里面了。Firefox原来的量子版就包含了 Servo 的CSS渲染引擎,Rust使得 Firefox 在这方面得到了巨大的性能改进。

5. Rust的用户案例

  • Google: 新操作系统 Fuschia ,其中 Rust 代码量大约占30%

  • Amazon: 基于Linux开发了可以在直接裸机、虚拟机上运行容器的操作系统

  • System76: 使用纯Rust开发了下一代安全操作系统 Redox

  • 蚂蚁金服: 库操作系统 Occlum

  • 斯坦福和密歇根大学: 使用 Rust 开发嵌入式实时操作系统,应用于 Google 的加密产品

  • 微软: 正在使用 Rust 重写 Windows 中的一些低级的系统组件

  • 微软: WinRT/Rust 项目

  • Drobox、Yelp、Coursera、LINE、Cloudflare、Alassian、npm、Ceph、百度、华为、Sentry、Deno...

6. Rust的优点

  • 性能高

  • 安全性高

  • 无所畏惧的并发

8. 总结

Rust是一门面向未来的编程语言,我相信学习Rust可以让自己未来发展之路越走越远。但也要注意的是,Rust 有很多独有的概念,它们和现在大多数主流语言都不同,所以学习 Rust 的时候必须从基础概念一步一步地学。

#yyds干货盘点#spring核心之控制反转(ioc)

Spring核心之控制反转(IOC)如何理解IoCSpringBean是什么IoCContainer管理的是SpringBean,那么SpringBean是什么呢?Spring里面的bean就类似是定义的一个组件,而这个组件的作用就是实现某个功能的,这里所定义的bean就相当于给了你一个更为... 查看详情

#yyds干货盘点#sql聚合查询方法总结

SQL为什么要支持聚合查询呢?这看上去是个幼稚的问题,但我们还是一步步思考一下。数据以行为粒度存储,最简单的SQL语句是select*fromtest,拿到的是整个二维表明细,但仅做到这一点远远不够,出于以下两个目的,需要SQL提供... 查看详情

#yyds干货盘点#前端不同的渲染技术的区别和联系

前端可用的渲染技术有html+css、canvas、svg、webgl,我们会综合运用这些技术来绘制页面。有没有想过这些技术有什么区别和联系,它们和图形学有什么关系呢?本文我们就来谈一下网页渲染技术的计算机理论基础。渲染的理论基... 查看详情

#yyds干货盘点#前端工作的一点思考

为什么选择前端?一个简单的问题,但大部分人却说不清楚,我当初也是误打误撞进入了这个行业,不知不觉就干了快七年。漫无目的的做一件事情是很难做好的,也是痛苦的,尤其是这件事还占据了我们最多的时间,所以我们... 查看详情

#yyds干货盘点#javascript学习系列(11):数组中的findindex方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主csdn博主b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是... 查看详情

#yyds干货盘点#javascript学习系列(15):数组中的lastindexof方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主csdn博主b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是... 查看详情

#yyds干货盘点#自适应布局方案

起步rem是什么​​rem​​(fontsizeoftherootelement)是指相对于根元素​​<html>​​来做计算的字体大小单位。e.g.设置​​htmlfont-size:75px​​时,其他元素​​1rem=75px​​,​​4rem=300px​​vw是什么​​vw​​是基于​​viewport... 查看详情

#yyds干货盘点#什么是javascript中的函数劫持

什么是函数劫持最近业务上看到一段逻辑,找了好久,没发现它是怎么被触发的,后来发现其实使用了函数劫持,大致如下://原始函数varsaveLog=function(log)console.log(`我保存了日志:$log`);//1-保存原有函数varoriginSaveLog=saveLog;//2-改... 查看详情

#yyds干货盘点#组件化漫谈

...供组件化能力。今天我们就来聊聊组件化是什么,以及它为什么这么重要。​其实组件化思想是一种前端技术非常自然的延伸,如果你使用过​​​HTML​​​,相信你一定有 查看详情

#yyds干货盘点#sql子查询

子查询也叫复杂查询,为什么子查询叫做复杂查询呢?因为子查询相当于查询嵌套查询,因为嵌套导致复杂度几乎可以被无限放大(无限嵌套),因此叫复杂查询。下面是一个最简单的子查询例子:SELECTpvFROM(SELECTpvFROMtest)上面的... 查看详情

#yyds干货盘点#前端存储之indexdb

​​localStorage​​​是前端本地存储的一种,其容量一般在​​5M-10M​​左右,用来缓存一些简单的数据基本够用,毕竟定位也不是大数据量的存储。在某些场景下​​localStorage​​的容量就会有点捉襟见肘,其实浏览器是有提... 查看详情

#yyds干货盘点#vue3的reactive

最近一阶段在学习Vue3,Vue3中用 ​​reactive​​、​​ref​​ 等方法将数据转化为响应式数据,在获取时使用 ​​track​​ 往 ​​effect​​ 中收集依赖,在值改变时,使用 ​​trigger​​ 触发依... 查看详情

#yyds干货盘点#linux设置环境变量

我们通过设置Linux的环境变量,可以方便我们的程序调用,比如我想把NodeJs加入环境变量/root/nodejs/bin/永久性更改对所有用户生效加入环境变量vim/etc/profile我们在最后一行加入PATH="$PATH:/root/nodejs/bin/"PATH就是系统的环境变量,而$PAT... 查看详情

#yyds干货盘点#名企真题专题:最大间隔

1.简述:描述给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=maxai+1 -ai (1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?输入描述:第一行,... 查看详情

#yyds干货盘点#vue的防抖

在监听频繁触发的事件时,一定要多加小心,比如用户在输入框打字、窗口大小调整、滚动、IntersectionObserver事件。这些事件总是被频繁触发,可能几秒一次。如果针对每次事件都发起fetch请求(或类似的行为),那显然是不明... 查看详情

#yyds干货盘点#js中回调函数

简单来说:一个被当做参数的函数,就叫做回调函数。在JavaScript中,所有的函数都是对象,所以函数也可以作为参数传递给另一个函数。在MDN的解释中是这样吗说的:被作为一种实参传入另一个函数中,并且在该外部函数内被... 查看详情

#yyds干货盘点#javascript的奇葩问题

作为前端开发工程师,JavaScript是我们的主要开发语言,它本身语法比较简单,并且生态系统也非常完善,在社区的影响力越来越大。在我们使用过程中,经常会遇到各种奇怪的问题,让我们经常摸不着头脑。奇怪的 ​​try..... 查看详情

#yyds干货盘点#虽然代码运行了,但其中的值为什么没有发生变化呀?

大家好,我是皮皮。一、前言前几天在Python白银交流群【王者级混子】问了一个​​Pandas​​处理的问题,这里拿出来给大家分享下。下面是粉丝自己写的代码:二、实现过程看上去是挺难的,又是数据,又是代码的,不过不慌... 查看详情