V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
serco
V2EX  ›  Rust

Rust 是有什么黑魔法吗?每次用了就忘

  •  
  •   serco · 2022-11-22 10:00:54 +08:00 · 7690 次点击
    这是一个创建于 761 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前用 Rust 写了个很简短的小项目,时隔一年多,又要捡起来用了,忘了个干净。。。然后翻着翻着突然想起来好像再往前一年也写过一个 Rust 的小项目。。。

    Ruby ,Javascript ,Swift 都没有给我这种感觉,甚至 N 久前浅接触的 Elixir 都没有这种感觉,就 Rust 特别行,每次都忘个干净。。。

    27 条回复    2023-12-19 21:29:25 +08:00
    fgwmlhdkkkw
        1
    fgwmlhdkkkw  
       2022-11-22 10:06:58 +08:00   ❤️ 1
    因为 Rust 不解决问题,只暴露问题。
    serco
        2
    serco  
    OP
       2022-11-22 10:08:54 +08:00
    @fgwmlhdkkkw 怎么理解?没明白
    kunkunzhang
        3
    kunkunzhang  
       2022-11-22 10:09:46 +08:00
    rust 和 C++一样吧。语法多 语言设计偏底层
    mysalt
        4
    mysalt  
       2022-11-22 10:10:51 +08:00
    不用就忘,这就是它的魔法
    cslive
        5
    cslive  
       2022-11-22 10:22:41 +08:00
    编辑器教你怎么写,而不是你自己记住怎么写🐶
    liyang5945
        6
    liyang5945  
       2022-11-22 10:23:52 +08:00
    +1 再学就是第三遍了
    fgwmlhdkkkw
        7
    fgwmlhdkkkw  
       2022-11-22 10:39:14 +08:00   ❤️ 3
    @serco #2 就是有一个机器可以解决所有的问题,但是每种问题都需要按对应的按钮……那么你不仅需要了解问题,还要了解每个按钮。
    undeflife
        8
    undeflife  
       2022-11-22 11:08:21 +08:00   ❤️ 1
    语法糖多,用得不够多且不够熟练。
    我学完了语言完成了练手项目,大半年后上项目的时候感觉又学了一遍。全职写了一年后就不存在这种感觉了。

    真正让我感觉用了就忘的是正则
    leonshaw
        9
    leonshaw  
       2022-11-22 11:19:38 +08:00   ❤️ 1
    为了实现看上去优雅的设计,做了太多 dirty hack
    akaHenry
        10
    akaHenry  
       2022-11-22 12:57:06 +08:00   ❤️ 11
    这是 rust 学习者的常态. 跟 C++ 一样. 都是暴露设计复杂度给所有人.

    rust 和 c++ 都是功能 强大性 vs 易用性, 平衡失败的典型案例.

    c++ 经常是为了敲个钉子, 先要发明个锤子, 然后发现没有车床, 就造了个车床, 之后就忘了自己要干什么...

    rust 对 c++, 是用复杂对抗复杂. 本身从理念上, 并没有进步.

    平衡性, 过去(现在不是)做的好的是 go 和 python. 未来看, 可能是 zig.

    rust 只是: 群众, 对当前一个能打的没有的现状的妥协. 比起 c++, rust 虽然难以下咽, 但咽下去了, 还是香的.

    吐槽之余, 可以看看 zig 的设计. zig 的平衡性做的非常好.

    基本用了很少的语法特性(1 周掌握), 实现了 rust 绝大多数需求点.

    简单易学+性能出色. 语法设计也很有美感.

    rust 这种"符号学大师", 是典型不懂 "减法原则".
    westoy
        11
    westoy  
       2022-11-22 13:19:48 +08:00
    和主流编程语言差异太大, 包括编程习惯和思维模式

    主流编程语言虽然有差异, 但几乎都有类似的脉络,API 设计的时候也趋同, 这就是为什么很多时候学一门新语言几乎是没成本的。 写一个的时候对于已经掌握的其他也有个对照印证、加深记忆的过程

    但是非主流语言就不一样了

    我以前写 erlang 也是这样的, 写完了隔两个月全忘了, 要改只能再捡起来, 然后隔两个月又忘了
    tulongtou
        12
    tulongtou  
       2022-11-22 13:28:22 +08:00
    还是写的少,写多了就不会有这种感觉了
    qsnow6
        13
    qsnow6  
       2022-11-22 13:33:59 +08:00
    说明了语言只是工具
    @westoy #11
    cmdOptionKana
        14
    cmdOptionKana  
       2022-11-22 14:10:23 +08:00   ❤️ 4
    @akaHenry

    > rust 对 c++, 是用复杂对抗复杂. 本身从理念上, 并没有进步.
    > 平衡性, 过去(现在不是)做的好的是 go 和 python.

    rust 和 C++ 追求极致性能, 没有 GC, 你拿来跟有 GC 的语言对比...

    有的语言追求平衡, 有的语言追求极致性能, 用途根本不同, 比如写 Chrome 写 Firefox, 用 go 和 python 怎么写? 就算 go 和 pytho 达到了平衡艺术的天花板, 还是写不了浏览器呀. 这能说理念上的进步退步吗?
    cubecube
        15
    cubecube  
       2022-11-22 14:35:10 +08:00
    这么猛,以前这个写完就忘的桂冠可是 perl 的
    Jooooooooo
        16
    Jooooooooo  
       2022-11-22 14:39:11 +08:00   ❤️ 1
    学来学去, 还是 java 好.
    libook
        17
    libook  
       2022-11-22 15:36:38 +08:00
    Rust 语法糖很多,而且大量使用符号,记忆起来确实有难度,只能多练。

    而且我一直觉得 Rust 的语法应该分基础语法和高阶语法,绝大多数程序用基础语法可以不那么优雅实现,遇到更高要求再慢慢引入高阶语法,如果教材可以这么划分,估计能降低学习难度。
    xtreme1
        18
    xtreme1  
       2022-11-22 15:48:25 +08:00
    @libook
    the Rust Book 就是这么做的
    libook
        19
    libook  
       2022-11-22 15:53:29 +08:00
    @xtreme1 #18 我就是看官方英文的 book 学的,而且照着这本书学了两遍,并没有感觉划分这么明确,当然如果已经掌握 Rust 的人去查阅肯定知道哪些是基础哪些是进阶,但我作为小白来说至少教材没有明确给我这个信息。
    wonderfulcxm
        20
    wonderfulcxm  
       2022-11-22 16:08:23 +08:00 via iPhone
    没学过 rust ,不过给我这种类似感觉的是 vue😂
    chiu
        21
    chiu  
       2022-11-22 17:10:49 +08:00
    bash 不也这样吗 😂
    每次写都得重看一遍
    findex
        22
    findex  
       2022-11-23 06:44:23 +08:00 via iPhone
    经常不用,再用又要重学…
    zeze0556
        23
    zeze0556  
       2022-11-23 14:08:50 +08:00
    rust 的魔力就是过段时间,你看到 rust 会觉得,哇,又出来了一个很牛逼,很有用的新语言,要不要学习一下? rust 的缺点,设计思路复杂,为了安全绕道,语法糖太多,关键字太多,要查询的内容太多太散,说不定有人觉得这正是 rust 的优点或特色
    n30v1
        24
    n30v1  
       2022-12-10 16:13:12 +08:00   ❤️ 1
    @akaHenry zig 抄袭 rust,不但没抄到精华,语法还不优雅,可读性很差,有种东施效颦的感觉,不如 rust 的一根吊毛
    tairan2006
        25
    tairan2006  
       2023-02-10 16:22:06 +08:00
    设计的太复杂了,或者太丑了的就这样

    比如 Perl ,bash ,正则之类的,都这问题
    akaHenry
        26
    akaHenry  
       2023-12-19 21:28:45 +08:00
    更新一下:

    时间来到 2023 年, 相比 zig, 有了新的选择: Mojo( = Python++), WIP.

    https://docs.modular.com/mojo/why-mojo.html

    1. Mojo 作者是 Chris. (swift 之父)

    2. Mojo 是 Python 家族语言. 100% 兼容 Python 承诺.

    3. 性能: 是 C Level 的. 也就是和 rust/zig 同档.

    4. 易用性: 是 Python 同档. 目前已初具可用性. 可以直接 import Python lib 使用.
    akaHenry
        27
    akaHenry  
       2023-12-19 21:29:25 +08:00
    如果实在学不会 rust/zig, 可以尝试一下 Mojo(Python++), 会有惊喜.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:35 · PVG 15:35 · LAX 23:35 · JFK 02:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.