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

两篇 Rust 安利文

  •  4
     
  •   tioover
    tioover 2015-02-27 22:13:58 +08:00 13733 次点击
    这是一个创建于 3880 天前的主题,其中的信息可能已经有所发展或是发生改变。
    传教文: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     Solana     5560 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 07:18 PVG 15:18 LAX 00:18 JFK 03:18
    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