准备从 Go 和 Rust 二选一,求建议 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Kasumi20
V2EX    程序员

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

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

    从代码风格来看,目前喜欢的是 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 iPhne
    没有枪没有炮 全部都靠自己造,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
    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
    td width="auto" valign="top" align="left">
        88
    wellsc  
       2021-04-13 15:10:47 +08:00
    @DinoStray 不是 928 吗
    wellsc
    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     Solana     989 人在线   最高记录 6679   &bsp;   Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 18:55 PVG 02:55 LAX 10:55 JFK 13:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86