[讨论] Rust与C++

楼主: icetofux   2023-06-26 21:33:42
最近看到一则windows以Rust改写部分程式的新闻,仔细一查发现Linux似乎也打算将Rust作为内核开发的第二语言,让我对Rust这个语言产生很大的兴趣。
我最先学会的语言是C,后来在学习物件导向的时候开始接触到C++,对于C++提供的语言特性及STL印象深刻。虽然不能说写的非常好,但感觉C++强化了很多C在内存管理上容易出现问题的地方。目前如果环境许可,C++往往是我会优先选择的语言之一。
快速搜寻了一下Rust及C++的比较,大部分都是着重在将两个语言的优缺点条列比较,比如Rust在内存管理跟编译讯息上更为突出,而C++则是保持对C的相容跟编译速度更为出色,编译出来的执行效率两者似乎在伯仲之间,都非常的优秀。
但是看了几项比较资料后,却没有发现两大作业系统选择了较为年轻的Rust而非长时间发展的C++的关键原因。请问有对Rust较为熟悉的先进可以帮忙解惑吗?
谢谢。
作者: ck574b027 (荒围!定厝!贼!妹!)   2023-06-26 21:39:00
没发现c++的优点根本没差吗,编译速度到了大专案还不是得去泡咖啡上厕所
作者: flarehunter (Range)   2023-06-26 21:43:00
因为C++的内存漏洞太难防了 Rust直接从语言上解决https://www.ithome.com.tw/news/154539
作者: lycantrope (阿宽)   2023-06-26 21:57:00
Rust在compile时就会抓你内存漏洞
作者: ck574b027 (荒围!定厝!贼!妹!)   2023-06-26 22:34:00
写得出来跟检查得出来是两回事
作者: CoNsTaR ((const *))   2023-06-26 23:00:00
建议去读 linear types 或 quantitative types,Rust 用的是 affine types,它和 linear types 的差别在它不强制所有值一定都要被 consume对比 C++ 你想要怎么恶搞都一样给你 type check,反正 runtime 再 crash 给你看,超不负责任
作者: jheli (我是企鹅)   2023-06-27 00:23:00
compile阶段就抓到漏洞总比出事后再debug好
作者: F04E (Fujitsu)   2023-06-27 01:11:00
说超不负责的也很奇怪 啊不就是给你方便你当随便...
作者: CoNsTaR ((const *))   2023-06-27 02:45:00
楼上,方便在哪?给了什么方便?
作者: oToToT (屁孩)   2023-06-27 02:52:00
个人觉得rust有一定的时间是花在说服编译器我的code跑起来没问题,C++就没那么多规矩
作者: flarehunter (Range)   2023-06-27 08:10:00
https://shorturl.at/qvzGO 举例来说 当我要传一个unique_ptr<T>的物件到函式但没有要给函式ownership照chromium guide是传一个raw pointer呼叫函式的人要"手动"保证物件的lifetime够久如果没弄好就会有use-after-free的问题
作者: F04E (Fujitsu)   2023-06-27 11:16:00
连哪里方便都不知道了还是别用了XD
作者: CoNsTaR ((const *))   2023-06-27 11:27:00
所以我说和 Rust 比起来方便在哪啊?你说给方便当随便,那到底方便在哪讲出来啊?
作者: oToToT (屁孩)   2023-06-27 17:14:00
to楼上,我觉得我不需要标lifetime说服编译器我是对的就很方便,但当然Rust要标lifetime的情况不是非常常见
作者: chaos1993 (栈前小二)   2023-06-27 22:50:00
想请问即使用smart pointer,要怎么恶搞才可以type check过然后runtime crash?
作者: tinlans ( )   2023-06-28 02:05:00
get 它的 raw pointer 出来存到别的物件去,再很不小心地由它的解构子 delete 之类的吧2 人以上维护的时候有时会出现类似蠢事
作者: Lhmstu (lhmstu)   2023-06-28 08:48:00
c++没有从根本上改善c的缺陷
作者: MasterChang (我爱ASM)   2023-06-30 09:58:00
不是程式语言不行,是你不行。
作者: firejox (Tangent)   2023-06-30 15:16:00
我只希望有一天 Rust 能给我有用的错误讯息
作者: wulouise (在线上!=在电脑前)   2023-06-30 21:42:00
rust compile time要求你的lifetime正常,有时候会很卡

Links booklink

Contact Us: admin [ a t ] ucptt.com