多年 C++, 继续深入 C++ 还是 学习 Rust?或是 全都要? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
InvalidUsername
V2EX    Rust

多年 C++, 继续深入 C++ 还是 学习 Rust?或是 全都要?

  •  
  •   InvalidUsername 2023-08-28 01:39:44 +08:00 via Android 3837 次点击
    这是一个创建于 850 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我主要做 windows 桌面应用开发,有时也会做 web 项目或 electron ,还有些偏底层的项目用到汇编。

    目前我对 C++的使用还停留在 17, 20 及以后的新内容尚未学习。同时对 c++模板元编程那一套也只停留在简单使用,尚未深入。

    我本打算开始学习 c++的新内容,但初步了解 rust 后感觉 rust 也挺香,未来新项目也许可以直接用 rust 来写。

    不过毕竟打工人时间有限, 所以有点纠结。在 c++已经满足目前工作需要,但新内容尚未学习的情况下,是否有必要花时间先来学一下 rust ? 尤其是想到万一要嵌入汇编写 unsafe ,似乎和写 cpp 没什么区别了。

    (我知道这有点小马过河了,哈哈。但还是想看看大佬们的意见)

    第 1 条附言    2023-08-28 21:24:26 +08:00
    在 reddit 上看到一个类似的主题,里面有更多的讨论,如有和我想法类似的朋友,也可以看看:
    https://www.reddit.com/r/cpp/comments/m0cxfn/how_does_modern_c_c20_compare_with_rust
    15 条回复    2023-08-28 15:17:30 +08:00
    levelworm
        1
    levelworm  
       2023-08-28 02:04:49 +08:00 via Android
    大佬公司是做什么,十分羡慕这种职位。
    InvalidUsername
        2
    InvalidUsername  
    OP
       2023-08-28 02:52:13 +08:00 via Android   1
    @levelworm 不必羡慕,外包。只不过有些客户不要求技术栈。
    levelworm
        3
    levelworm  
       2023-08-28 05:29:01 +08:00 via Android
    @InvalidUsername 能够用 c++和汇编的工作我觉得都是好东西啊
    cooltechbs
        4
    cooltechbs  
       2023-08-28 06:24:49 +08:00 via Android   2
    C++20 及以后,几乎又和 C++11 一样“感觉是门新语言”了,学习成本不低,然后新增的特性我认为也不是特别有用。
    Rust 的 borrow checker ,我初次遇见的时候感觉耳目一新,原来除了标记清理和引用计数,还能有第三种自动管理内存的思路,而且还顺便解决了一部分并发问题。
    所以我站 Rust ,时间少的话了解一下内存管理、写几个工具或是算法题就行,要是时间多,GitHub 走起,现在 Rust 还有不少轮子可造呢。
    lsk569937453
        5
    lsk569937453  
       2023-08-28 08:31:50 +08:00   2
    rust 你学了,就离不开它了。毕竟 cargo 太爽了。
    我最近用 tauri 开发了几个桌面应用。size 也不大,性能又高。
    gym345600
        6
    gym345600  
       2023-08-28 08:52:52 +08:00   1
    都可以。

    不过我想说的是,windows 桌面应用开发,第一步还是要多学习 win32 程序开发(就是好个第四版的),现在感觉懂这个的都成了上古神兽(人才断层了),然后再学习一下 MFC (学它的目的是了解 MFC 是怎么用 C++面向对象的思维封装玩转 win32 API 的),这些都是操作系统基础,这此搞熟了,无论哪个界面框架都能快速掌握,以后转 Linux 的桌面窗口开发也能举一反三。
    这些知识点不深入体验的话,不管用 C++还是 RUST ,学起来都很苦 B 的。
    daveh
        7
    daveh  
       2023-08-28 09:34:57 +08:00 via iPhone   1
    @lsk569937453 #5 有点吹,rust 什么都要靠 cargo ,绑得太死了也不太好。C++喜欢这个调调的可以用 vcpkg 之类的,但 C++本身不依赖这种工具,使用起来更灵活,依赖可以使用现有环境现成的,不用什么都得从头构建起。
    weiweiwitch
        8
    weiweiwitch  
       2023-08-28 09:40:57 +08:00 via Android   1
    我的建议是学一些带垃圾回收的语言,以及一些动态语言。
    c++新特性是用来跟进技术潮流的,能看懂就行,工作中考虑团队平均水平,不太可能铺开了用。
    其他语言,开发应用类的东西效率远高于 c++,所以你会发现一片新天地,反过来也会让你对 c++有新的认识。
    cmdOptionKana
        9
    cmdOptionKana  
       2023-08-28 09:46:02 +08:00   1
    建议先学 rust 基础,然后你自己就能更清晰地判断了。基础教程学一遍,再写个小 demo ,不需要很多时间,快的话几天,慢的话(每天学习有限)两三个星期。
    libook
        10
    libook  
       2023-08-28 10:39:06 +08:00   1
    如果是为了找工作的话,就看一下目标岗位的职位要求是怎么写的,我记得前几年 Rust 相关职位的需求基本都包括“有 C/C++相关开发经验”,一部分项目是从 C/C++中引入部分 Rust ,或者开发 Rust 项目但涉及到引用 C/C++库。

    了解新东西至少可以扩展眼界,在解决问题的时候可以多一些思路。
    Rust 学起来挺快的,特别是你有 C++基础的情况下,我就学了两三遍(狗头)。
    mainjzb
        11
    mainjzb  
       2023-08-28 10:51:49 +08:00
    我目前在尝试用 flutter 代替 qt
    Noicdi
        12
    Noicdi/strong>  
       2023-08-28 11:07:10 +08:00 via iPhone
    现在维护的公司项目太老了,连 c++11 都没有上,纯用 c 的形式写业务代码。后面想跳 rust 的工作,但是又感觉市面上这块的岗太少了
    fakeshadow
        13
    fakeshadow  
       2023-08-28 11:10:51 +08:00   1
    gui 和 embedded 目前都不是 rust 长项
    InvalidUsername
        14
    InvalidUsername  
    OP
       2023-08-28 12:31:02 +08:00 via Android
    @cooltechbs 谢谢建议,我打算试试

    @lsk569937453 这正是吸引我的一些点 哈哈

    @gym345600 谢谢建议,赞同底层总是最核心的, 所以平时也在和这些打交道。本次就是在纠结语言层面 cpp20+和 rust ,哈哈。

    @weiweiwitch 谢谢建议,我也深知语言只是工具,所以写 web 后端的时候都用 java ,脚本语言也有使用。只是在纠结我这些 cpp 的场景是否可以考虑改为 rust

    @cmdOptionKana 谢谢建议,我打算试试看

    @libook 谢谢建议,不是面向工作或是中短期不是面向工作。 这也是我犹豫的点,就怕学了又用不到,时间一长就忘了。

    @fakeshadow 感谢建议。这也是我犹豫的点,我在想只能学一下 rust ,能换的换到 rust ,不能换的继续 cpp
    libook
        15
    libook  
       2023-08-28 15:17:30 +08:00   1
    @InvalidUsername #14 我学了三遍,就是因为平时用得少,等要用的时候就忘了。
    Rust 语法糖不少,而且很多是使用符号来代表一些语法功能,且同一种符号可能在不同上下文代表不同的语法功能。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1026 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:56 PVG 02:56 LAX 10:56 JFK 13:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86