Rust 和 go 哪个更有前途? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cod
V2EX    程序员

Rust 和 go 哪个更有前途?

  •  
  •   cod 2017-03-30 22:25:46 +08:00 35100 次点击
    这是一个创建于 3120 天前的主题,其中的信息可能已经有所发展或是发生改。
    103 条回复    2019-05-27 18:11:23 +08:00
    1  2  
    eoo
        1
    eoo  
       2017-03-30 22:27:54 +08:00   4
    这种提问,你应该去知乎。

    慢走不送
    tonyluj
        2
    tonyluj  
       2017-03-30 22:36:41 +08:00
    Go
    mikicomo
        3
    mikicomo  
       2017-03-30 22:41:00 +08:00
    能写好这两个的人感觉都蛮有前途的
    qiyuey
        4
    qiyuey  
       2017-03-30 22:42:52 +08:00 via Android
    Go 已经过了泡沫期,往低谷期发展了, Rust 还在上升期
    Kilerd
        5
    Kilerd  
       2017-03-30 22:44:58 +08:00 via iPhone
    rust 那 tm 难入门了
    misaka19000
        6
    misaka19000  
       2017-03-30 22:57:09 +08:00
    不谈需求讲语言都是扯淡
    liujinlingchn
        7
    liujinlingchn  
       2017-03-30 23:05:48 +08:00 via Android
    @qiyuey 大哥,怎么是低谷期了,不是正上升呢
    xiandao7997
        8
    xiandao7997  
       2017-03-30 23:07:48 +08:00 via iPhone
    菠萝和葡萄哪个更好吃
    bianhua
        9
    bianhua  
       2017-03-30 23:10:21 +08:00   3
    一直觉得 Go 是个框架附带语言,写什么都很方便轻松,但语言就很弱。而 Rust 感觉真的是在做语言,很多特性很棒。但是如果能像 Go 一样自带大量电池就好了。

    可惜 Rust 貌似不会向那个方向发展,只想单纯做个语言,其他的交给社区。

    所以这两个语言真的可爱又可恨。(最后还是觉得 C 和 C++最棒
    taozhijiangscu
        10
    taozhijiangscu  
       2017-03-30 23:14:02 +08:00
    C++最有前途 逃...
    jarlyyn
        11
    jarlyyn  
       2017-03-30 23:25:07 +08:00   2
    这两语言有共同点吗……
    gouchaoer
        12
    gouchaoer  
       2017-03-30 23:38:02 +08:00 via Android
    rust 和 c 艹是一类语言,用的地方都不一样
    jybox
        13
    jybox  
       2017-03-30 23:46:11 +08:00   3
    虽然不是同一领域的语言,但我还是觉得 Rust 要比 Go 更「好」,得出这一点是因为我觉得 Go 没有找到一个十分适合的场景。

    Rust 显然是瞄准 C++ 去的,零开销抽象、内存安全、类型安全,最后能否替代 C++ 不好说,但至少是有可能的,这可是一个非常大的领域,包括操作系统、浏览器、编译器和虚拟机、图形引擎这些重量级的使用场景。

    Go 的话定位就非常尴尬了,和 Python / Node.js 比起来抽象能力太弱(指的是提供的语言特性较为有限,例如异常、泛型、完整的面向对象),面对复杂多变的业务需求显得不那么够用;静态类型当然也有其好处,但似乎并没有比例如 Java 这样其他的语言强多少。从 Go 没有异常这一点来看,可能更适合系统编程(而非业务代码),确实 Go 也被用来一些网络中间件。但 Go 却又是有 GC 的语言,和 C 的互操作又不够高效,导致在系统编程的使用场景也非常狭窄。

    < target="_blank" href="https://github.com/ksimka/go-is-not-good" rel="nofollow noopener">https://github.com/ksimka/go-is-not-good
    muziki
        14
    muziki  
       2017-03-30 23:55:25 +08:00 via iPhone
    Rust 粉路过, rust 生态还不完善,也不敢跟 golang 比
    fanyer
        15
    fanyer  
       2017-03-31 00:00:33 +08:00
    go 对写 go 的人来说是招式加成,对其他领域的人才能有内力加成(这类的人起码有 5000 小时的进度)。
    rust 对所有人来说都有内力加成。
    searene
        16
    searene  
       2017-03-31 00:06:03 +08:00
    还没有见过比 java 更有前途的, 10 个公司 9 个用 java
    sunjourney
        17
    sunjourney  
       2017-03-31 00:19:56 +08:00
    java 停止进化了,不睬, go 开始发光发热学学挺好的,对 rust 内心有种冲动,目前没掌握有时间也要学学。
    findex
        18
    findex  
       2017-03-31 00:43:51 +08:00   1
    你要去看看这几门语言是谁领导的。这门语言的出发点在于什么。每个语言都有不同的特性和用法、用处。

    go 来自于 google ,主要发展也是根据 google 自身的需求和其他贡献者添瓦决定的。
    rust 来自于 mozilla ,主要用于创造程序,说是来自于 c++比 c++更加 memeory safe ,可能是瞄准 c++的市场,准备大干一番吧。貌似可以省不少 c++ coder 的脑细胞。

    虽然 go 编译后的文件也是可以直接运行的,看上去很爽,但是相比 c++还是有点差距。
    wangxn
        19
    wangxn  
       2017-03-31 00:49:08 +08:00 via Android
    Go 有一个逼格极高的好爹啊……
    hilyjiang
        20
    hilyjiang  
       2017-03-31 02:49:59 +08:00
    Go 生态很完善了,基本上你想要的类库都能找到现成的。
    wweir
        21
    wweir  
       2017-03-31 06:14:01 +08:00 via Android
    都很有前途,不用你操心。你应该操心的是,学哪个更有前途?
    这两门语言要面对的场景、解决的问题不一样
    yxzblue
        22
    yxzblue  
       2017-03-31 08:10:19 +08:00
    PHP
    janxin
        23
    janxin  
       2017-03-31 08:13:41 +08:00 via iPhone   1
    java ,上个培训班就能找工作
    qjmiao
        24
    qjmiao  
       2017-03-31 08:21:33 +08:00
    Rust 好像有点反人性,很多地方写起来会痛不欲生吧
    shyling
        25
    shyling  
       2017-03-31 08:27:30 +08:00 via iPad   1
    先用 rust 写个链表压压惊
    helloworld12
        26
    helloworld12  
       2017-03-31 08:33:16 +08:00
    golang 至少还能找到工作 虽然少,但还是有盼头
    slickqt
        27
    slickqt  
       2017-03-31 08:39:43 +08:00
    目前用 go 做后端,还不错,程序跑得很欢,很省心的样子.
    rust,那语法,感觉还是 C++方便些
    visonme
        28
    visonme  
       2017-03-31 08:41:56 +08:00
    一直都在趴老语言。这些新的玩意还没玩过,最近又开始玩 C/C++了。
    就目前就业来说,这两个非一线及互联网比较发达的城市基本无人招了,所以如果为了找份好工作,还是结合下自己所在的坐标,做出正确的选择把
    nanjishidu
        29
    nanjishidu  
       2017-03-31 08:43:04 +08:00
    用 go 做 web 管理和 app api 很好用。适合自己的是最好的。适合企业的是最好的。适合地区的是最好的。二线城市没听过 rust 但是有 go 的身影
    cwing
        30
    cwing  
       2017-03-31 09:25:11 +08:00
    Rust is a systems programming language
    edison111cry
        31
    edison111cry  
       2017-03-31 09:29:36 +08:00
    PHP 是世界上最好的语言!没有之一!
    TangMonk
        32
    TangMonk  
       2017-03-31 09:32:10 +08:00 via Android
    最近 elixir 好像没有声音了
    zoffy
        33
    zoffy  
       2017-03-31 09:35:38 +08:00   3
    andychen20121130
        34
    andychen20121130  
       2017-03-31 09:41:49 +08:00
    @wangxn 哪天发现不挣钱,弄死也不奇怪,毕竟广告公司挣钱是第一目的。
    wbt
        35
    wbt  
       2017-03-31 09:42:17 +08:00   1
    我选 Kotlin
    hotdogwc
        36
    hotdogwc  
       2017-03-31 09:48:13 +08:00
    @TangMonk 似乎还行啊,各种 Conf 搞的飞起,油管上视频都看不完
    TangMonk
        37
    TangMonk  
       2017-03-31 10:03:34 +08:00
    @hotdogwc v2 上好像没有咋讨论
    murmur
        38
    murmur  
       2017-03-31 10:13:22 +08:00
    我选 go 因为阮老师是 rust 粉 蛤蛤
    iceland
        39
    iceland  
       2017-03-31 10:28:34 +08:00   1
    jarlyyn
        40
    jarlyyn  
       2017-03-31 10:30:24 +08:00
    go 写 web/api 还是效率挺高的。

    用过 php/node/python 做过 Web

    目前还是 go 的效率最高。
    zhuangzhuang1988
        41
    zhuangzhuang1988  
       2017-03-31 10:31:35 +08:00
    都没有, 不信就去二三线城市找工作看看
    wangxn
        42
    wangxn  
       2017-03-31 10:35:15 +08:00 via Android
    @andychen20121130
    Go 何来挣钱一说?
    一切都是开源的语言,怎样弄死?
    老兵不死,只是凋零。
    bk201
        43
    bk201  
       2017-03-31 10:49:37 +08:00
    光会语言还不是搬砖工,至于比来比去吗
    assad
        44
    assad  
       2017-03-31 10:54:07 +08:00
    Rust 不看好,爹不行,做了多少东西没弄出来。最终也只能是一个小小众的语言!
    jarlyyn
        45
    jarlyyn  
       2017-03-31 11:02:09 +08:00
    @assad

    语言和爹关系不大。

    推出的时间,成功的项目更重要下些。

    go 要不是有个 docker 成功了。现在估计也就那样了。
    beneo
        46
    beneo  
       2017-03-31 11:22:50 +08:00
    选择 Java 的公司大概是这样想的吧, java 很挫不要紧,堆钱堆机器堆人力,招人便宜,业务需求满足成本低
    stormpeach
        47
    stormpeach  
       2017-03-31 11:25:52 +08:00
    1 、 firefox 准备换新引擎 servo 是用 rust 写的, rust 的大型项目还有操作系统 Redox 。
    2 、 rust 之父被 apple 挖过去做 swift 了。
    3 、 go 和 rust 的应用场景不同,最好能够都掌握。
    wangxn
        48
    wangxn  
       2017-03-31 11:27:11 +08:00 via Android
    @jarlyyn 那问题来了, Docker 为什么要用 Go 而不用 C ?
    VeryEase
        49
    VeryEase  
       2017-03-31 11:28:32 +08:00
    Dart 才是 Google 亲儿子,怎么就普及不起来呢.....
    wangxn
        50
    wangxn  
       2017-03-31 11:29:47 +08:00 via Android
    我认为 Rust 希望很渺茫啊。它瞄准 C++,但 C++并没有什么致命的缺陷,何况 c++也在不断进化之中……
    jarlyyn
        51
    jarlyyn  
       2017-03-31 11:53:42 +08:00
    @wangxn

    webadmin 为什么用 perl 不用 python ?

    ror 为什么用 ruby 不用 Python?



    因为作者喜欢,环境又支持。
    crabRunning
        52
    crabRunning  
       2017-03-31 11:54:10 +08:00
    难道你们还不知道 php 是最好的语言吗
    Smirn0ff
        53
    Smirn0ff  
       2017-03-31 11:58:00 +08:00
    @eoo 还是你走吧! P 用没有占一楼,要脸!
    chenqh
        54
    chenqh  
       2017-03-31 12:07:57 +08:00
    @jarlyyn 效率是写的效率还是运行效率?
    ansheng
        55
    ansheng  
       2017-03-31 12:09:41 +08:00
    Golang ,看社区的火热度。
    jarlyyn
        56
    jarlyyn  
       2017-03-31 12:11:03 +08:00
    @chenqh

    写。

    运行效率感觉和 Nodejs 拉不出很大差距的。
    chenqh
        57
    chenqh  
       2017-03-31 12:12:41 +08:00
    @jarlyyn 写代码速度 比 python 还快?
    jarlyyn
        58
    jarlyyn  
       2017-03-31 12:15:53 +08:00
    @chenqh
    br />我写 go 的速度比我写 python 的快。

    这个写包括 debug 。

    可能是我写 python 的姿势不太对。
    chenqh
        59
    chenqh  
       2017-03-31 12:19:23 +08:00
    @jarlyyn 我来学下看下。。
    jarlyyn
        60
    jarlyyn  
       2017-03-31 12:22:32 +08:00
    @chenqh

    这个只是和个人写代码风格有光……

    至少写的不慢是真的。

    可能我当年是静态语言入的门,受第一印象影响比较大。
    rrfeng
        61
    rrfeng  
       2017-03-31 12:28:52 +08:00
    rust 和 go 哪个更有前途这是个伪命题,应用场景完全不一样。
    不如问:搞 rust 和搞 go 哪个更有前途?

    我的看法是 go 适合做一些中间层,也可以是应用层, go 在运维层面的发展绝对是阻止不了的。
    rust 更底层,该写系统写系统,该写数据库写数据库。
    java/python/php 还是搞应用吧。
    chenqh
        62
    chenqh  
       2017-03-31 12:30:38 +08:00
    @jarlyyn 我第一门语言是 C#
    iot
        63
    iot  
       2017-03-31 12:33:27 +08:00
    erlang 比较有前途
    c4pt0r
        64
    c4pt0r  
       2017-03-31 13:40:57 +08:00   1
    感觉这两个语言我都有点发言权...

    @rrfeng 的观点很正确.
    eoo
        65
    eoo  
       2017-03-31 13:47:41 +08:00 via Android
    @Smirn0ff 我脸皮厚
    nicevar
        66
    nicevar  
       2017-03-31 14:03:37 +08:00
    @wangxn 这话问的,因为作者选择了 go ,为什么会选 go 有可能是喝醉了,与不用 c 没啥关系,这个东西用其他语言都能做
    ghbai
        67
    ghbai  
       2017-03-31 14:27:22 +08:00   1
    rust 语言 github 上 star 大于 10 的项目数:2139 ( https://github.com/search?l=rust&o=desc&q=stars%3A%3E10&s=updated&type=Repositories
    go 语言 github 上 star 大于 10 的项目数:12318 ( https://github.com/search?l=go&o=desc&q=stars%3A%3E10&s=updated&type=Repositories)
    unity0703
        68
    unity0703  
       2017-03-31 15:15:24 +08:00
    RUST 学习曲线太陡峭了,而且很多时候内存安全并没有那么重要
    QAPTEAWH
        69
    QAPTEAWH  
       2017-03-31 16:09:23 +08:00   1
    @unity0703 不不,任何时候内存安全都很重要。很多时候性能没那么重要所以还是用 GC 好。
    gc532
        70
    gc532  
       2017-03-31 16:53:27 +08:00 via Android
    Rust 保证没有数据竞争,这一点带 GC 的 golang 目前不保证。
    wangxn
        71
    wangxn  
       2017-03-31 18:42:49 +08:00 via Android
    @nicevar
    那假如你是作者,你会选 Java 、 Python 、 PHP 这些语言来做吗?
    作者的喜好是一方面,语言能高效地实现预期目标又是一方面。这根本就不单单是作者喜欢什么语言就能用什么语言的事。
    wangxn
        72
    wangxn  
       2017-03-31 18:44:57 +08:00 via Android
    Docker 这种系统程序,不用 C 而用 Go ,这本身就很能说明问题了。
    nicevar
        73
    nicevar  
       2017-03-31 19:13:36 +08:00
    @wangxn 你说的为什么不用 c 好不好?你真搞笑,什么这种系统程序不用 c 用 go ,还本身说明问题,因为原本 docker 下面一大堆都用 c 做好了, docker 就是躺在上面的,早期的 container 都是 lxc 的,按照作者初期的想法,用 python 和 c 写不奇怪,选择了 go 也正常, go 跟 rust 除了都是新的语言外真没啥可比较,跟 c 就更不用说了, go 主要是针对 java 和 python 领域的, rust 奔着 c/c++去的
    doubleflower
        74
    doubleflower  
       2017-03-31 19:13:39 +08:00
    @wangxn docker 又不底层有什么必要上 C
    shyling
        75
    shyling  
       2017-03-31 19:25:33 +08:00
    大部分常见的业务不需要 rust 所谓的优点 qaq
    pathbox
        76
    pathbox  
       2017-03-31 19:39:39 +08:00 via iPhone
    金字塔顶尖的语言。 c c++
    dveop
        77
    dveop  
       2017-03-31 21:39:49 +08:00
    Rust 纯属炒作
    Rust 属于 mozilla ,是谷歌微软苹果的直接竞争者
    大牌公司不会接受 rust
    自然不会有什么前途
    BearTher
        78
    BearTher  
       2017-03-31 21:55:12 +08:00   3
    Rust 毕竟新游戏,画质和可玩性都更强,现在也有很多国内主播在推
    CS:GO 嘛 群众基础毕竟大 玩法比较单一

    两款游戏没有可比性.
    tt0411
        79
    tt0411  
       2017-03-31 22:04:56 +08:00
    我选 Go

    Rust 关键字缩写太蛋疼
    wuxqing
        80
    wuxqing  
       2017-03-31 22:08:01 +08:00   1
    @BearTher Rust 这款游戏入手太难,带入感差,注定了玩家少,生态建立缓慢
    GO 虽然玩法单一,但是入手容易,出活快,缺点虽然多,但是风格突出,吸引大批玩家
    vultr
        81
    vultr  
       2017-03-31 23:22:37 +08:00
    我工作上用的第一门语言居然是 asp 。

    asp -> asp.net(c#) -> php -> node.js -> go -> php
    kevinzhow
        82
    kevinzhow  
       2017-04-01 01:21:49 +08:00 via iPhone
    都学,技多不压身
    hd7771
        83
    hd7771  
       2017-04-01 01:39:41 +08:00 via Android
    @wuxqing
    RUST 开局裸,被全副武装的追着打。小公司没有宣传能力,全靠玩家口口相传。
    GO 开局什么武器都有,最多买个皮肤。还有爸爸支持,每年砸钱办比赛,然后诞生了不少职业选手。
    cxbig
        84
    cxbig  
       2017-04-01 04:11:20 +08:00
    你能用哪个做出东西、挣到钱,哪个就有钱途。
    jimzhong
        85
    jimzhong  
       2017-04-01 06:45:31 +08:00
    @searene 并不觉得 Java 特别有前途。它和 OOP 捆绑得太紧了。
    wayslog
        86
    wayslog  
       2017-04-01 06:53:47 +08:00 via Android   1
    我力挺 Rust ,并且已经在我厂上线了 Rust 写的服务。怎么说呢,别的语言补完测试扔 线上还要担心会不会有意外的 coredump , nil pointer 之类,用 Rust 写的东西从来没担心过。它的表现也让我兴奋,从来没出过问题。

    我爱这个语言!
    muziki
        87
    muziki  
    2017-04-01 07:16:30 +08:00 via iPhone
    @dveop 炒作?也不知道一个专注于语言自身开发把生态交给社区的团队炒作什么了,论炒作怎么也比不过广告公司
    gc532
        88
    gc532  
       2017-04-01 08:02:27 +08:00 via Android
    @wayslog 哥!公司还招人吗? Rust 和 Golang 我都会。

    只是学了 Rust 后,着了他的魔,再也不想写 Go 代码。无奈现在 Rust 工作机会太少。
    arronf2e
        89
    arronf2e  
       2017-04-01 09:22:35 +08:00
    别说了, php 吧
    specita
        90
    specita  
       2017-04-01 09:38:50 +08:00
    新公司用 go 的,简单的用了下,感觉在偏业务的应用用 go 不太舒服,可能我之前是纯面对对象的思想,一时间转不过来吧
    wayslog
        91
    wayslog  
       2017-04-01 09:57:20 +08:00 via Android
    @gc532 我司一直招人,但是我们组 HC 有限…非常抱歉…
    bubuhere
        92
    bubuhere  
       2017-04-01 10:21:08 +08:00
    @wuxqing Rust 里面新人得光着屁股到处被砍不太好
    还是 GO 里面 RUSH B 比较朋克
    loolac
        93
    loolac  
       2017-04-01 11:02:47 +08:00
    go + c > rust 应该能够成立的吧
    sagaxu
        94
    sagaxu  
       2017-04-01 11:36:21 +08:00
    Go 就适合一种场景,几十万甚至百万级并发长连接,业务复杂,耗时以等待 IO 为主,单个请求会多次请求别的服务,且每次都花很长时间等待 IO 。
    ijustdo
        95
    ijustdo  
       2017-04-01 12:18:43 +08:00
    go 呢 google 不是有开源项目 把 python 代码 直接编译成 go 么
    如果那个到实用阶段 rust 干得过么 哈哈
    ijustdo
        96
    ijustdo  
       2017-04-01 12:22:05 +08:00
    啊弥陀佛 老衲又着相了 我改 你好我好 大家好 用得好才是真的好
    AngelCriss
        97
    AngelCriss  
       2017-04-01 13:50:26 +08:00 via Android
    @loolac go 没有泛型 c 也没有,然而 rust 可是又的啊。。
    loolac
        98
    loolac  
       2017-04-04 12:55:53 +08:00
    @AngelCriss 泛型统治治不了全宇宙啊
    AngelCriss
        99
    AngelCriss  
       2017-04-04 13:24:42 +08:00 via Android
    @loolac 所以需要多范式啊, C++就是,所以。。。
    cod
        100
    cod  
    OP
       2017-04-08 00:11:58 +08:00
    果然一提语言之争大家都打鸡血似的~
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     902 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 21:21 PVG 05:21 LAX 14:21 JFK 17:21
    Do have faith in what you're doing.
    ubao 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