yemoluo
V2EX  ›  Rust

rust 这门语言太难学了,感觉比 C 还难..

  •  1
     
  •   yemoluo · Mar 2, 2021 · 12994 views
    This topic created in 2073 days ago, the information mentioned may be changed or developed.

    rust 这门语言太难学了,我都学习一周了,感觉还没摸到门槛,感觉比 C 还难..

    以前写了一点教程感觉还不难,现在深入学习,难上加难了

    要不要继续学啊!

    23 replies  •  2024-11-18 19:25:34 +08:00
    echo1937
    echo1937
    Mar 2, 2021
    1
    C 是很好学的,关键字少,语法也简单,难的是用 C 写项目,相较于其他现代高级语言,要懂很多软硬件基础知识。
    agagega
    agagega
    Mar 2, 2021 via iPhone
    2
    Rust 就是以语法 /类型系统的方式包装了 C++中很多「最佳实践」,然后语法变鬼畜了点,融了很多函数式的概念进去
    wzb0909
    wzb0909
    Mar 2, 2021
    3
    不是哥,有啥语言比 C 简单。
    想了许久只有汇编了。

    然后,新语言都是大公司维持垄断的武器吧。你给人当枪使,自己得什么好处呢。毕竟 C++做什么都很方便,资料也多呀。
    fwee
    fwee
    Mar 2, 2021
    4
    C 写出来简单,写对很难..
    imzcg2
    imzcg2
    Mar 2, 2021 via Android
    5
    因为 rust 不相信程序员,只相信编译器。不过作为新语言还是可以学的,就是会不会火和赚钱就难说了
    dbw9580
    dbw9580
    Mar 2, 2021 via Android❤️3
    6
    我觉得 rust 作为一个人的第一门编程语言其实不会比其他语言更困难,特别是不会比 C 困难。你觉得难是因为有了 C 的基础,写惯了 C 的代码,Rust 的所有权和生命周期的概念很不好融入进去。我记得我刚开始看 rust 的时候照搬学 C 的经验,想要实现一个链表,那种基本上寸步难行的挫败感是压倒性的。但如果从一开始就告诉你变量有所主,借用不能超过主人的生命周期等等,你会觉得这些根本就是理所应当的,实现一个安全可靠的链表就是有这么多内在的复杂性。再加上 rust 里普遍的 RAII 模式,比 C 手动管理内存需要了解的东西少得多了。
    SuperMild
    SuperMild
    Mar 2, 2021❤️5
    7
    C 语言本身就是很简单的,难的是内存管理、代码复用等语言以外的东西。

    Python 就语言本身来说,比 C 语言复杂很多,而 Python 易用的表象是因为其有 GC 、标准库比较好用、第三方库比较多。

    Rust 对标 C++, 语言特性无比丰富,同时又要人脑协助管理内存,难学是正常的。

    编程技术有句名言是没有银弹,C 本身简单,但语言对人的帮助就少(汇编语法更简单,但对人的帮助也更少,需要人多用脑多花精力)。Python 语言复杂一些,但由于功能多,对人的帮助也多,写起来就舒服,但同时运行效率也会更差。

    Rust 和 C++ 既想多一些功能给人多一些帮助,又不想损失性能,结果就只能难学难用。
    12101111
    12101111
    Mar 3, 2021
    8
    C 语言很难写出没有 UB 的复杂代码,虽然 rust 还没有语言规范定义什么叫 UB (只有草案 https://github.com/rust-lang/unsafe-code-guidelines ), 但是 rust 除了 unsafe 基本上消灭了 unsound, 并且以一种尽可能人体工程学友好的方式提供出 0 开销抽象的语法,因此就把整个计算机抽象模型暴露给用户了
    namelosw
    namelosw
    Mar 3, 2021
    9
    C 算比较好学的了, 不仅一本薄薄的 K&R 就囊括了, 还有小半本是附录.

    倒是 C++无比复杂, 比 Rust 复杂多了.

    其实 Rust 没多难, 多花点时间就好了, 加油.
    chinvo
    chinvo
    Mar 3, 2021 via iPhone❤️2
    10
    我深度地用过的语言,大概就是 C 、C#、PHP 、Swift 和 rust 了

    rust 用起来很爽

    可以说是除了 C# 之外第二爽的了

    只要能编译,基本不怕跑飞
    supermao
    supermao
    Mar 3, 2021
    11
    没半年不要想
    AndyAO
    AndyAO
    Mar 3, 2021
    12
    感觉你这个问题缺少关键的信息,只说感到难学,但没有给出具体的说明,所以搞不懂具体的细节,不知道为何难学,自然也就没有办法想出好的解决方法,建议补充一下细节。
    46fo
    46fo
    Mar 3, 2021
    13
    C 代表了自由
    shilyx
    shilyx
    Mar 3, 2021
    14
    rust 很丑,不建议使用

    基本上 C/C++的一些不便不必要用 rust 来填补,golang 、c#分担一些就很舒适了。
    PTLin
    PTLin
    Mar 4, 2021❤️2
    15
    假如你看官方的 The Book 学习的话我建议你看完教程之后再看一下 Rust By Example,因为很多东西 The Book 里都没讲,也可以买一本 Programming Rust(Rust 程序设计),我觉得这本书比所有官方的学习资料都要好。
    并且建议大概看一遍 rustup doc --std,比如 mem 模块里的函数都能干什么,原始指针类型都提供了什么和 C 语言里指针的等价操作,ptr 模块里的 NonNull 是做什么的,三角函数什么的是以 f32/f64 里的方法提供的等等东西。
    yemoluo
    yemoluo
    OP
    Mar 4, 2021
    16
    @PTLin 谢谢你的建议
    libook
    libook
    Mar 12, 2021❤️1
    17
    越简单的语言,对开发人员要求越高。

    C 很简单,但是经验不足的开发者极其容易写出有缺陷的程序,而且恐怖的是这些程序多半是可以启动运行的。

    Rust 的设计目标之一就是能用一些万全策略来规避以往在 C 、C++上遇到的各种问题;如果你觉得解决这些问题并不是你的首要需求,那么你可能并不需要 Rust 。

    作为一个大学英语四级都没过的人,Rust 是第一个我完全读英文教材学习的语言。
    Coelacanth
    Coelacanth
    Mar 15, 2021❤️6
    18
    @shilyx

    pub fn is_leap_year(year: i64) -> bool {
    match (year % 4, year % 100, year % 400) {
    (0, 0, 0) => true,
    (0, 0, _) => false,
    (0, _, _) => true,
    (_, _, _) => false,
    }
    }

    Exercism 上一个印象很深的求闰年的写法
    yemoluo
    yemoluo
    OP
    Mar 16, 2021
    19
    @Coelacanth match 带来的极大震撼
    gaifanking
    gaifanking
    Sep 30, 2022
    20
    @Coelacanth 跟 if else 看上去没太大区别呀
    yemoluo
    yemoluo
    OP
    Sep 30, 2022
    21
    @anjxue 有的,没区别是因为你把他当作 switch 来看待了
    zdustrong
    zdustrong
    Sep 29, 2023 via Android
    22
    会者不难,难者不会
    ebIR8Zz2l07Ts805
    ebIR8Zz2l07Ts805
    Nov 18, 2024
    23
    实际上, rust 远比 C 简单, 但凡你能做出点小项目出来就明白. C/C++ 光一个依赖管理就够你学一星期了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2286 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 15:50 · PVG 23:50 · LAX 07:50 · JFK 10:50
    ♥ Do have faith in what you're doing.