这是个用rust重写emacs的项目吗?
并不看好这个项目的前景。
终端用户无法从remacs中获得直接收益,所以需求并不大。
个人感觉这个项目的作用是证明RUST语言在大型项目中的可实用性,毕竟现在使用rust写的知名软件貌似就一个firefox?
TiDB 有部分代码是用rust写的, 但是没研究过。
rip-grep
也算一个吧,推荐下
tidb和emacs有啥关系。。。。
不要觉得操作系统都是大项目。听说过 30 天写一个系统这本书吗。
比起动辄几十万行的满足 POSIX 标准的常规 Linux 发行版,Redox 的代码基础就算把自己搞的文件系统内核之类算上也算是小得很。看看挺大,其实内核不比 Minix 大,文件系统代码不过几百来行。
Gentoo GitHub - gentoo/gentoo: [MIRROR] Official Gentoo ebuild repository 同样是操作系统分发版。这里光就是 ebuild,而且还不算社区的。接近 2 万个包,能加进来的都是官方测试过能用,无明显问题的,而且长时间无人维护的都会剔除掉(指的是维护 ebuild,软件本身长时间不更新,只要没有明显 bug 也无妨,比如 xterm)。我不觉得 rust crates 总共接近 一万五的包,Redox 个个都能用上。
我记得国内那啥公司已经把自主研发的 Linux 过 Unix 认证了,好几家来着,说白了认证都是花钱就能买的东西,连 Apple 近来都不吃这套了。自主研发这种为了骗经费发明的概念就不要信了,先不说“国家安全”相关再怎么着急也接触不到,要是真做出来了科研人员可就要喝西北风了。说回来,你见过哪个现代操作系统真的是从零开发出来的?Windows NT 的整个构架都是抄的呢。
开源项目不分国界。别问我为开源项目做了什么贡献,老子给 FreeBSD 捐了 30 刀。
微内核也能做成大项目,GNU Hurd 作为一个永久的半成品明显做的比这大。
我在 Gentoo 编译了个 rustc,为了回本翻了下,还没找到过多少像样的用 Rust 写的 userspace tool。rg fd alacrity,还有几个用途比较偏的,别的都没了。相比起来,JS 的 npm 各种 command line utility 一抓一把,就连 golang 的工具也不少,比如 elvish, leadger 和 ranger 也有用 go 写的克隆。
不好意思我不搞前端后端,rust 可能有很多库,但是对于用户来说,rust 的生态实在太过稀薄。
用各种奇形怪状语言写的操作系统出于兴趣我了解的挺多,多数也都能 run on bare metal,Limbo 写的分布式操作系统,Lissac 写的纯面向对象的系统,Forth 写的以 HTML 为用户图形界面语言的系统(当时 HTML 被认为是未来写图形界面的潮流,现在倒也不能说完全过气),Smalltalk 也有个正儿八经的操作系统。Lisp Machine 在那时候都算是主流了。C 没有出现之前也不是只能用汇编写系统,PL/I 曾经也很流行,定位类似现在的 C++(还记得 Multics 吗)。只不过离现在时间可能有点远,这世界被 Unix 毒害得太久,反而用 Rust 写个 OS 就被当成奇事了。
当然以上不代表我不看好 Rust,虽然我确实不怎么看好 Rust,至少再观望个五年吧,毕竟语言标准一直没有定型,Mozilla 也不能算是个有威望的爹。
我觉得 @LdBeth @xianghx 的观点都过于片面。
@xianghx Rust 的确有很多大的动作,但是并没有你说的那么蓬勃,或者说成熟, SIMD/嵌入式开发是 2018年的工作重点之一,现在很不成熟; Async IO, 即 Futures/MIO/Tokio 都还没有稳定, futures 也只是 0.2; 后端 web service, Iron/Rocket/Gotham 等框架都是还没稳定,完全达不到Django/Flask/ROR/Spring 等工业级的层面。 Web Assembly 倒是发展迅速;IDE support, 现在这是一个很大的问题,虽然rls 已经 beta test, 但是还是不太稳定,现在还没有非常强大的IDE支持,比如golang 都有jetbrains 的goland, Rust现在还没有非常decent 的debugger, gdb-rust 能用,但是不够便利;至于 intellij-rust 需要Clion 才能调用 gdb.
@LdBeth 对于一个编程语言,关于点应该是这个语言能够解决什么问题,对比其他语言多了什么优点,虽说这个会出现语言之争。在我看来,你对Rust 的了解应该还不多;
毕竟语言标准一直没有定型,Mozilla 也不能算是个有威望的爹。
语言标准没有定型,一个语言在它 1.0 发布之后就把稳定下来了,我不懂你说的语言标准没有定型下来是什么意思?评判一个语言不应该用它做了什么东西作标准,应该是它能作什么?
Rust 的生态太稀薄
或许你没有关注Rust, 可能用户层面Rust 比较知名的就是 ripgrep,以及Firefox 的servo. 但是就开发而言,Rust 的工具链还是稳步增长的,需要知道的是Rust 1.0 是2015年5月发布的,现在过去也没有3年,但是现在已经看到很多的Rust 的讨论了。如果要客观地评价一项技术,难道不应该明确这项技术的优点和缺点么?
对我來說这算个大问題,就算不是 ANSI IEEE 之類的,有个 de facto 也好啊。沒有个稳定的 Handbook 的话,要一直 Follow 更新,我是吃不消的,因為我沒有非用不可的理由。Haskell 和 Rust 重叠的特性部分对我來說足夠。
Turing complete or computationally universal
ion 是 script 向的。我期待的是 fish 或 elvish 那種 interactive 向的。
Haskell 是有正经标准,有高性能实現,有悠久歷史,有活躍社区的四有实用语言
或许我的观点和你不一样,我并不满足于能用就好。如果这些crate 要做到 industry ready, 就不能是 0.几的这种状态。如果不稳定下来,就不会有公司敢冒险去把他们用到生产环境,也不会有Rust 的工作岗位,也很难吸引更多的人来学和用Rust, Rust 的目标是做个 practical 语言,所以这些是必须做到的,不然又是另外一个haskell. IDE 你不用,但是不代表这个不需要有,我也是用lsp-mode + rls, 但是我还是希望有强大的IDE,因为Rust是强类型的语言,所以IDE的加成很大的,想想Java, IDE support 是吸引更多人用Rust 的条件之一,更多人使用Rust,自然可以反哺Rust,让Rust变得更好。宏现在也很强大,类似Scheme 的宏,但是现在没有对应的宏展开的IDE 支持,所以好用但是难写难看难维护。吐槽一下,敏捷开发不是不调试呢 ~
或许你误解了我的意思,就事论事哈,我说你对Rust 不了解的意思是 你是否学习过Rust?是否使用过Rust 编写应用或者类库?就计算机编程语言来说,如果没有真的编写过代码,怎能说真的了解这门语言呢?在作出评论之前,你应该编写过这门语言的代码,而不是简单地看一下 Rust vs xxx, Rust compare to xxx 这类的文章,不然你的评论也只是空中阁楼,沙滩城堡而已.
沒,等 de fecto 标准出來再說。
只是看看的话,个人感覺 ALGOL 系的语法不喜 抽象有點低,比較难受。不是目标受众。
平心而论语言本身太 mean,沒什麼惊艳的部分。