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

准备从 Go 和 Rust 二选一,求建议

  •  
  •   Kasumi20 ·
    develon2015 · 2021-04-12 19:05:11 +08:00 · 12272 次点击
    这是一个创建于 1324 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从代码风格来看,目前喜欢的是 Rust

    求意见和中文学籍

    第 1 条附言  ·  2021-04-13 00:17:16 +08:00
    好多人说 Go 啊,不过我感觉 Rust 更像 C,Go 像 C++

    所以我还是选 Rust,无缝切换
    105 条回复    2022-12-26 17:37:34 +08:00
    1  2  
    xdeng
        1
    xdeng  
       2021-04-12 19:06:54 +08:00   ❤️ 2
    小孩子才做选择
    Kasumi20
        2
    Kasumi20  
    OP
       2021-04-12 19:09:27 +08:00
    @xdeng 不做选择不行啊,没那多精力学
    hahasong
        3
    hahasong  
       2021-04-12 19:13:28 +08:00
    精力有限就学 go 吧 上手快 机会多
    forvtest
        4
    forvtest  
       2021-04-12 19:14:30 +08:00   ❤️ 2
    我也在犹豫,目前选择是 Rust 。打算六月之前把 The Rust Programming Language 和 Rust by Example 搞完
    Co1a
        5
    Co1a  
       2021-04-12 19:15:25 +08:00 via iPhone
    没有枪没有炮 全部都靠自己造,Github 似乎有相关翻译的文档 加油老哥
    cmdOptionKana
        6
    cmdOptionKana  
       2021-04-12 19:20:26 +08:00   ❤️ 1
    这两个用途完全不一样啊,喜欢 Rust 随时可以当作业余爱好来学,但主攻方向就要看你想干什么了,学习目的。

    学 Go (相对来说)不用涉及太多计算机知识就能做个人项目或参加工作,而需要用到 Rust 的项目一般都需要更深入地了解操作系统和算法,精益求精的项目才会用到 Rust,不然就是杀鸡用牛刀了。
    cmdOptionKana
        7
    cmdOptionKana  
       2021-04-12 19:23:39 +08:00   ❤️ 2
    因此,如果以后想用 Rust 来做事,就要有心理准备花很多时间精力去学语言之外的计算机知识。
    labulaka521
        8
    labulaka521  
       2021-04-12 19:28:04 +08:00
    https://www.v2ex.com/t/770072 微软出品 都学学?
    unicloud
        9
    unicloud  
       2021-04-12 19:31:02 +08:00
    小孩才做选择,大人全都要???好像哪里不对。。。
    timsensor
        10
    timsensor  
       2021-04-12 19:33:59 +08:00
    当然选 Go 啦,C++还强得很,rust 应用范围跟 C++差不多
    Muninn
        11
    Muninn  
       2021-04-12 20:05:23 +08:00
    只写 Web 应用就选 go, 写其他的更底层的 Rust 风头很盛。
    Muninn
        12
    Muninn  
       2021-04-12 20:06:09 +08:00   ❤️ 3
    不过说是只能学一个可能不成立,学个 rust 的时间可能能学 10 个 go,50 个 python 和 node
    Clarke
        13
    Clarke  
       2021-04-12 20:10:28 +08:00 via Android
    Go 吧,你都说你时间有限了
    surbomfla
        14
    surbomfla  
       2021-04-12 20:17:30 +08:00
    看方向,不做系统,数据库或者需要高性能敏感的东西的话那就选 GO 吧,无需环境,单文件跨平台挺舒服的
    如果能把 rust 学下去学好,那学 GO 的话也不需要太长的时间
    zhengxiaowai
        15
    zhengxiaowai  
       2021-04-12 20:19:21 +08:00
    小孩才做选择题成年人是都要!!!!

    ----

    字节跳动飞书部门了解一下,飞书应该是全国最大 Rust 产品应用,PingCAP 童鞋别打我 :-)
    domodomo
        16
    domodomo  
       2021-04-12 20:28:15 +08:00
    要从事后端开发的话学 Go
    如果是出于兴趣的话,那就学 Rust,我更喜欢 Rust 的语法和设计
    xuanbg
        17
    xuanbg  
       2021-04-12 20:42:43 +08:00
    小孩才做选择题成年人是都要,这话似乎说反了。。。

    成年人哪有都要的可能,能给你选择的机会就不错了。反倒是小孩子,可以说“我都要!”
    DinoStray
        18
    DinoStray  
       2021-04-12 20:43:33 +08:00
    @zhengxiaowai 话说飞书那个几百兆的客户端, 啥时候能裁剪下
    beexu
        19
    beexu  
       2021-04-12 21:06:25 +08:00
    初学语言建议从 Rust 开始。
    aneostart173
        20
    aneostart173  
       2021-04-12 21:18:21 +08:00
    玩的话 rust,个人也喜欢 rust 的 taste 。为以后找工作就 go,嵌入式这块 c 和 c++还是主流,go 的机会比较多。
    kwanzaa
        21
    kwanzaa  
       2021-04-12 21:27:37 +08:00
    马上用就 Go,慢慢学就 rust 。
    reeco
        22
    reeco  
       2021-04-12 21:42:32 +08:00 via iPhone
    Rust 和 go 不是一个难度,go 1,2 天就入门了
    AmrtaShiva
        23
    AmrtaShiva  
       2021-04-12 21:48:25 +08:00
    业余爱好学得 Go 感觉上手就是快 目前各种的开源库也多 rust 起点高
    ruzztok
        24
    ruzztok  
       2021-04-12 22:39:02 +08:00
    GO
    des
        25
    des  
       2021-04-12 22:40:11 +08:00 via iPhone   ❤️ 1
    @xuanbg
    小孩子才全都要,成年人都知道吃不消 :doge:
    raaaaaar
        26
    raaaaaar  
       2021-04-12 22:45:04 +08:00 via Android
    不是根据语言选业务,而是更加业务选语言,先确定你想学什么技术再说吧。
    lululau
        27
    lululau  
       2021-04-12 22:56:48 +08:00
    糊口选 Go, 兴趣选 Rust
    beidounanxizi
        28
    beidounanxizi  
       2021-04-12 23:14:58 +08:00
    喷了 v2 高频帖子 有 2 种 1 apple 相关 2 学 JAVA 还是 C++还是 Go 2 要么忍要么滚
    哈哈哈 😄
    namelosw
        29
    namelosw  
       2021-04-12 23:53:41 +08:00
    先 Go 再 Rust,不着急
    Huelse
        30
    Huelse  
       2021-04-13 00:06:32 +08:00
    建议 Go
    westoy
        31
    westoy  
       2021-04-13 00:08:44 +08:00
    两个一起吧, 和 Rust 比,Go 的学习成本可以直接忽略不计
    dawncold
        32
    dawncold  
       2021-04-13 00:11:41 +08:00
    没啥建议,正好在自学 Rust,有这几个 url 可以看看:
    https://stevedonovan.github.io/rust-gentle-intro/

    官方: https://doc.rust-lang.org/stable/book/
    中文翻译: https://kaisery.github.io/trpl-zh-cn/
    dawncold
        33
    dawncold  
       2021-04-13 00:12:40 +08:00
    Go 的话也许可以看看这个: https://draveness.me/golang/
    以及官方的 Go programming language
    Lemeng
        34
    Lemeng  
       2021-04-13 00:27:12 +08:00
    gogogo 欧了欧了欧了
    THP301
        35
    THP301  
       2021-04-13 00:28:26 +08:00
    肯定 go 啊,rust 就是靠语法糖堆起来的
    danc
        36
    danc  
       2021-04-13 00:32:18 +08:00
    学 rust 吧,你学会了 rust,go 几天就能上手
    dcoder
        37
    dcoder  
       2021-04-13 02:08:59 +08:00
    @Kasumi20
    "好多人说 Go 啊,不过我感觉 Rust 更像 C,Go 像 C++"
    -- 你这不是说反了么... 最多说 Go 像 C, Rust 像 C++
    Go 就是搞 Unix/C 那帮人搞的, 是放弃内存管理, 加强网路和并发的 C
    Rust 是用来代替 C++ 的, 把 C++ 很多 best practices 直接强制由 Rust compiler 保证了
    cassyfar
        38
    cassyfar  
       2021-04-13 02:25:22 +08:00
    Rust 有人用吗?
    lewis89
        39
    lewis89  
       2021-04-13 06:02:50 +08:00
    没有实时性需求的场景一律选带 GC 的语言,Rust 的所有权以及生命周期管理机制太麻烦了..
    lewis89
        40
    lewis89  
       2021-04-13 06:09:14 +08:00
    @cassyfar #38 用还是有场景用的,吃了不少原 C++的市场份额,毕竟 C++历史槽点太多,而且所有权管理机制也保证了小白也能写出内存安全的代码出来,关键是大部分场景并没有实时性需求,除了底层的数据库 高频交易 又或者是嵌入式实时设备之类的这些场景,其余 99.9%的场景 没有实时性需求,没有实时性需求,意味着不用 GC 就是脑子有病,让猿猴去管理内存,还不如相信 GC
    LokiSharp
        41
    LokiSharp  
       2021-04-13 07:19:27 +08:00 via Android
    选 rust,Go 没意义‘性能和生态都比不过 Java
    xeneizes
        42
    xeneizes  
       2021-04-13 08:33:26 +08:00
    @LokiSharp 那 rust 更木有生态啊
    LokiSharp
        43
    LokiSharp  
       2021-04-13 08:41:05 +08:00
    @xeneizes rust 性能比 Go 好一个数量级啊,可以和 C 媲美。而 Go 还不如直接用 Java C# Kotlin,反正性能都是接近 C++ 的水平,不如选生态更完善的。
    ericgui
        44
    ericgui  
       2021-04-13 08:56:37 +08:00
    学 C++
    SWYou
        45
    SWYou  
       2021-04-13 08:58:40 +08:00 via iPhone
    先研究了一遍 go,刚开始不喜欢,后来感觉还不错。后来有瞄了下 rust,又觉得 rust 好。不过学了两次次都放弃了。有点 CPP 的感觉,东西太多。目前一样犹豫要不要再试试 rust
    dbpe
        46
    dbpe  
       2021-04-13 09:05:55 +08:00
    反了吧....Go 想 C Rust 想 C++
    SWYou
        47
    SWYou  
       2021-04-13 09:11:58 +08:00 via iPhone
    其实有一点,说实话 go 学了一遍感觉就学了一门语言,rust 学了百分之五,感觉学到的语言外的东西就已经比 go 带来的多了。
    xieren58
        48
    xieren58  
       2021-04-13 09:22:55 +08:00
    rust.
    no1xsyzy
        49
    no1xsyzy  
       2021-04-13 09:29:58 +08:00
    说句,Go 更像 Python

    @xuanbg 这句话原本说的是花钱干的事儿。
    小孩有时间没钱,大人有钱没时间
    Narcissu5
        50
    Narcissu5  
       2021-04-13 09:31:14 +08:00
    如果希望对职业发展有帮助的话就 Go,你去招聘网站上搜索一下就知道这两者差距有多么的大了
    zone10
        51
    zone10  
       2021-04-13 09:53:52 +08:00
    当然全都要, Go 憨憨奈何好用, Rust 牛逼暂时用不上, Go 已经在微服务云计算开始发力, Rust 暂时只想到区块链. 学习 Rust 完全是兴趣使然, Go 应该能找到工作混口饭吃, 反正深入 Rust 某个特性都够学个 Go 了, 一起学又如何呢
    zjsxwc
        52
    zjsxwc  
       2021-04-13 09:58:39 +08:00
    什么鬼
    ```
    我感觉 Rust 更像 C,Go 像 C++
    ```


    Rust 明明是 C++的代替品
    Go 明明是 Java 的代替品

    rahuahua
        53
    rahuahua  
       2021-04-13 10:02:48 +08:00
    @LokiSharp 看市场就好,大厂用 Go 的很多啊,别误导别人了。Rust 只能用来做系统,做业务是不可能了。
    weiwenhao
        54
    weiwenhao  
       2021-04-13 10:07:04 +08:00
    go 像 c
    rust 像 c++
    Kilerd
        55
    Kilerd  
       2021-04-13 10:07:06 +08:00   ❤️ 1
    如果你不嫌弃资源老旧的话, 可以看看我做的 resource.rs

    (是在没空更新
    wellsc
        56
    wellsc  
       2021-04-13 10:17:22 +08:00
    语言只是工具,有什么好纠结的啊,重要的是你自己想实现什么,而不是用什么
    vison09
        57
    vison09  
       2021-04-13 10:22:35 +08:00
    rust 能找到工作吗
    mingsz
        58
    mingsz  
       2021-04-13 10:37:31 +08:00
    go rust 还需要发展发展
    magua
        59
    magua  
       2021-04-13 10:53:37 +08:00
    都选,工作用 Go,Rust 先自己玩。
    Keyes
        60
    Keyes  
       2021-04-13 10:59:56 +08:00 via iPhone
    @LokiSharp 内存的事儿怎么解 [捂脸]
    EPr2hh6LADQWqRVH
        61
    EPr2hh6LADQWqRVH  
       2021-04-13 11:01:40 +08:00
    劝你还是 C++吧。

    Rust 的宏大坑
    Go 直接没有宏
    xfcy
        62
    xfcy  
       2021-04-13 11:22:48 +08:00
    我也建议别二选一了,都学。
    sinux
        63
    sinux  
       2021-04-13 11:27:28 +08:00
    你就学就完事了
    opentrade
        64
    opentrade  
       2021-04-13 11:38:31 +08:00
    从你的心,不要看别人瞎喷
    JohnSmith
        65
    JohnSmith  
       2021-04-13 11:42:55 +08:00
    @avastms #61 rust 的宏哪里大坑了
    missdeer
        66
    missdeer  
       2021-04-13 11:48:12 +08:00   ❤️ 1
    说反了吧,Rust 是对 C++的改良,Go 是对 C 的改良
    Chingim
        67
    Chingim  
       2021-04-13 11:52:34 +08:00
    你搞反了
    rust 是 c++
    go 才是 c
    weixiangzhe
        68
    weixiangzhe  
       2021-04-13 11:56:43 +08:00 via iPhone
    先学 go,先学 rust 的话 基本没有经历学 go 了
    LokiSharp
        69
    LokiSharp  
       2021-04-13 12:02:04 +08:00   ❤️ 1
    @rahuahua 以找工作为目的的话我感觉除了 Java 其他语言都是垃圾。 业务直接用 Java 这种业界标准语言足够了,GC 语言性能上实际差异不大。
    而且学 Go 除了学个新的语法之外没啥作用,实际上会一两个语言的想用 Go 也是看个语法就能上手的。而学 rust 能补充点非 GC 语言的知识空白。
    A3
        70
    A3  
       2021-04-13 12:09:17 +08:00 via Android   ❤️ 3
    阿里刚被罚了 182 亿,你还敢二选一
    hello2060
        71
    hello2060  
       2021-04-13 12:14:00 +08:00
    不用挑,用 go 用 rust 的都能进 google, python 也行,java 也行,kotlin, c++, ruby, groovy, javascript 都行!
    stephenxiaxy
        72
    stephenxiaxy  
       2021-04-13 12:26:58 +08:00
    全都要
    rahuahua
        73
    rahuahua  
       2021-04-13 12:29:33 +08:00
    @LokiSharp 你认为什么并不重要,事实是字节滴滴腾讯百度都在用 Go 而, 除了业务云原生著名开源项目(docker 、k8s 、istio 、dapr....)大都是 Go 写的
    bequt
        74
    bequt  
       2021-04-13 12:50:30 +08:00
    GO 其实才是大范围未来,RUST 适合极端应用或者小东西,学习曲线不一样
    roundgis
        75
    roundgis  
       2021-04-13 12:55:48 +08:00 via Android
    20 年前我也糾結過類似的問題
    zhengxiaowai
        76
    zhengxiaowai  
       2021-04-13 13:05:22 +08:00
    @DinoStray 常规水平吧??客户端不太懂,我看钉钉 275M 飞书 274M 企业微信 164M,企业微信功能少一些。。。
    LokiSharp
        77
    LokiSharp  
       2021-04-13 13:09:52 +08:00
    @rahuahua 然而招聘依旧以 Java 为主。
    LokiSharp
        78
    LokiSharp  
       2021-04-13 13:19:44 +08:00
    @rahuahua 现在的行情会 Java 这类带 GC 的转其他带 GC 的语言只有语法的区别,没什么压力。要转 C/C++ Rust 这类非 GC 语言概念上就不一样,得从头学底层。
    所以有时间的话学一个 GC 语言 一个非 GC 语言作为技术储备是最合适的。
    EPr2hh6LADQWqRVH
        79
    EPr2hh6LADQWqRVH  
       2021-04-13 13:20:26 +08:00
    @JohnSmith 难理解难测试难维护, 人家宏是字符串模版,他是操作 AST,除了看起来更高大上了,其他都是缺点。
    jitongxi
        80
    jitongxi  
       2021-04-13 13:29:26 +08:00
    go 主力,rust 自己的项目跑着玩。
    rust 目前国内主流不了.
    zjsxwc
        81
    zjsxwc  
       2021-04-13 13:33:40 +08:00   ❤️ 1
    @avastms

    “声明宏”就是字符串模版替换啊
    “过程宏”才是修改 AST

    > `人家宏是字符串模版`
    你用“声明宏”不就好了,除非搞框架加语法才去玩“过程宏”。
    padeoe
        82
    padeoe  
       2021-04-13 13:34:34 +08:00
    禁止二选一,小心罚你 182 亿[手动狗头]
    INCerry
        83
    INCerry  
       2021-04-13 13:37:37 +08:00
    C++
    chiuan
        84
    chiuan  
       2021-04-13 14:06:55 +08:00
    肯定 golang 库太多了而且语法严谨哇
    pythonee
        85
    pythonee  
       2021-04-13 14:20:15 +08:00
    看现在 go 生态好点,你能找到别人一起讨论,打游戏还打热门游戏呢
    EPr2hh6LADQWqRVH
        86
    EPr2hh6LADQWqRVH  
       2021-04-13 14:27:30 +08:00
    @zjsxwc 他俩都是 AST,都非常难以理解。

    稍微像点样的项目都会用到宏,像 Java 里面的注解,Python 的装饰器。

    而 Rust 的宏这么反人类,这就限制了它的高级应用
    DinoStray
        87
    DinoStray  
       2021-04-13 14:29:11 +08:00   ❤️ 1
    @zhengxiaowai 飞书 苹果电脑客户端 857.3MB
    wellsc
        88
    wellsc  
       2021-04-13 15:10:47 +08:00
    @DinoStray 不是 928 吗
    shawn102400
        89
    shawn102400  
       2021-04-13 15:35:50 +08:00
    rust 吧,go 的上限太低了。
    coolmenu
        90
    coolmenu  
       2021-04-13 16:07:18 +08:00
    @DinoStray 是不是包了一个 electronjs,这么大个!
    march1993
        91
    march1993  
       2021-04-13 16:13:02 +08:00
    奇耻大辱。。go 明明是 C 流派,rust 才是 C++ 流派。。
    darknoll
        92
    darknoll  
       2021-04-13 16:20:25 +08:00
    学 c++
    zhengxiaowai
        93
    zhengxiaowai  
       2021-04-13 16:20:55 +08:00
    @DinoStray 你咋看的我官网下载的 dmg 200 多
    NealLason
        94
    NealLason  
       2021-04-13 17:12:37 +08:00
    没人觉得 rust 的语法太奇葩了吗。。。
    cgpiao
        95
    cgpiao  
       2021-04-13 17:16:20 +08:00 via iPhone
    看不到 rust 的未来,只要 C 的地位不动摇,Cpp 也不会动摇的。
    charlie21
        96
    charlie21  
       2021-04-13 17:42:51 +08:00
    sounds like you had a choice
    DinoStray
        97
    DinoStray  
       2021-04-13 17:56:24 +08:00
    @zhengxiaowai 去官网确认了下, 的确 200 多了. 我 3 月 17 日下载是 800 多, 当时在少数派上做了反馈, 应该是优化了吧
    ldimple
        98
    ldimple  
       2021-04-13 18:13:19 +08:00
    不学 java 应届靠这两语言都找不到工作
    catchexception
        99
    catchexception  
       2021-04-13 19:12:54 +08:00
    学 Python 啊!
    catchexception
        100
    catchexception  
       2021-04-13 19:29:11 +08:00
    我倒是觉得,Rust 是 21 世纪的 C 。。。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5550 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 08:00 · PVG 16:00 · LAX 00:00 · JFK 03:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.