Re: [闲聊] Rust 的实用性?

楼主: littleshan (我要加入剑道社!)   2016-12-26 01:29:33
※ 引述《Neisseria (Neisseria)》之铭言:
: 根据小弟摸一小段时间 Rust,感受到的一些优缺点:
: Pros:
: - 语言体质佳:支援 OOP、generics、functional programming 等
: 写起来有某些部分像高阶语言
: - 平台支援好:同一套程式码可直接用,不用根据平台写 #if 条件句,交叉编译也很方便
: 有点像高阶语言的程式环境,只是 Rust 是编译语言
: - 编译检查严格:能通过编译的程式相对发生问题的机会少
我觉得还有一项优势是他目标在成为系统程式语言,不使用 GC,允许 stack allocation 也允许在 unsafe block 中进行指标操作,可以达到 C/C++ 等级的效能。
: Cons:
: - 社群资源少:和 C/C++/Java 相比差非常多,新的语言多多少少都有这个问题
: 如果要拉 C 函式库,要自行处理,跨平台的优点就消失一半
: - 学习资源少:目前大部分都要靠官方文件,目前市面上只有一本 Rust 书籍
靠我们自己啦 XD
我最近正在写一系列 rust 的教学,并以 C++ 使用者为主要对象,希望最后可以抛砖引玉。
https://goo.gl/5AQE2f
(才写到第三篇,真是非常抱歉 XD)
: 明年二月到四月,会再陆续出两三本,总体上还是很少
: - 语言不稳定:Rust 经历过一些改动,某些特性实作后又放弃掉
: 使得网络上一些 Rust 相关的资讯变成错的
: 另外,目前 Rust 分为 stable, beta, nightly 三个版本
: 某些函式库作者会偷用 nightly 的版本,使得函式库不稳定
追 stable 的话,基本上在 1.0 后就真的很 stable,新功能当然是越来越多,但 1.0 出来的功能并不会突然不见。
nightly 的功能常常变动是很自然的事,我也希望严谨的程式语言在加入新功能前有实证过该功能有正确的设计。语言并不是功能越多越好,加了A可能就会牺牲到B。
: - 上手不易:也是因为编译检查严格,学习 Rust 总是要和 Rust 编译器奋战一阵子 Orz
: 其中有些东西和指标有关,如果 C/C++ 学得好,撞墙期会比较短
borrow checker 与 lifetime 那边真的很难,因为主流语言中没有这类设计,因此对大部分人来说都是崭新的概念。
反过来说,只要 borrow checker 与 lifetime 学得会,剩下的真的就很简单了 XD
: Rust 底层用到 LLVM,但 Rust 包装得很好,使用者不会碰到 LLVM
: 虽然小弟时常和 Rust 编译器角力 = =|||,基本上还算欣赏这个语言
: 但是毕竟还很新,若要引入专案可能还是要考虑一下
: 不知道各位大大会将 Rust 用在自己的专案吗?side project 也可以
: 就当成闲聊吧,听听看大家的看法
我自己很有兴趣,也会试着在一些 side project 使用。不过要在专案中使用,最大的问题还是其他人也要学的会才行。
rust 还缺一个 killer app ,像是 swift 与 go 都有 killer app (开发 iOS 与 web backend),这点是我对 rust 的未来最担忧的地方,他可能很强大,但依然叫好不叫座。
作者: ilikekotomi (Young)   2016-12-26 02:10:00
推抛砖引玉 明天来学一下
作者: uranusjr (←這人是超級笨蛋)   2016-12-26 03:02:00
Lifetime 我觉得对原本就有建立良好内存 coding style的人而言算很合理, 只是把原本已经内化的习惯变成原则让compiler 检查, 对 C 或 C++ programmer 不应该是太大障碍; borrow 就确实是需要一些新习惯才能适应我满希望 Rust 可以朝 rich application 的方向来努力如果能有个好的跨平台 GUI framework 要取代 wx 和 Qt都是有可能的事情
作者: wtchen (没有存在感的人)   2016-12-26 03:24:00
Rust对C重度使用者来说不够自由.... XD
作者: eye5002003 (下一夜)   2016-12-26 06:11:00
很有心的推广,帮了大忙!
作者: b98901056 (岳岳)   2016-12-26 11:05:00
感谢分享

Links booklink

Contact Us: admin [ a t ] ucptt.com