• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX  ›  程序员

相比 Go, Rust 是不是也是一个好选择呢?

  •  1
     
  •   ericgui · Jun 21, 2019 · 23336 views
    This topic created in 2699 days ago, the information mentioned may be changed or developed.
    主要是觉得 Go 很怪异,
    Rust 的包管理似乎非常靠谱,比 Go 强了不止 62%
    实在很不习惯 Go 乱七八糟的包管理
    83 replies  •  2020-01-12 16:16:24 +08:00
    unifier
    unifier
    Jun 21, 2019❤️3
    1
    反正我用 c++的时候,觉得 go 的包管理其实也不是那么烂
    janxin
    janxin
    Jun 21, 2019❤️7
    2
    Java 了解一下,世界上最好的语言
    pmispig
    pmispig
    Jun 21, 2019
    3
    rust 是 javascript 的作者弄得。。感觉和写 js 一样狗屎的体验,特别是异步
    agdhole
    agdhole
    Jun 21, 2019
    4
    rust 和 golang 目标用户都不是一个吧
    vsitebon
    vsitebon
    Jun 21, 2019
    5
    @pmispig Rust 语言原本是 Mozilla 员工 Graydon Hoare 的私人项目,Brendan Eich 是 JavaScript 主要创造者与架构师,只能说 Rust 是 Mozilla 基金会的项目吧
    129ykx733D016U2n
    129ykx733D016U2n
    Jun 21, 2019
    6
    不学捣鼓 C/C++,Rust 是目前一个不错的选择
    firebroo
    firebroo
    Jun 21, 2019❤️1
    7
    反正我用 c++的时候,觉得 go 的包管理其实也不是那么烂
    ericgui
    ericgui
    OP
    Jun 21, 2019
    8
    @pmispig 这正是我觉得 rust 不错的一个重要原因。。。。。
    abel1989
    abel1989
    Jun 21, 2019
    9
    go mod 了解一下
    GlobalNPC
    GlobalNPC
    Jun 21, 2019
    10
    为什么是 62%?
    ericgui
    ericgui
    OP
    Jun 21, 2019
    11
    @infun 一个梗
    impl
    impl
    Jun 21, 2019 via Android
    12
    轻装上阵:go
    全副武装:rust
    loading
    loading
    Jun 21, 2019 via Android
    13
    go 感觉还行,rust 没接触,现在我最反感 npm 了。
    liulaomo
    liulaomo
    Jun 21, 2019❤️1
    14
    转发:

    If you want to make love wearing nothing, choose C.

    If you want to make love wearing a condom, choose Go.

    If you want to make love wearing a spacesuit, choose Rust.
    dodo2012
    dodo2012
    Jun 21, 2019
    15
    rust 在借用和所有权上就要搞晕一群人,入门太陡峭,昨天还看 reddit 上有个说又试着学习了一次,感觉还是太难了。go 的话感觉拿起来很快就上手了。
    MeteorCat
    MeteorCat
    Jun 21, 2019 via Android
    16
    如果没深入学 c/c++,可以考虑用学习 rust ;我以前用过一点写自己个人的 api,但是想搞个全局单例感觉处处被制约
    rb6221
    rb6221
    Jun 21, 2019 via iPhone❤️1
    17
    挺喜欢 rust 的气质 但是感觉用途范围好像不太广,而且国内资料挺少的(相对而言)。
    yemoluo
    yemoluo
    Jun 21, 2019
    18
    最近正在努力做 rust 的笔记,差不多快完成了

    那个,rust 语言国内肯定比不上 go , 这个,没啥好说的。
    trait
    trait
    Jun 21, 2019❤️1
    19
    rust go 没有可比性
    语言特性上来说 rust 更接近 haskell 函数式家族,go rob 都说了给刚毕业的 C/C++写不利索的学生准备的,短平快
    trait
    trait
    Jun 21, 2019
    20
    @pmispig ???? rust 跟他有啥关系
    Phariel
    Phariel
    Jun 21, 2019
    21
    golang 要什么包管理 直接 go get from github 一把梭!!!
    😂😂😂😂
    hst001
    hst001
    Jun 21, 2019
    22
    脱离实际作比较就是耍流氓
    SuperMild
    SuperMild
    Jun 21, 2019
    23
    Rust 确实很优秀,上手会有点难度(毕竟对标 C++)但习惯了也没什么。

    Rust 与 Go 的一个重大区别是 Rust 没有 GC,写程序的时候必须处理内存回收问题(虽然有一套特殊的、优秀的方案,但还是要处理),在很多不要求那么高性能的情况下,通常你不会乐意在这方向耗费精力。

    Go 可能不强大(没泛型)、不优雅( if err != nil、太少语法糖等 ),但 Go 在 “易学易用”与“高性能” 之间找到了一个绝佳的平衡点,很多情况下 Go 就是恰好够用。
    Cellei
    Cellei
    Jun 21, 2019
    24
    有了 GC 不应该是一种进步吗?为什么还会出现 Rust 这种新语言? 是不是倒退
    有了 GC 应该继续优化 GC 就好了
    Mohanson
    Mohanson
    Jun 21, 2019 via Android❤️9
    25
    rust 包管理抢注包名情况很严重,几乎所有加密算法的名字都被一个组织抢注了,但恶心的是他们许多库根本没提交代码。我去年实现一个算法库,就发现被人占了位置但 tm 没代码,最后只好加个前缀解决。等你开始成为一个贡献者而不是索取 者,就知道中心化包管理有多恶心了。
    airdrop
    airdrop
    Jun 21, 2019
    26
    看应用场景吧,很多区块链项目就是用 Rust 写的,包括最近很火的 Facebook libra 项目
    xxiu
    xxiu
    Jun 21, 2019
    27
    @Mohanson
    我理解的中心化的包都应该有一个拥有者前缀才行,要不然完全是乱来。
    super119
    super119
    Jun 21, 2019 via Android
    28
    Rust 编译通过代码就能 run 的很好,这种感觉太棒了!
    zjsxwc
    zjsxwc
    Jun 21, 2019 via Android
    29
    一句话,用 rust 之前要现有 c++经验,你才会真正会用 rust
    ech0x
    ech0x
    Jun 21, 2019
    30
    russian
    russian
    Jun 21, 2019
    31
    c++快上 module 了
    realkenshinji
    realkenshinji
    Jun 21, 2019 via iPhone
    32
    @pmispig 张口就来系列...
    trait
    trait
    Jun 21, 2019 via iPhone
    33
    @Cellei go 才叫倒退,无视这么多年的语言研究成果,残缺不全的设计还嘴硬简洁,1.2 才有所改变
    blless
    blless
    Jun 21, 2019 via Android
    34
    @trait 能不能问问具体是啥倒退,真想知道。虽然网上喷 go 的很多,反正用起来也觉得没啥问题。
    mengzhuo
    mengzhuo
    Jun 21, 2019❤️1
    35
    @blless 世上只有两种语言……一种被人喷
    Sparetire
    Sparetire
    Jun 21, 2019 via Android
    36
    @mengzhuo
    总是有人喜欢说,世界上只有两种语言,然而他们却从不告诉你为什么只有两种,为什么不是三种四种
    简短和押韵的语句,总是容易使人放弃思考然后还觉得很有道理
    FireCat
    FireCat
    Jun 21, 2019
    37
    不要过于纠结编程语言本身的好坏,要关注系统架构本身。
    blless
    blless
    Jun 21, 2019 via Android
    38
    @mengzhuo 请问啥语言没被喷过,
    polebug
    polebug
    Jun 21, 2019
    39
    真是不习惯 rust 那种风格 没事写小玩具还行 让我天天开发写这玩意 可能要命了
    minami
    minami
    Jun 21, 2019
    40
    @liulaomo #14 If you don't need make love, choose C++ (逃~
    mengzhuo
    mengzhuo
    Jun 21, 2019 via iPhone
    41
    @Sparetire 布尔值哪来第三种情况。
    mengzhuo
    mengzhuo
    Jun 21, 2019 via iPhone
    42
    @blless 这里有个幸存者偏差。
    useben
    useben
    Jun 21, 2019
    43
    @trait
    现在都要到 2.0 了,你还在说 1.2。。。。
    trait
    trait
    Jun 21, 2019 via iPhone
    44
    @useben 语体教??
    binux
    binux
    Jun 21, 2019 via iPhone
    45
    @blless 没人知道 /用的语言
    Sparetire
    Sparetire
    Jun 21, 2019
    46
    @mengzhuo 如果是布尔值, 那意味着只想讨论有没有人喷咯, 而不想讨论有没有人用了, 如果觉得这样在一个维度讨论也有意义的话, 那的确可以是布尔值
    releaseme
    releaseme
    Jun 21, 2019
    47
    @Cellei 自动 GC 只是一种取舍权衡,在性能上讲,自动 GC 的语言一般会被手动 GC 的语言吊起来打,也就是说性能来讲 go / java / swift 这些是属于一个梯队的,Rust / C++ / C 属于一个梯队,也并不是像 gopher 吹的那样 go 能媲美 c 的性能。等什么时候自动 GC 性能能超过或者跟手动 GC 性能差不多的时候,我再来入 Golang 神教。
    infra
    infra
    Jun 21, 2019
    48
    Rust 还是蛮有生机的,比如渲染 SVG 的库 librsvg2 已用 Rust 重写,
    目前 Debian 中有超过 500 个来自 Rust 生态的软件包,约占 4 % 参考: https://www.debian.cn/archives/3149
    ericgui
    ericgui
    OP
    Jun 21, 2019
    49
    @FireCat 这个有道理 谢谢
    noqwerty
    noqwerty
    Jun 21, 2019 via Android
    50
    看你要做什么啊,我写点简单的 API 用 golang 感觉很舒服,go mod 比之前的包管理成熟多了
    midasplus
    midasplus
    Jun 21, 2019 via Android
    51
    认识的几个 c++水平非常强的大佬都对 rust 非常有兴趣
    Buffer2Disk
    Buffer2Disk
    Jun 22, 2019
    52
    从 java 开始学习 go,最近在研究,被 go 这个包管理给震惊了,茫然不知所措怎么搞版本管理的。。。
    听说新版本搞了个 mod,还没用上。。。。
    ericgui
    ericgui
    OP
    Jun 22, 2019
    53
    @Buffer2Disk 我其实还被它那个 src bin 什么的搞晕了。为什么 go get 的包不在本项目目录,搞得晕死了。我是写 php 和 js 的,这依赖不就是在项目下面某个目录嘛,比如 vendors,比如 node_modules,搞得很晕。
    leopku
    leopku
    Jun 22, 2019 via iPhone
    54
    @Buffer2Disk 不用 mod,用 dep 也是非常溜,何来无处下手?
    wangxiaoaer
    wangxiaoaer
    Jun 22, 2019 via Android
    55
    @Mohanson Maven 表示你说的都是啥玩意儿?
    hoyixi
    hoyixi
    Jun 22, 2019
    56
    程序员早晚把自己坑死完事儿~
    tt0411
    tt0411
    Jun 22, 2019
    57
    日常引战...

    PHP 才是最好的语言
    dixeran
    dixeran
    Jun 22, 2019 via Android
    58
    如果搞嵌入式,选 C ( rust )还是 java ( go )?如果是做后端开发呢?
    这俩语言所在的层次都不一样,咋比较。
    halk
    halk
    Jun 22, 2019❤️1
    59
    先看需求吧,Rust 抢占的是 cpp 的市场,go 抢占的更多的是 Java 的市场
    生态优先
    karllynn
    karllynn
    Jun 22, 2019
    60
    go mod 以后,包管理已经不是痛点了,剩下主要就是泛型和错误处理。不过这两个没有也不是不能用,就是啰嗦一点。
    lowman
    lowman
    Jun 22, 2019
    61
    python 了解一下, 把其他所有语言都当做垃圾的语言......大家能不能使用一句话, 让 v2 噪起来, come on baby.......
    fundebug
    fundebug
    Jun 22, 2019
    62
    我咋感觉 Java 的包管理挺头疼的,发布 Maven 包麻烦地要死。。。
    vagranth
    vagranth
    Jun 22, 2019 via Android
    63
    现在写 rust 总算开始有点感觉了,似乎跨过了第一个坎,暂时还没看到第二个坎
    FrankHB
    FrankHB
    Jun 22, 2019
    64
    @Cellei 钦定甩不掉的全局 GC 还能标榜通用,鼓励写蠢代码,什么时候还变成进步了?
    明明是 resources-bound 还在乎 deterministic 的代码,敢依赖 GC 还不另外给文档写清楚所有权,结果基本上就是在要求审计代码逻辑的读者跨过程人肉 GC,简直 mdzz。
    还有你都占了到处能 GC 的大便宜了,居然还不提供 proper tail recursion,这是什么精神?
    FrankHB
    FrankHB
    Jun 22, 2019
    65
    @releaseme 不对。合理的 GC 本质上是一种以响应和 /或空间使用效率换取吞吐量的优化。高性能的 GC 可以在特定领域上吊打一般人写的显式手动管理。
    只是很遗憾,现实是:
    1.大部分用户都没搞清楚 GC 应该在什么时候用,基本是怎么烂怎么来(……然后甩锅给最终用户调优)。
    2.GC 原则上做不到接近最优化的通用高性能。依赖全局 GC 而无法分清资源边界的代码在关键部分被局部的池吊打是很容易的事情——因为前者实在不适合人类来优化,而机器又基本无法理解哪里能极端地优化。
    3.现实的 GC 的实现没有一个能接近在响应、吞吐量和资源使用自适应最优的。非要说的话,只有硬件才适合做这种事情。
    4.……众所周知,Go 的 GC 的实现质量在一众默认 GC 的语言的实现中是比较次等的。
    luozic
    luozic
    Jun 22, 2019 via iPhone
    66
    聪明人多不多,多就上 rust,不多上个啥啊…
    v2exe2v
    v2exe2v
    Jun 23, 2019
    67
    62 是什么梗
    ericgui
    ericgui
    OP
    Jun 23, 2019
    69
    @infun

    68 楼
    afuler
    afuler
    Jun 23, 2019 via Android
    70
    facebook 的 libra 据说是用 rust 写的。
    ericgui
    ericgui
    OP
    Jun 23, 2019 via Android
    71
    @afuler 不是据说
    mattx
    mattx
    Jun 23, 2019
    72
    定位不同吧, go 其实是蚕食部分 java c++份额, rust 定位应该是更底层的(系统级), 效率更高, 可以取代 c++ c 这样的.
    Cellei
    Cellei
    Jun 23, 2019
    73
    都在说 Rust 学习曲线陡峭 入门难,到底多难,一直没时间真正去学
    不过生态系统往往比语言本身重要
    kiddult
    kiddult
    Jun 23, 2019
    74
    @Cellei 大概是你目前接触的最烧脑的一门语言,主要是所有权那个概念太反常识了,一般语言根本没有,最后新手写代码,大部分不是调试, 是编译编译不过。。。。。
    Comdex
    Comdex
    Jun 23, 2019 via Android
    75
    有没大佬关注过 D 语言的,感觉啥功能都有,啥都能做
    ericgui
    ericgui
    OP
    Jun 23, 2019
    76
    @Comdex 据说上海有个葡萄科技
    Cellei
    Cellei
    Jun 23, 2019
    77
    @kiddult #74 所有权?这个听都没听过😢,编译都不过,很打击信心啊
    kiddult
    kiddult
    Jun 23, 2019
    78
    @Cellei 就是上面 dodo2012 说的,借用 borrow,所以才说曲线太陡了,不然感觉干掉 golang 没啥问题,那群人也意识到了这问题,现在貌似比开始版本简化了不少
    reus
    reus
    Jul 19, 2019
    79
    @kiddult 放屁,所有权的概念 C/C++就有,只不过没有做进语言。
    yamasa
    yamasa
    Oct 29, 2019
    80
    @kiddult compile 通不过就对了,rust 就是巴不得所有错编译期能给你就给你了,也算是一种挺独特的设计哲学。
    yamasa
    yamasa
    Oct 29, 2019
    81
    @Cellei compile 期不让你过和让你过然后上 production boom,选哪个?😀😀
    firefox12
    firefox12
    Nov 9, 2019
    82
    golang 可以开发 快速 而且变化很快的产品,可以接受 gc 带来的痛苦。更好的 java 而已。

    rust 可以开发变化不大,但是非常严谨的底层服务。 会 c++ 的学 rust 觉得终于把 c++ 这匹野马给驯服了,可惜再也不飘逸了,没有灵魂了。 编译解决了心智困难。 值得的!
    luojia65
    luojia65
    Jan 12, 2020
    83
    @pmispig 这是个谣言,最初是轮子哥误传造成的,rust 和 js 的作者是两批人
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2381 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 214ms · UTC 12:14 · PVG 20:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.