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

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

  •  1
     
  •   ericgui · 64 天前 · 7354 次点击
    这是一个创建于 64 天前的主题,其中的信息可能已经有所发展或是发生改变。
    主要是觉得 Go 很怪异,
    Rust 的包管理似乎非常靠谱,比 Go 强了不止 62%
    实在很不习惯 Go 乱七八糟的包管理
    79 回复  |  直到 2019-07-19 02:13:09 +08:00
        1
    zacharyjia   64 天前   ♥ 2
    反正我用 c++的时候,觉得 go 的包管理其实也不是那么烂
        2
    janxin   64 天前   ♥ 7
    Java 了解一下,世界上最好的语言
        3
    pmispig   64 天前
    rust 是 javascript 的作者弄得。。感觉和写 js 一样狗屎的体验,特别是异步
        4
    agdhole   64 天前
    rust 和 golang 目标用户都不是一个吧
        5
    vsitebon   64 天前
    @pmispig Rust 语言原本是 Mozilla 员工 Graydon Hoare 的私人项目,Brendan Eich 是 JavaScript 主要创造者与架构师,只能说 Rust 是 Mozilla 基金会的项目吧
        6
    fredshao   64 天前
    不学捣鼓 C/C++,Rust 是目前一个不错的选择
        7
    firebroo   64 天前   ♥ 1
    反正我用 c++的时候,觉得 go 的包管理其实也不是那么烂
        8
    ericgui   64 天前
    @pmispig 这正是我觉得 rust 不错的一个重要原因。。。。。
        9
    abel1989   64 天前
    go mod 了解一下
        10
    infun   64 天前
    为什么是 62%?
        11
    ericgui   64 天前
    @infun 一个梗
        12
    impl   64 天前 via Android
    轻装上阵:go
    全副武装:rust
        13
    loading   64 天前 via Android
    go 感觉还行,rust 没接触,现在我最反感 npm 了。
        14
    liulaomo   64 天前   ♥ 1
    转发:

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

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

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

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

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

    68 楼
        70
    afuler   63 天前 via Android
    facebook 的 libra 据说是用 rust 写的。
        71
    ericgui   63 天前 via Android
    @afuler 不是据说
        72
    mattx   62 天前
    定位不同吧, go 其实是蚕食部分 java c++份额, rust 定位应该是更底层的(系统级), 效率更高, 可以取代 c++ c 这样的.
        73
    Cellei   62 天前
    都在说 Rust 学习曲线陡峭 入门难,到底多难,一直没时间真正去学
    不过生态系统往往比语言本身重要
        74
    kiddult   62 天前
    @Cellei 大概是你目前接触的最烧脑的一门语言,主要是所有权那个概念太反常识了,一般语言根本没有,最后新手写代码,大部分不是调试, 是编译编译不过。。。。。
        75
    Comdex   62 天前 via Android
    有没大佬关注过 D 语言的,感觉啥功能都有,啥都能做
        76
    ericgui   62 天前
    @Comdex 据说上海有个葡萄科技
        77
    Cellei   62 天前
    @kiddult #74 所有权?这个听都没听过😢,编译都不过,很打击信心啊
        78
    kiddult   62 天前
    @Cellei 就是上面 dodo2012 说的,借用 borrow,所以才说曲线太陡了,不然感觉干掉 golang 没啥问题,那群人也意识到了这问题,现在貌似比开始版本简化了不少
        79
    reus   37 天前
    @kiddult 放屁,所有权的概念 C/C++就有,只不过没有做进语言。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   791 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 22:25 · PVG 06:25 · LAX 15:25 · JFK 18:25
    ♥ Do have faith in what you're doing.