我主要做 windows 桌面应用开发,有时也会做 web 项目或 electron ,还有些偏底层的项目用到汇编。
目前我对 C++的使用还停留在 17, 20 及以后的新内容尚未学习。同时对 c++模板元编程那一套也只停留在简单使用,尚未深入。
我本打算开始学习 c++的新内容,但初步了解 rust 后感觉 rust 也挺香,未来新项目也许可以直接用 rust 来写。
不过毕竟打工人时间有限, 所以有点纠结。在 c++已经满足目前工作需要,但新内容尚未学习的情况下,是否有必要花时间先来学一下 rust ? 尤其是想到万一要嵌入汇编写 unsafe ,似乎和写 cpp 没什么区别了。
(我知道这有点小马过河了,哈哈🐶。但还是想看看大佬们的意见)
1
levelworm 2023-08-28 02:04:49 +08:00 via Android
大佬公司是做什么,十分羡慕这种职位。
|
2
InvalidUsername OP @levelworm 不必羡慕,外包😶🌫️😶🌫️。只不过有些客户不要求技术栈。
|
3
levelworm 2023-08-28 05:29:01 +08:00 via Android
@InvalidUsername 能够用 c++和汇编的工作我觉得都是好东西啊
|
4
cooltechbs 2023-08-28 06:24:49 +08:00 via Android 2
C++20 及以后,几乎又和 C++11 一样“感觉是门新语言”了,学习成本不低,然后新增的特性我认为也不是特别有用。
Rust 的 borrow checker ,我初次遇见的时候感觉耳目一新,原来除了标记清理和引用计数,还能有第三种自动管理内存的思路,而且还顺便解决了一部分并发问题。 所以我站 Rust ,时间少的话了解一下内存管理、写几个工具或是算法题就行,要是时间多,GitHub 走起,现在 Rust 还有不少轮子可造呢。 |
5
lsk569937453 2023-08-28 08:31:50 +08:00 2
rust 你学了,就离不开它了。毕竟 cargo 太爽了。
我最近用 tauri 开发了几个桌面应用。size 也不大,性能又高。 |
6
gym345600 2023-08-28 08:52:52 +08:00 1
都可以。
不过我想说的是,windows 桌面应用开发,第一步还是要多学习 win32 程序开发(就是好个第四版的),现在感觉懂这个的都成了上古神兽(人才断层了),然后再学习一下 MFC (学它的目的是了解 MFC 是怎么用 C++面向对象的思维封装玩转 win32 API 的),这些都是操作系统基础,这此搞熟了,无论哪个界面框架都能快速掌握,以后转 Linux 的桌面窗口开发也能举一反三。 这些知识点不深入体验的话,不管用 C++还是 RUST ,学起来都很苦 B 的。 |
7
daveh 2023-08-28 09:34:57 +08:00 via iPhone 1
@lsk569937453 #5 有点吹,rust 什么都要靠 cargo ,绑得太死了也不太好。C++喜欢这个调调的可以用 vcpkg 之类的,但 C++本身不依赖这种工具,使用起来更灵活,依赖可以使用现有环境现成的,不用什么都得从头构建起。
|
8
weiweiwitch 2023-08-28 09:40:57 +08:00 via Android 1
我的建议是学一些带垃圾回收的语言,以及一些动态语言。
c++新特性是用来跟进技术潮流的,能看懂就行,工作中考虑团队平均水平,不太可能铺开了用。 其他语言,开发应用类的东西效率远高于 c++,所以你会发现一片新天地,反过来也会让你对 c++有新的认识。 |
9
cmdOptionKana 2023-08-28 09:46:02 +08:00 1
建议先学 rust 基础,然后你自己就能更清晰地判断了。基础教程学一遍,再写个小 demo ,不需要很多时间,快的话几天,慢的话(每天学习有限)两三个星期。
|
10
libook 2023-08-28 10:39:06 +08:00 1
如果是为了找工作的话,就看一下目标岗位的职位要求是怎么写的,我记得前几年 Rust 相关职位的需求基本都包括“有 C/C++相关开发经验”,一部分项目是从 C/C++中引入部分 Rust ,或者开发 Rust 项目但涉及到引用 C/C++库。
了解新东西至少可以扩展眼界,在解决问题的时候可以多一些思路。 Rust 学起来挺快的,特别是你有 C++基础的情况下,我就学了两三遍(狗头)。 |
11
mainjzb 2023-08-28 10:51:49 +08:00
我目前在尝试用 flutter 代替 qt
|
12
Noicdi 2023-08-28 11:07:10 +08:00 via iPhone
现在维护的公司项目太老了,连 c++11 都没有上,纯用 c 的形式写业务代码。后面想跳 rust 的工作,但是又感觉市面上这块的岗太少了
|
13
fakeshadow 2023-08-28 11:10:51 +08:00 1
gui 和 embedded 目前都不是 rust 长项
|
14
InvalidUsername OP @cooltechbs 谢谢建议,我打算试试
@lsk569937453 这正是吸引我的一些点 哈哈 @gym345600 谢谢建议,赞同底层总是最核心的, 所以平时也在和这些打交道。本次就是在纠结语言层面 cpp20+和 rust ,哈哈。 @weiweiwitch 谢谢建议,我也深知语言只是工具,所以写 web 后端的时候都用 java ,脚本语言也有使用。只是在纠结我这些 cpp 的场景是否可以考虑改为 rust @cmdOptionKana 谢谢建议,我打算试试看 @libook 谢谢建议,不是面向工作或是中短期不是面向工作。 这也是我犹豫的点,就怕学了又用不到,时间一长就忘了。 @fakeshadow 感谢建议。这也是我犹豫的点,我在想只能学一下 rust ,能换的换到 rust ,不能换的继续 cpp😂 |
15
libook 2023-08-28 15:17:30 +08:00 1
@InvalidUsername #14 我学了三遍,就是因为平时用得少,等要用的时候就忘了。
Rust 语法糖不少,而且很多是使用符号来代表一些语法功能,且同一种符号可能在不同上下文代表不同的语法功能。 |