V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
vincent7245
V2EX  ›  程序员

一些疑惑,为什么 rust 干不过 go 呢

  •  2
     
  •   vincent7245 · 2023-06-17 17:28:50 +08:00 · 18743 次点击
    这是一个创建于 558 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先叠 buff

    • 本人主语言 java ,平时也用 c++ 简单的做一些框架的二开
    • c/c++ 水平一般,没做过大型项目
    • rust 水平一般,只做过简单的中间件,一千行代码左右,没做过大型项目
    • 用过 go ,但是不喜欢,感觉太简陋了

    观点

    个人感觉 rust 的难点就是理解其变量所有权、引用、借用的思想,这一关过了也就没什么难度了。而且 rust 的枚举、泛型、面向对象的特性要比 go 完善很多

    所以为什么 rust 不如 go 火呢

    随便骂吧

    个人愚见,不同观点可以随便说,别骂的太难听就行

    122 条回复    2024-11-14 14:28:36 +08:00
    1  2  
    encro
        1
    encro  
       2023-06-17 17:30:29 +08:00   ❤️ 3
    世界上流行的东西都是简单的,容易获得的。
    bruce0
        2
    bruce0  
       2023-06-17 17:31:58 +08:00
    1. 太复杂
    2. 缺个好爹
    whevether
        3
    whevether  
       2023-06-17 17:33:52 +08:00   ❤️ 3
    因为不是 google 的亲儿子。 语言要有大厂背书+开源,两者缺一不可。然后生态起来了也就有了先发优势。 要说优美还是 c#.但是这玩意虽然背靠大厂但是也被大厂坑惨了。 缺少了早期开源这一环。生态落后了。
    TWorldIsNButThis
        4
    TWorldIsNButThis  
       2023-06-17 17:35:38 +08:00 via iPhone
    不方便糊💩
    liuhan907
        5
    liuhan907  
       2023-06-17 17:38:06 +08:00
    因为大多数人学不会+大多数公司压根不在乎 Rust 提供的好处。
    Crawping
        6
    Crawping  
       2023-06-17 17:41:29 +08:00
    大多数人赚薪水需要的技能是解决问题, 而不是了解语法有多高级
    不管是简单还是简陋, 已经解决问题了为什么还要去了解复杂"高级"

    密集 IO 或计算 我用纯 C (C++都不用) , 平时糊💩用 golang 简单快捷.
    rust 在我用来吃饭的领域暂时没找到要用的理由
    pengtdyd
        7
    pengtdyd  
       2023-06-17 17:41:36 +08:00
    太底层了,不适合写应用。
    totoro52
        8
    totoro52  
       2023-06-17 17:49:48 +08:00
    同意一楼的说法

    一门语言足够普通,简单,那他势必会流行,如果一个语言入门很难,或者看起来很神秘的时候, 从这点就可以吓走很多人。
    mooyo
        9
    mooyo  
       2023-06-17 17:50:51 +08:00
    powershell 这么强大,为什么用的人不如 bash 多呢?一样的道理

    如果 Rust**足够**好用,自然会有人主动选择去替换掉现有的技术栈。Rust 相比 Go 又解决了什么问题?
    Jirajine
        10
    Jirajine  
       2023-06-17 17:50:54 +08:00   ❤️ 3
    aysnc rust is a nightmare.
    首先 rust 和 go 的设计目标差别很大,而且现在 rust 也开始走 cpp 的老路了。
    很快 rust 就会超越 cpp ,在复杂度和缝合程度上。
    Crawping
        11
    Crawping  
       2023-06-17 17:55:19 +08:00
    @Crawping
    BTW, 各个技术论坛或者自媒体
    关于 Rust 总是 Rust 重写了 XXX 嗨 yeah! XX 引入了 Rust 支持 嗨 yeah!
    关于 Golang 则是 XXX 一把梭 xx 天精通 golang xx 领域
    qiumaoyuan
        12
    qiumaoyuan  
       2023-06-17 17:58:34 +08:00
    我其实一直没明白为什么工具需要干来干去的?无论是笔记本电脑、键盘、手机、操作系统、开发语言、编辑器,都能干起来,最终都发展成小孩吵嘴。

    另外,用的人多就是好么?
    yuhangch
        13
    yuhangch  
       2023-06-17 18:02:26 +08:00
    现在趋势 rust 更猛吧,不过确实曲线太陡峭~
    LeegoYih
        14
    LeegoYih  
       2023-06-17 18:06:10 +08:00
    go 有手就能写
    Ericcccccccc
        15
    Ericcccccccc  
       2023-06-17 18:07:37 +08:00   ❤️ 1
    语言流行需要能干活, 干活主要看生态.
    Alias4ck
        16
    Alias4ck  
       2023-06-17 18:08:04 +08:00   ❤️ 4
    今年的 stackoverflow 总结
    https://survey.stackoverflow.co/2023/#most-popular-technologies-language

    我看到的也是 go 和 rust 几乎是平分秋色,也就专业开发者里面 go 的选择会比 rust 多,而想学习 rust 的人远远超过 go


    在最受推崇的编程语言中 rust 占据榜首
    https://survey.stackoverflow.co/2023/#section-admired-and-desired-programming-scripting-and-markup-languages


    我不知道为啥您为啥会说 rust 干不过 go
    ispinfx
        17
    ispinfx  
       2023-06-17 18:10:28 +08:00
    写过 Rust 以后再也不想写 Python 了
    kiwi95
        18
    kiwi95  
       2023-06-17 18:20:59 +08:00 via Android
    > 难点就是理解其变量所有权、引用、借用的思想,这一关过了也就没什么难度了。

    且不说过了这一关还有很多难的地方,就光所有权这关大部分人都过不了
    roundgis
        19
    roundgis  
       2023-06-17 18:23:58 +08:00 via Android
    Go 隨便看看就可以上手

    Rust 需要系統學習
    BeautifulSoap
        20
    BeautifulSoap  
       2023-06-17 18:25:39 +08:00 via Android
    rust 这东西有多少人能用的好啊。
    cmdOptionKana
        21
    cmdOptionKana  
       2023-06-17 18:27:10 +08:00
    古典乐 /歌剧 (在流行度上) 为什么干不过流行音乐(口水歌)? 因为曲高和寡.
    DeWjjj
        22
    DeWjjj  
       2023-06-17 18:38:36 +08:00
    学过用过就知道,这玩意生态不太行。
    DeWjjj
        23
    DeWjjj  
       2023-06-17 18:40:19 +08:00
    当我一行命令在调用包的时候,你还在考虑使用这个包要做一点二开的需求。
    xtreme1
        24
    xtreme1  
       2023-06-17 18:43:47 +08:00
    我觉得吧, 编程语言只要达到了一个水平线之上, 即不至于读起来很困难
    那流行与否和语言本身的特性没有一丢丢丢丢丢关系.
    adoal
        25
    adoal  
       2023-06-17 18:44:14 +08:00
    Rust 的学习难度对大多数程序员来说是肉身可感的。但是带来的好处( zero cost abstraction 、memory safety 等)则是很难变现为绩效的。

    前些日子看到新闻说用 Rust 重写的 sudo/doas ,有人评论:这才是最该用 Rust 重写的。

    用 Rust 重写 coreutils 、重写 shell 下的命令行工具、重写编辑器,虽然也有实用价值,但都不是“选择 Rust”的 must be 场景。所以有人觉得 Rust 社区很热衷用重写各种东西来刷存在感,很无聊。而 sudo/doas 这类对安全要求高的基础设施,则是能发挥 Rust 价值的主战场。可惜这个主战场太小了。甚至,被认为无聊的那些东西都算上,战场还是太小了。绝大多数程序员还是写业务逻辑的。Go 虽然有云原生这个基础设施领域的成功战场(尽管跟 Rust 所针对的“系统软件”领域相比已经偏上层了),但毕竟以 Go 的入门难度来说,也是可以被广大阿狗阿猫程序员拿来填空业务逻辑的对吧。
    adoal
        26
    adoal  
       2023-06-17 18:46:05 +08:00   ❤️ 1
    以前有个七牛的人给我安利 Go ,说“会 Python 的人,只要看看 Go by Examples 就能上手干活了”……
    roundgis
        27
    roundgis  
       2023-06-17 18:50:27 +08:00 via Android
    @adoal 有不少人拿 go 寫 erp 之類的東西 雖然不如 java 順手 也還可以湊合 招人也不難

    我可沒見過有人用 rusr 寫 erp 的
    jklove123bai
        28
    jklove123bai  
       2023-06-17 18:53:48 +08:00
    复杂的工艺品都易碎,石头都是几十万年的寿命
    hahadaxigua834
        29
    hahadaxigua834  
       2023-06-17 19:07:54 +08:00   ❤️ 1
    因为 go 是 google 的聪明人用来解决大问题的 xd
    liuidetmks
        30
    liuidetmks  
       2023-06-17 19:15:08 +08:00
    门槛搞,不好招人,招到人可替换性也不强
    janus77
        31
    janus77  
       2023-06-17 19:21:42 +08:00
    go 有杀手级项目了,rust 目前还没有,虽然很多大型项目已经在用了,但是都是一部分替换更新而已,没有纯 rs 的杀手级项目。
    go 的社区氛围是比 rs 好的,谷歌玩着一套非常熟练
    再就是 rs 的学习曲线很陡
    Finnn
        32
    Finnn  
       2023-06-17 19:52:15 +08:00   ❤️ 1
    流行的不代表好的,js 可太烂了
    546L5LiK6ZOt
        33
    546L5LiK6ZOt  
       2023-06-17 20:05:17 +08:00
    21 年时自学 rust ,在做一些练习时遇到几个编译器的 bug ,关于泛型和生命周期的。当时直接把我劝退了。我很难相信一门发展了多年的语言,居然可以让初学者遇到 bug 。本来语法就有点复杂,在编译报错时,往往第一反应是自己写得有问题,排查大半天发现 github 上有相关的 issuse 。。。。
    duke807
        34
    duke807  
       2023-06-17 20:09:25 +08:00
    ”大家怎么看“Rust 基金会就更新的商标政策征求反馈意见”
    https://www.v2ex.com/t/931670

    rust 语法太丑陋,开发效率也极低
    shore507
        35
    shore507  
       2023-06-17 20:10:45 +08:00
    因为 phper 们喵一眼就能上手 golang
    nightwitch
        36
    nightwitch  
       2023-06-17 20:14:52 +08:00 via Android
    rust 没什么杀手级应用,语言发展和生态是互相反哺,螺旋上升的。JavaScript 这种残废语言因为用的多了,也有人往上一直打补丁。
    libinglong9
        37
    libinglong9  
       2023-06-17 20:19:02 +08:00
    用过很多种语言了,我只能这么说,哪个方便我用哪个。我没用过 rust ,但只要 rust 比 golang 方便,我会用的。用户往往是用脚投票的。
    jjx
        38
    jjx  
       2023-06-17 20:19:25 +08:00   ❤️ 5
    现在的 rust 吹好比 n 年前的 go 吹

    rust 都吹来写 web 应用了, 服!

    老实说,系统级编程zig要比rust有意思多了
    darkengine
        39
    darkengine  
       2023-06-17 20:31:47 +08:00
    应该是用 /学 Rust 的难度比用 Rust 带来的好处大太多,没有动力。
    junkun
        40
    junkun  
       2023-06-17 20:36:07 +08:00   ❤️ 1
    其实 rust 比一般人想象的流行很多,比如你一旦装了 vscode 就使用了 rust 写的 ripgrep ,可以说是基础软件了。但是做基础软件的人有多少,一般人都是拿来就用的。说杀手应用比如 docker ,大部分人都是关心 docker 怎么配置的,自己改 docker 代码的有多少。
    daliusu
        41
    daliusu  
       2023-06-17 20:37:37 +08:00
    rust 你们写起来不难受吗? 写个 tauri ,那个所有权转移,给我转麻了,尤其是各种库太少了,go 我不了解,但是 node 和 python 巨多的库 rust 都要自己实现
    wangYQ
        42
    wangYQ  
       2023-06-17 20:41:40 +08:00
    rust 上手的难度不小,需要系统的学习,并且写起来艺术感觉很强,但是想流行 需要推广啊。go 的推广多强
    gogorush
        43
    gogorush  
       2023-06-17 20:44:01 +08:00
    rust 内部现在还在打架呢 先看看情况
    lysS
        44
    lysS  
       2023-06-17 20:49:15 +08:00
    @Alias4ck 想而已,先学了再说
    hefish
        45
    hefish  
       2023-06-17 20:49:51 +08:00
    明明 php 才是最好的语言。
    WuSiYu
        46
    WuSiYu  
       2023-06-17 20:50:11 +08:00
    感觉这俩语言差异还是很大的,所以使用场景也有差异,到你感觉上 go 比 rust 火很多。

    首先 go 是个带自动垃圾回收的语言,go 的另一个特点是其对协程有很好的支持,所以场景也比较面相网络应用,比如后端,或是一些别的服务端这些网络 I/O 密集的应用,所以有人会称其为“互联网版的 C”、“C 一样的 Java”(而不是 C++),19 年那会写过几个月 Go ,当时感觉确实这语言确实很简洁,甚至有些简陋。

    Rust 的话,我接触不多,但感觉是一个更加对标 C++的语言,更偏向于“系统编程语言”,相比之下其既不使用自动垃圾回收,也不使用手动管理,还是比较折腾程序员的。

    所以性能不敏感,或者是只有网络 I/O 密集的场景,考虑到 rust 比较还是比 go 更复杂,自然选择 go 的更多。
    XiLingHost
        47
    XiLingHost  
       2023-06-17 20:54:18 +08:00
    rust 比较适合用来写偏向底层,安全和性能优化倾向的程序,主要是开发周期长和门槛高导致它的人力成本高于 go 。
    我自己也只有开源项目或者自己的玩具会用 rust ,要快速开发的项目或者公司项目一般不会选择 rust 。
    xLuoBo
        48
    xLuoBo  
       2023-06-17 20:57:32 +08:00

    用图说话
    t6gfx4ddv3
        49
    t6gfx4ddv3  
       2023-06-17 20:59:13 +08:00
    很难比,去年看推特感觉 Rust 已经快要一统天下了,还好 Rust 基金会一顿操作给它降了波温
    BBCCBB
        50
    BBCCBB  
       2023-06-17 21:25:26 +08:00
    我看了很多 go 相关, 后面突然想学 rust. 学了后很喜欢, 除了的确比 go 难的多, 语言方面很爽.
    yplam
        51
    yplam  
       2023-06-17 21:47:07 +08:00
    缺杀手级应用,缺大公司投入,rust 的生态真的一言难尽啊,举个比较有代表性的例子:ring 库,基本上与 tls 相关的都会依赖 ring ,最新版本 0.16.20 发包时间是 2021 年 2 月,最后一次代码提交是 4 个月前,github release 页面也根本找不到 0.16.20 这个 tag
    tyzandhr
        52
    tyzandhr  
       2023-06-17 22:12:31 +08:00 via Android
    rust 的难点,不在于函数式编程?你用 rust 写面向对象?
    prenwang
        53
    prenwang  
       2023-06-17 22:12:55 +08:00
    @ispinfx

    “写过 Rust 以后再也不想写 Python 了”

    最终要看应用场景,人工智能如火如荼的当下,python 碾压了所有语言, 这种情况, 你没有选择, 你不可能用 rust 去吧一个个成熟的 python 库换掉。

    go 简单吧, 比不过 python 更简单, 很多搞算法,搞科研的最合适上手的就是 python , 不可能是 rust ,go 等等。

    所以, 哪怕 python 性能再差,也稳坐头把交椅。

    rust 就像阳春白雪 ,浑身都是有优点, 看过的人都推崇, 但是真正决定学习使用的人很少, 原因就是自己的应用场景并没有那么迫切。

    生态太重要了, 使用 golang ,rust 做人工智能其实有很多优势, 但是最终弃坑的太多, 就是因为生态玩不过 python 。
    lixon166
        54
    lixon166  
       2023-06-17 22:26:23 +08:00
    主要学 rust 中国找不到工作 看培训机构就知道了
    gamexg
        55
    gamexg  
       2023-06-17 22:34:37 +08:00
    刚开始时想学 rust ,结果看了几篇文章发现语言本身还不稳定,有些以前的代码直接不能编译了。
    当时就没学,像等他稳定了在学习。

    目前的确有些像学习,但是没足够的时间。
    另外我主要写网络应用,经常写自定义协议。go 的协程心智负担很小,同步方式写网络 io 的 read write 操作,语言自动转换为异步,很方便。
    但是大体看了 rust 文章,rust 没有这个特征,想想以前写程序碰到的回调地狱就觉得不想用它写网络应用了。
    dollar
        56
    dollar  
       2023-06-17 22:36:25 +08:00 via iPhone
    从入门到放弃,生命周期写起来太不灵活了,而且好多语法很丑。还是 c++写起来更习惯些
    dollar
        57
    dollar  
       2023-06-17 22:38:40 +08:00 via iPhone
    另外 rust 和 go 本身定位也不一样,类比 c++和 java
    Jackeriss
        58
    Jackeriss  
       2023-06-17 22:40:22 +08:00
    前段时间不是说微软正在用 Rust 重写核心 Windows 库吗?
    ihciah
        59
    ihciah  
       2023-06-17 23:03:38 +08:00 via iPad
    领域不同,时间未到
    shui14
        60
    shui14  
       2023-06-17 23:23:05 +08:00
    国内还是 java/php ,毕竟业务导向,并且人的精力压力大
    如果有的选,专业导向的,比如驱动协议之类的 rust 优,混个业务或者胶水项目软硬件结合的 go 优,传统 curd java/php 优
    现在一些 rust/go 岗位也是在造轮子或者,那它来替代,比如 go 替代部分 java ,一方面拆分服务比 java 微服务更加纯粹,出活也不慢,还有一点 go 抹平差异,十年老手跟一年半的新人代码本身是一样的,它是一种格式化范式,而 java 是约定一个开发模式朝着同一方向。它们是填空题,rust 是只严格规则,是阅读理解题。
    如果是技术导向,可以底层 rust ,应用层 go
    ispinfx
        61
    ispinfx  
       2023-06-17 23:25:44 +08:00
    @prenwang #53 是啊,不想写,还是在写着。。
    agagega
        62
    agagega  
       2023-06-17 23:37:19 +08:00 via iPhone
    @yplam
    ring 的作者真的给人感觉几个月才上线一次。虽说开源都是为爱发电不能道德绑架,但这么重要和关键的一个包就应该像 socket 或者 libc 一样由 Rust 主社区自己来维护。
    uni
        63
    uni  
       2023-06-17 23:44:30 +08:00
    @janus77 理论上是有的,最新的大型区块链项目尤其是零知识证明那些已经清一色 rust 了
    uni
        64
    uni  
       2023-06-17 23:45:51 +08:00
    因为绝大多数代码的要求就是出活方便
    kid1412621
        65
    kid1412621  
       2023-06-18 00:02:50 +08:00
    @cmdOptionKana #21 非怼,我觉得这多多少少有点偏见了
    tanranran
        66
    tanranran  
       2023-06-18 00:06:02 +08:00
    “能赚钱的语言就是好语言”
    yolee599
        67
    yolee599  
       2023-06-18 00:08:24 +08:00 via Android
    rust 的语法糖太多了,我一个主力写 C 的看到 rust 都头疼,语法真的是太复杂
    abcbuzhiming
        68
    abcbuzhiming  
       2023-06-18 00:25:00 +08:00   ❤️ 3
    @Alias4ck stackoverflow 这个榜单最大的问题,它统计到的数据其实是程序猿里最喜欢发声的那一波人,实际上,有大量的不发声的程序员的数据,这个榜单反应不了。
    我有个爆论,是我自己观察到的,仅供参考,你看一个技术的渗透率如何,不要老看大厂和头部程序员里的情况,去看看这个技术在中小企业里的渗透程度就行了,目前 rust ,还处于早期使用者阶段,而且,实际这玩意并没有表现出特别的优势,那些语言上的新特性,并不足以说服中下层的开发者用他
    abcbuzhiming
        69
    abcbuzhiming  
       2023-06-18 00:31:18 +08:00   ❤️ 4
    另外,我和各位讲一个历史:

    几十年前,那会的技术大牛们普遍认为:Haskell 是优雅,聪慧的设计,而 C 语言是愚蠢,丑陋的设计。并认为 Haskell 一定是下一代的潮流。

    然后历史咋样大家都知道了,C 语言胜出并广为流传。我觉得这个例子放在这里也适用。


    心智负担是一个很大的问题,可是很多聪明的程序员因为自己没有这个负担,意识不到这点
    Leviathann
        70
    Leviathann  
       2023-06-18 00:41:21 +08:00   ❤️ 1
    @abcbuzhiming
    haskell 是 80 年代后期学术界为了解决当时研究型语言太多的问题开会推出的一种有开放式标准的函数式编程语言,作为研究基础并方便推广,跟 C 有什么关系?
    Slurp
        71
    Slurp  
       2023-06-18 00:54:49 +08:00   ❤️ 1
    因为大批程序员是最喜欢写 Python 写 JS 糊💩的。

    用 Go 我已经感恩戴德了,比如 hugo 就是用 Go 写的,比它的竞争者好多了。

    站在用户角度,我是巴不得每个人都用 Rust/C++,可惜做不到。

    ---

    @gamexg 难绷,哪里看的垃圾文章,Rust async await 不知道吗,另外 Go 这种 null pointer 都没解决的语言,不小心就 data race ,有些扯淡了。
    yangyaofei
        72
    yangyaofei  
       2023-06-18 02:10:46 +08:00
    cargo 挺好用的, 包和语法糖也不错, 如果没有所有权那堆东西和异步的话真的能替代 c++用了.

    但是所有权和异步太难受了, 第一次用 rust, 我就写个 grpc, 写了一周多才编译通过能用, 好是真的好, 开发效率慢是真慢.
    yangyaofei
        73
    yangyaofei  
       2023-06-18 02:14:40 +08:00
    "站在用户角度,我是巴不得每个人都用 Rust/C++,可惜做不到。" -> 太搞笑了, 用户才不关系实现用什么语言, 快一百倍和少十倍的 bug 很好, 但是开发时间和费用不能更多, 能更快完成慢十倍也不在乎, 反正也没几个人用.

    "Rust async await 不知道吗,另外 Go 这种 null pointer 都没解决的语言,不小心就 data race ,有些扯淡了。" -> rust 难道就不会空指针? 想搞总能搞出来吧. 那些高级用法怎么搞出来的, 不就是理想的折中能直接操纵一些内存么.
    DeWjjj
        74
    DeWjjj  
       2023-06-18 03:04:33 +08:00
    RUST 解决的是菜鸟程序员写代码的问题。
    除了换语言之外,还有一种解决方法叫换人。
    testcaoy7
        75
    testcaoy7  
       2023-06-18 03:23:59 +08:00
    @abcbuzhiming Haskell 太难了,能写 Haskell 的都是天才……
    henryhu
        76
    henryhu  
       2023-06-18 05:29:35 +08:00   ❤️ 1
    感觉 rust 热度上升很快,风头已经盖过 go
    786375312123
        77
    786375312123  
       2023-06-18 05:54:56 +08:00   ❤️ 7
    rust 毫无疑问就是未来。
    作为一个多年的 c++和 python 开发,项目里遇到的绝大多数 bug ,如果使用 rust ,都可以避免。
    很多人觉得 rust 语法难,开发效率低,实际上 rust 写起来非常快,因为你知道安全。
    “因为你知道安全,所以开发速度快”,这个感受不知道需要写过多少代码才有感觉。
    zhenjiachen
        78
    zhenjiachen  
       2023-06-18 06:57:27 +08:00 via iPhone
    @yplam
    @agagega
    刚好遇到编译到 wasm ,一直报一个 env 的错误,搜索了好久才知道是有的库不支持 wasm32 ,自己的代码基本没用到其它特性,就只有依赖了,然后一个个依赖在 wasm 上跑测试,然后就发现有个依赖依赖了 ring 1.16 ,这个版本还不支持 wasm ,但是 github 上的 main 分支已经有支持了,看了代码还以为支持了,但是还没发布
    james122333
        79
    james122333  
       2023-06-18 07:42:16 +08:00 via Android
    给我选我会选 go 因为大道至简 不想整天烧脑
    你要有优雅的生活
    unnamedhao
        80
    unnamedhao  
       2023-06-18 07:48:18 +08:00 via iPhone
    rust 的语法规则太多了,并且有不断增加的趋势
    awolf
        81
    awolf  
       2023-06-18 08:50:11 +08:00
    一部分写 php 的转去写 GO 了
    chendl111
        82
    chendl111  
       2023-06-18 08:54:43 +08:00
    simple is better
    keymao
        83
    keymao  
       2023-06-18 09:12:43 +08:00
    干不过 go ? 何出此言,论据何在。 顺带一提,Windows 的新的预览版内核用 Rust 重写了,并即将发布。
    keymao
        84
    keymao  
       2023-06-18 09:16:05 +08:00
    @786375312123 未来的几个流行的操作系统内核都会用 rust 重写一遍。Windows 11 的内核据说已经用 rust 重写了。
    dynos01
        85
    dynos01  
       2023-06-18 09:37:46 +08:00 via iPad
    @keymao 这是个误区,目前只有一小部分用 Rust 重写了。Linux 那边目前的规划也只是用 Rust 重写一部分驱动等,而没有重写已有东西的计划。

    我当前 Rust 和 Go 双修,Rust 用的还多一些,干不过就是干不过,大大方方承认就是。学习难度大,用途没有 Go 明朗,还有那个离谱的编译速度(手头有项目 Rust 和 Go 对半,一次构建 95% 的时间都在 Rust 上),劝退新人难免的事。

    两边各有好处就我都要,合适的地方用合适的工具而已。
    BBCCBB
        86
    BBCCBB  
       2023-06-18 09:43:22 +08:00
    @gamexg rust 有协程的, 还是 stackless 的, 比如 tokio. rust 协程也是基于 async/await 的,

    golang 的协程是 stackfull 的, 对于超大量协程, 调度起来压力很大, 所以每个 socket 开两个协程这个量上去了就玩不了了..

    但 rust 可以这样玩, 每个 socket 开两个协程, 支持超大量的量级
    abcbuzhiming
        87
    abcbuzhiming  
       2023-06-18 09:47:35 +08:00
    @Leviathann 它和 C 有什么关系我不知道,其实当我看到这段历史的时候,我也挺奇怪,函数式语言 haskell 是怎么能和过程式语言 C 放在一起比的,然而当时的学术界就是这么一个看法,觉得前者优雅聪慧,后者愚蠢丑陋,前者必是下一个时代的编程语言荣光巴拉巴拉。。。
    xingjue
        88
    xingjue  
       2023-06-18 10:03:29 +08:00   ❤️ 1
    rust 凉了
    butterls
        89
    butterls  
       2023-06-18 10:28:07 +08:00 via Android   ❤️ 1
    rust 的生命周期标注的设计路数本来就不是给程序员思维设计的,这是给玩数学那帮人搞的符号标记当然看起来丑陋了
    lesismal
        90
    lesismal  
       2023-06-18 10:40:21 +08:00   ❤️ 1
    go 和 rust 是龙兄虎弟左邻右李伯牙子期,不要把他俩对立,而是双剑合璧干死其他静态类型语言:
    1. 用 go 处理性能不是最敏感但是性能和开发效率都很重要的很多偏应用业务比如 CURD 、以及少量系统编程业务比如云原生
    2. 用 rust 去搞安全要求高的性能要求强的去干掉 c/cpp 为主,干掉其他为辅

    应该一起喜欢这两个
    yangxin0
        91
    yangxin0  
       2023-06-18 10:43:15 +08:00
    语言而已,还是从项目的角度去挑选语言。
    tairan2006
        92
    tairan2006  
       2023-06-18 11:03:04 +08:00 via Android
    流行的语言其实都是简单的,java/js/py/php/go/c ,就连 cpp 很多人就是 c with class 写。 因为大部分人编程是手段不是目的,领导也要考虑招人方便。
    alsas
        93
    alsas  
       2023-06-18 11:07:07 +08:00
    go rust 双修就完事了
    Tanix2
        94
    Tanix2  
       2023-06-18 11:46:54 +08:00   ❤️ 4
    用 Rust 比较多,Go 就用过一点点,就说一下我对 Rust 的感受。

    我喜欢 Rust 的点:
    1. 小写+下划线命名
    2. 后缀式调用写着方便(不用倒回去加函数再加左右括号),格式化自动分行
    3. trait 的设计思想,一个东西是什么,就取决于它的 trait (一个东西看起来像鸭子、游泳像鸭子、叫声像鸭子,那么它可能就是只鸭子)(虽然我基本不用)
    4. crates.io 提供的丰富的库(很多比 std 性能高,功能也强,比如 crossbeam_channel/mpsc::channel )
    5. cargo 提供的便捷构建体验
    6. 方便、无忧(编译过的话)的并发
    7. 高性能( blazing fast!)
    8. 所有权机制让我掌控每个变量
    9. 方便的格式化(默认左大括号不另起一行正合我意)
    10. 编译器帮我检查出来很多 bug
    11. std 丰富的函数(如 split_ascii_white_space ,虽然很长吧...)
    12. 某些时候函数式调用很舒服(大多时候还是循环用着爽,不必拘泥于一种模式)
    13. 方便的测试(虽然我不怎么写测试)
    14. 方便的文档,函数上用 ///注释,还可以用 markdown 语法,里面的代码还可以纳入测试
    15. 强大的类型系统,特别是 enum ,表达能力很强
    16. 编译型语言,出来的可执行文件不需要额外的环境,顶多需要一些动态链接库
    17. 可以使用 C/C++写的很多库,如 OpenCV 、GStreamer 等,都有相应的 bindings
    18. Option 和 Result 非常方便
    19. match 模式匹配表达能力很强

    我不喜欢 Rust 的点:
    1. 编译太慢(极其重要的一个缺点)
    2. move || {}的时候,经常需要在外面定义一个 clone 的新变量
    3. 宏内的代码没法格式化

    总的来说,Rust 的大多数设计都很符合我对编程语言的审美,所以我很喜欢 Rust 。
    e3c78a97e0f8
        95
    e3c78a97e0f8  
       2023-06-18 12:24:01 +08:00
    在翻墙领域,完全不受商业考虑影响,用 Rust 写的工具总是比 Go 写的工具开发进度慢很多,features 也少很多。虽然 Rust 版本通常性能更好,但是缺了 features 根本用不了。
    lanlanye
        96
    lanlanye  
       2023-06-18 12:54:55 +08:00
    学过 Rust ,学完有种拔剑四顾心茫然的感觉:

    无 GC 场景?比如交易之类的,个人项目很难接触到这种东西。

    底层?功力不够不知道做什么。

    应用?那我有太多其他语言可以选择了。

    很尴尬……
    maokabc
        97
    maokabc  
       2023-06-18 13:06:07 +08:00 via Android
    go 不熟,最近学 rust ,打算拿来代替 c 跟 java 的,先准备用 rust 开发 stm32 试试。
    debuggerx
        98
    debuggerx  
       2023-06-18 13:13:27 +08:00 via Android
    很简单,因为用处不大,"性价比"不够高。
    go 虽然不咋地,但是好歹有些明确的适用场景。rust 特性再好,适用面窄就没救。
    wyssurvivor
        99
    wyssurvivor  
       2023-06-18 13:31:43 +08:00
    你要跟 go 比,原因很简单,go 就像是天生为中国互联网公司量身定做的,语法简单性能不错。
    曾经我也对 rust 很感兴趣,系统学习了一下。但是只能自嗨,周围同事对这种复杂的东西不感兴趣,与其跟编译器较劲,不如把精力放在解决真正的问题上。我也只能自己写点 rust 代码。
    二楼说 rust 缺个好爹,事实上 rust 有个烂爹,烂到有人受不了分叉出了 crab
    satoru
        100
    satoru  
       2023-06-18 13:34:41 +08:00
    唉,为什么 Rust 比 Zig 火
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2449 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 16:03 · PVG 00:03 · LAX 08:03 · JFK 11:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.