为什么新流行的开源编辑器都在用Rust开发?
作者:卡卷网发布时间:2025-01-11 16:38浏览数量:118次评论数量:0次
我大概能懂这种感觉...
我因为工作原因着用了大半年rust,我寻思我是不是斯德哥尔摩综合征呢,怎么现在自己没事捣鼓的新项目也大半切到rust了?
原因无它,的是好。
甚至即使Rust性能再衰退个70%,哪怕现在Rust很多特性极度缺失+本身有些点极度难用(点名asyncclose/asynccallacktype/context-asedpolymorphi/partialtraitimpl/panic处理),它已有的基础,对很多场景仍然有着致命的便利。而且我也认识到,单纯的“写代码爽”未必是一件很重要的事。
怎么描述Rust的使用感官呢,我想想哈。就如说Rust无gc这件事怎么理解。如果单讲为了“性能提升”,那其实是很掉价的一件事,如果是是给工作或者布道过程中的外部沟通说辞,我能理解,但这些烂大街的说辞,要敞开聊的话就不算诚且无趣。首先性能很多时候就不关键,其次rust的主场优势也不绝对在于性能。我们一个50w行rust的语言运行时项目,分配器从mimalloc换成dc,跑基准性能居然可以提升10%,rust默认分配器更是不知快到哪里去了。但最后我们不用dc,为什么?要和更大的产品集成啊,没gc的话ffi做起来是的方便,不用搞一堆对象池索引。像go语言写的动态库插件,通常一个进程只能加载一个否则崩溃,像c#aot编译的多个动态库可以一起加载,但每个动态库里一套gc一套runtime(虽然相ja乃至ja的aot方案算很精简)同时运行,插件一多也会有些麻烦事。
你能看到在这里rust很轻量,唉那种感觉我突然想到怎么形容了,就像是大晚上熬夜啃点东西想点很油腻的烧烤,结果想起尿酸变高就住没吃,整了两根酱黄瓜啃,不一会儿感觉整个腰子被清爽的蔬菜汁液洗涤了,什么杂质油脂体内废物都清理掉,就是这种感觉。
清爽。
有这种清清爽爽的感觉,Rust做中大规模的框架性工作还是挺方便,写好的组件要给安卓啊ios以及各种奇怪的板子编译,眼睛都不眨一下。
明明我现在写rust集成C/C++项目也是有一手的,但不知怎么就会尽量选用纯rust实现,否则就有点不踏实,这个我推测可能是c++运行时库的依赖问题以及unwind运行时库兼容问题的心理投射。但我回头一看,以前为了省事解决问题经常搞多语言集成方案,现在几乎不怎么主动愿意搞了,看到运行时打包就烦,还会觉得oajsdeno/quickjs更好之类的……
突然还想到一个词来形容rust项目,那就是整洁吧。虽然过程较艰辛,但客观反馈的掌控感很强,质量很稳,最后出的东西,很顺溜。
但其实你要说好用吧的rust有些事也挺。我工作给计算平台做软件,rust那个panic,人家用户写个大型高维数组分配会直接崩掉进程,进程里是用户还没有保存算了三天三夜算出来的实验数据,解决方案不在文档里要多爬爬资料。还有stalerust很难写generator抽象,为了惰性迭代一些全局信息,我上个月大概手动写了两个很要命的状态机来把很简单的yieldgenerator转成iterator。巨多问题,的一大堆。
所以说的也有很多不好用的地方,但倒也没有卡点。
而它解决的问题,如发展到稳定阶段合并进入stalerust的特性,解决了就是解决了,含金量较高,我觉着rust的整洁感也是来自这里。
除开清爽整洁之外,还有一些我估计是框架性工作较喜欢的组件。就rust里锁/类似锁机制的生态的较丰富,LazyLock,LazyCell,once_cell::sync::OnceCell,RwLock,Arwap,之类的还有各种无锁结构oxcar,dashmap,croseam-*等等,这些性能、成熟度、移植性、功能富足度、控制粒度,我以前在c++里找一套是的很麻烦很麻烦啊,难道大家都是spinlock+mutex走天下吗。。
我大概无法从rust做编辑器的优势上去分析的,我只能说就普遍意义而言rust对框架性开发工作的益处。还就是从我开头讲,开发者的习惯的是能被训化的,曾经的曾经我也是能用notepad++一口气写1000行matla不喘气一遍过而且不一丁点现代ide的。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:为什么需要注册中心?是用Eeka还是Nacos?
- 下一篇:电脑为什么没有家用模式?
相关推荐

你 发表评论:
欢迎