×

Loading...

Topic

This topic has been archived. It cannot be replied.
  • 枫下家园 / 望子成龙 / 周末听孩子说University of Waterloo四年级High performance programming由C++转成RUST了。
    • ECE?
      • 我没有追问。你要是有渠道,可以帮我们打听一下。
        • 这怎么打听。我看到 ECE 459 是用Rust的。再看了一下,SE也可以选这门。
    • 好事儿,大学课程本来就应该着重于基础,不应该有语言偏向/依赖。以前感觉C++过重了,弊大于利 +2
      着重一个流行语言也还不亏,而C++二十年前就过时了,还难,事倍功半
    • AI进,人退 +1
    • 紧跟趋势,好事
    • RUST是类似于C++的采用ref count,RAII来做内存管理的, +1
      不依赖垃圾收集器的。一般在高并发的场合适用。但编程困难,特别是大型项目出现circular ref非常头痛,到时候要做weak,strong pointer来切断麻烦不已。RUST改进了一点就是编译过程中它会检测到circular ref的问题,让后会强制报错要你修改ownership,用weak/strong pointer或者直接切断circular ref。当然我Rust写的很少,可以说是某种程度的现代版C++,改进了很多C++的上述缺陷,保留了优点,比如stack分配内存做ref,当然写c++的人肯定要反抗。目前语言流派基本分成了2类,一类就是C++, rust做ref count, raii的内存管理,尽量的减少heap分配过程和极其漫长的GC释放过程,缺点是写起来异常复杂,很多时间要小心翼翼的管理内存,不过优点是stack分配的话基本都可以被cache命中,并且没有GC,执行异常丝滑顺滑。另一类是以Java为代表的纯heap分配方案,并使用GC管理内存,优点就不用说了,写的时候根本不要动脑子考虑语言特性,一股脑的只管业务逻辑即可。缺点也是比较明显的,Heap分配非常容易cache missing而造成大量cpu cycle浪费,并且所有的GC都有着令人发指的停顿感。所以目前这2类代表的语言分别各自占据自己应有的位置,其实没啥交集了已经。