会一点 JavaScript 和 C#,想再多学习一门语言,是选 C++ 还是 Rust?

30 天前
 hahade

本人之前学习过一点 JavaScript 和 C#,两个都挺好。目前年纪大了,有时候也有压力,就想再学习一门语言,请问是选择 C++ 还是 Rust 比较好?能否给一个理由?感谢!

4032 次点击
所在节点    程序员
67 条回复
liuhan907
28 天前
如果你是认真想通过学一门新语言来接触一些过去没有接触过的东西,那我觉得 Rust 更好。
实际上 Rust 没有那么难,在入门学习的时候不要去在乎那些生命周期的破事,编译错误就直接 clone 解决 80% 的问题,剩下 Arc 解决 15% 的问题。最后那 5% 入门是不会需要了解的。
Rust 还有非常好用的 cargo 包管理器。入门文档齐全而且有中文翻译。
不过唯一要注意的是它和 JS 差距可是云泥之别,不要按照 JS 的思路去写。或者说 GC 语言和非 GC 语言的思路差别巨大。你最好忘掉除了基础的概念(比如分支语句、循环语句之类的这种)以外的之前的经验,不然可能会学的很痛苦。

@hahade
LLaMA2
28 天前
工作需要什么,你就学什么

而且你习惯了 javascript 的灵活,习惯了 C#的智能提示,
C++ 的那一套怕是完全推翻以前的代码编写习惯


算了吧,

还是多研究数据结构,多研究通信各种协议,各种行业约定的设计方案(套路)
hahade
28 天前
@liuhan907 感谢!
yazoox
28 天前
@guotie zig 比 rust 优秀在哪里?
guotie
28 天前
zig 并不比 rust 优秀
secondwtq
24 天前
我觉得这根本就不是一个二选一或者 N 选一的问题。

我不知道楼主所谓的“底层”究竟是指什么,先权当从语言抽象的角度来讲好了。学习底层的东西,你至少需要能够看懂相关的实现,涉及到什么项目,就得去看相关的语言。
对于有些项目来说,语言扩展甚至不比语言本身作用要小。

现在的阶段,底层的绝对主力还是 C/C++,你的 JS 和 C#,主流实现穿透到下面都是 C/C++,Java 一样。你要是去看 Linux Kernel ,Postgres ,SQLite ,PyTorch ,Mesa 之类的也是,所以你可以不拿他们当主力,但是早晚要学点。
我不知道楼主了不了解指针这个概念,但是往底层实现走,少不了 C FFI ( v2ex.com/t/604915#r_7962546 ),FFI 这套搞明白了,看过一些典型的 FFI 接口,C 其实已经差不多学会三分之一了。这条路我觉得比一般的教科书要强。

现在已经有一些项目开始用 Rust 作为主力(虽然我脑袋里面除了 TiKV 和 Zed 之外一时半会没想出来有啥),但是一是这样的项目以后会越来越多,二是正是因为 Rust 很多项目不完善,用得人少,屎山堆得少,反而更加简洁适合初学者。语言丁真,鉴定为早晚也得学。

另外你以为学一个通用语言就得了?事实上每个项目都有自己的 DSL ,而且一般还不只一个,比如 SQLite 里面有个 VM ,这里有文档:www.sqlite.org/opcode.html 每个 SQL 语句都会被编译成这样一段 VM 程序(噢对了,SQLite 本身的 SQL 方言也算一个),然后这玩意的测试是 Tcl 写的。

不要对底层有神秘感,换个语言糊屎,不代表就不在糊屎了。
所以语言不妨先随便看看,然后看起相关的项目。至于实际使用嘛,JS 难说,不过 C# 在与底层交互方面做得其实算比较完善的,所以很多情况下不用换语言就可以。折腾一段时间之后了解了不同的语言,再根据个人口味选择更好。
hahade
24 天前
@secondwtq 非常感谢,虽然前面说了看下 Rust ,但这几天我也在看 C++ 20 ,发现里面有些概念与 JS 都是相通的。就像您说的,可以先随便了解一门,然后具体项目具体研究。感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1046350

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX