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

两篇 Rust 安利文

  •  4
     
  •   tioover ·
    tioover · 2015-02-27 22:13:58 +08:00 · 13039 次点击
    这是一个创建于 3317 天前的主题,其中的信息可能已经有所发展或是发生改变。
    传教文:Rust 大法好
    http://eggfan.org/2585

    Rust 之坑:啰嗦的浮点数排序
    http://eggfan.org/2607


    都是我写的,现来安利。为了让看到的人多一点我就不放 Rust 节点了,见谅。

    有什么修改意见和疑问都可以回复。

    另,例子中的链表是不可变的数据结构,可变的在之后也折腾出来了。
    54 条回复    2015-04-07 21:45:34 +08:00
    qdwang
        1
    qdwang  
       2015-02-27 23:30:25 +08:00
    Rust 大法好
    zxteloiv
        2
    zxteloiv  
       2015-02-27 23:41:30 +08:00
    Rust 大法好
    elegzg
        3
    elegzg  
       2015-02-28 04:57:06 +08:00
    学这么多语言,楼主蛋疼?
    elegzg
        4
    elegzg  
       2015-02-28 05:01:04 +08:00
    Golang编译hello world为何要1M, rust只有12K?
    bombless
        5
    bombless  
       2015-02-28 05:11:24 +08:00 via iPhone
    233,真被你写出来了
    bombless
        6
    bombless  
       2015-02-28 05:16:16 +08:00 via iPhone
    和C++比较那篇我本来想把shared_ptr比较的那里的过时内容换掉的。

    一看是wiki的没人peer review修改我就懒得动了
    longear
        7
    longear  
       2015-02-28 05:19:09 +08:00
    @Livid
    发现这篇文章有触发 Reset Connection 的关键字, 传* 大*
    因为整晚首页都可以直连打开, 点开这篇后就 Reset 了
    bombless
        8
    bombless  
       2015-02-28 05:23:57 +08:00 via iPhone
    难怪我点进来要https了
    skywalker
        9
    skywalker  
       2015-02-28 07:07:41 +08:00 via iPhone
    在纠结入rust的坑还是nim的坑
    loading
        10
    loading  
       2015-02-28 08:02:51 +08:00 via Android
    不和go跑个分?
    skywalker
        11
    skywalker  
       2015-02-28 08:33:49 +08:00 via iPhone
    @loading rust性能完胜go应该没问题,没有gc
    tonyluj
        12
    tonyluj  
       2015-02-28 09:18:37 +08:00
    Rust 各方面 design 都比 go 强。
    zonyitoo
        13
    zonyitoo  
       2015-02-28 10:04:06 +08:00
    Go根本就无法比
    kn007
        14
    kn007  
       2015-02-28 10:14:20 +08:00
    过来学习一下,嘻嘻
    jackysc
        15
    jackysc  
       2015-02-28 10:53:43 +08:00
    过来看看学习
    lilydjwg
        16
    lilydjwg  
       2015-02-28 13:25:31 +08:00
    我还真没想到排序时 NaN 要怎么办……
    tioover
        17
    tioover  
    OP
       2015-02-28 14:22:50 +08:00
    @loading 网上有跑分,完爆没问题,稍慢于C++。但性能不是重点.
    @elegzg 主要是 Rust 的 Runtime 很薄,Go 还有 GC ,绿色线程等一大堆代码。
    @longear 不会吧……
    ysmood
        18
    ysmood  
       2015-02-28 14:23:14 +08:00
    感觉现在很多人倾向于使用 nim,和 nim 比比呢?
    tioover
        19
    tioover  
    OP
       2015-02-28 14:28:48 +08:00
    @ysmood
    Nim 和 Rust 差别很大,Nim 注重简洁简单,类似 Python 或者 Ruby 语法的 C,在安全性上无法与 Rust 匹敌,包括内存安全和类型安全,但是语法简洁易学,且没有像 Rust 的 lifetime 这种学习负担。
    个人认为 Nim 不怎么适合工业级的软件。

    另外有 Nim 竞争能让 Rust 社区感到危机感加快改进语言,是很好的事情,最近 for 语法的改变不知道有没有这个原因。
    tioover
        20
    tioover  
    OP
       2015-02-28 14:30:41 +08:00   ❤️ 1
    pathletboy
        21
    pathletboy  
       2015-02-28 14:35:21 +08:00
    我会说rust错误返回的那个设计会把你搞的云里雾里吗?真不如golang的error直截了当。
    dreamtrail
        22
    dreamtrail  
       2015-02-28 14:46:35 +08:00
    还是比较看好rust的,以后如果能进语言排行版前10,我就来学。。
    tioover
        23
    tioover  
    OP
       2015-02-28 14:50:27 +08:00
    @pathletboy
    为什么?和 Haskell 是一样的,就是个 Monad。
    实际上 Rust 根本没有错误处理特性。就是一个数据类型,没有什么特殊的。
    phoenixlzx
        24
    phoenixlzx  
       2015-02-28 14:52:59 +08:00
    还有一个生态环境的问题.... 有些语言虽然满是坑但是生态很好所以一样非常火爆。( 我真的没在说 js

    rust 还没了解过,Go 现在的生态已经开始发展了吧?
    tioover
        25
    tioover  
    OP
       2015-02-28 14:57:35 +08:00
    @phoenixlzx 现在没有像 Docker 这样的重量级杀手应用,但是生态已经很不错了 https://github.com/trending?l=rust
    loading
        26
    loading  
       2015-02-28 15:04:13 +08:00
    能顺便简要说明下 Rust 在 windows、Linux、OS X 部署难易度和“包”(近似概念?)的数量和成熟度问题。
    虽然 Go 老爸不怎么管他,但是Go社区活力也是很足的,Rust 呢?

    btw:这段时间在观摩 node.js、Go,好吧,加入下 Rust。
    想换一下语言(python)写点小玩具。
    hooluupog
        27
    hooluupog  
       2015-02-28 15:07:43 +08:00
    @tonyluj 是么?Go可以:"productive in one day, efficient in one week, expert in one year."这点,从现在一些初创公司1年多的实际使用,得到了验证。
    我搞不懂把Rust总和Go放在一起比较的什么心态?一个有gc,一个没有gc(不过llvm现在也在搞gc了),一个写服务器后端和web,另一个冲着c++去的,这样比较有什么价值么?
    Bluek404
        28
    Bluek404  
       2015-02-28 15:13:06 +08:00
    和go没什么可比性啊……
    个人感觉go的设计是从实用角度来说,比如内置各种类型
    期待rust的国内圈子大一点
    tioover
        29
    tioover  
    OP
       2015-02-28 15:15:55 +08:00   ❤️ 1
    @loading
    Rust 官方推出的包管理器 Cargo,能自动管理依赖,代码 Build 和测试。
    基本上很多 Rust 代码你 clone 下来以后运行 cargo run 就行了,非常方便。
    我只在 OS X 上编程,Linux 想必是没有什么问题的,Windows 就不清楚了。
    社区活力,你可以从 Rust 编译器的参与度来看,基本是开源的编程语言中最活跃的之一了。第三方库也越来越多,参见我上面的链接和 https://crates.io/

    @hooluupog 嗯,我不管 Go。
    loading
        30
    loading  
       2015-02-28 15:25:23 +08:00
    @hooluupog 推荐本 Go 的书吧!
    rust目前还是太年轻,语法老变。。。
    tioover
        31
    tioover  
    OP
       2015-02-28 15:38:02 +08:00   ❤️ 1
    @loading
    嘛,语法基本已经不变了,有些细节还在变,
    但是一个半月后Beta发布语法和库就真的固定了,之后是 bug fix 和向后兼容的增加特性
    hooluupog
        32
    hooluupog  
       2015-02-28 15:47:22 +08:00   ❤️ 1
    @loading 官方的那个tour of go,雨痕的笔记和Go by example,Learning-Go-zh-cn(翻译版的电子书)都可以,这些都是入门的。感觉目前Go比较简单,没有什么值得深入的东西去写(比如像effecitve c++那种的,当然如果你对gc,编译器,调度器,并发怎么实现的很感兴趣,可以看源码,也有一些博客有这方面的介绍,但这些东西和使用这个语言本身来写东西 关系不大),基本上半天看书,半天上手,第二天就可以写个项目练手了。
    limhiaoing
        33
    limhiaoing  
       2015-02-28 23:28:29 +08:00
    最近也在学rust,握手。
    djyde
        34
    djyde  
       2015-03-01 00:01:42 +08:00
    我想问什么是安利文
    Comdex
        35
    Comdex  
       2015-03-01 00:40:06 +08:00
    rust的语法没有go简单吧?让学java和c的人学习成本相比较大就阻碍它的发展了,这一点go很好
    janxin
        36
    janxin  
       2015-03-01 08:41:53 +08:00
    Rust适合C/C++程序猿转过去,Go更简单,适合最开始上手
    joyee
        37
    joyee  
       2015-03-01 09:01:56 +08:00
    @Comdex java/c转到C++的学习成本也不低吧,rust本来就是冲着C++去的
    tioover
        38
    tioover  
    OP
       2015-03-01 14:23:28 +08:00 via Android
    @Comdex
    确实没有Go简单,看爱好了。
    我个人认为付出的学习成本很值。
    你如果有函数式编程andorC++编程经验会很爽的,而且类型安全对于消除Bug的帮助很大。
    tioover
        39
    tioover  
    OP
       2015-03-01 14:24:25 +08:00 via Android
    @janxin 看领域,有些领域不适合Go,你又不会C++,学Rust就很棒。
    tioover
        40
    tioover  
    OP
       2015-03-01 14:25:06 +08:00 via Android
    @djyde 推荐 传教
    acgeo
        41
    acgeo  
       2015-03-01 14:41:43 +08:00
    那Nim和rust 相比呢。。。


    我是C++码农,特别稀罕rust,不知道何时能真正用上它
    tini14
        42
    tini14  
       2015-03-01 17:01:02 +08:00
    没把分号去掉,有些遗憾
    tioover
        43
    tioover  
    OP
       2015-03-01 19:19:41 +08:00 via Android
    @acgeo 我前面说了一下。
    joyee
        44
    joyee  
       2015-03-01 19:50:21 +08:00
    @djyde 你听说过安利吗?XD
    janxin
        45
    janxin  
       2015-03-01 20:42:07 +08:00
    @tioover 赞同
    Comdex
        46
    Comdex  
       2015-03-01 22:39:40 +08:00
    @tioover
    @acgeo
    @janxin 看看D语言吧个人觉得比rust更好,以成为第二个c++为目标
    artwalk
        47
    artwalk  
       2015-03-02 11:05:42 +08:00
    前一阵子去过 Firefox 的 rust 见面会,感觉目前还是太小众了
    tioover
        48
    tioover  
    OP
       2015-03-02 13:03:00 +08:00 via Android
    @Comdex D语言发布了很久但是社区不见起色,没了解过,请问比 Rust 好在哪里呢?
    tioover
        49
    tioover  
    OP
       2015-03-02 13:04:20 +08:00 via Android
    @artwalk 一个几周后才开始向前兼容的语言,在国内不小众也难,同时,你去 GitHub 比较一下会发现一点也不小众。
    yegle
        50
    yegle  
       2015-03-03 08:22:15 +08:00
    是这样的…我听说rust很好用,就去官网想看tutorial学习一下,结果tutorial给的代码居然跑不了,只好作罢…

    然后我刚才想给出当时看的tutorial的页面作为证据,结果发现这货的tutorial已经被deprecated了…要不要改得这么快啊… https://doc.rust-lang.org/tutorial.html
    tioover
        51
    tioover  
    OP
       2015-03-03 19:15:17 +08:00 via Android
    @yegle 常有的事,但是现在大改少了,基本不会遇到了。
    你这个很早就废除了,已经有几个月了。
    学的话可以看 book 或者 rust by example
    Comdex
        52
    Comdex  
       2015-03-04 19:34:27 +08:00
    @tioover 语法容易上手,而且这货的反射居然是在编译时完成的!
    tioover
        53
    tioover  
    OP
       2015-03-05 00:25:03 +08:00 via Android
    @Comdex 编译时的就不叫反射了吧
    artwalk
        54
    artwalk  
       2015-04-07 21:45:34 +08:00
    @tioover 我是希望设计不错的语言,诸如 rust 等,能流行起来的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3200 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:25 · PVG 22:25 · LAX 07:25 · JFK 10:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.