写 ruby 有个很大的问题是,ruby 源码是 C,你没法参考源码写 ruby,或者改变不了内部行为 类型系统也不现代,实现思路也没有 PEPS 这种参考,我对 ruby 有点失望了,有 ai 还好点,给你找网页,之前纯靠猜吗?
crystal 源码精炼优雅,既能用又能学,如果出了杀手级应用,或可以把 crystal 推到全平台支持,这是我乐于看到的 很多语言都只提供主流平台架构支持,crystal 不算特别劣势,但它一脉相承的优雅语法,绝对可以减少许多的选择内耗
end 结束语法是对复杂逻辑分支的视觉引导,对大型代码库的可读性保持, 低特异符号是对编程流畅度,代码易读性的坚持 选择 crystal 是为了我对编写可读的代码的坚持
我现在有个想法,crystal 是编译型语言,它没有 gem 这种预安装的 lib 存储库,所以不能简单的像 ruby 一样随便写,然后 gem 引入依赖。 这是 crystal 生态缺失的地方,你可以看看有没有兴趣。它的作用就是用更好的标准库替代 ruby 写脚本。
关于用 rust 提速,我觉得没什么必要,高度相似的语法,使得 ruby 重写到 crystal 就能简单的获得性能提升。
而迈入 rust,就是另一种编码体验了,单态类型的标准库,会让编程也充斥样板代码。 生命周期这种复杂的东西,我觉得就该是 Runtime GC 做的事。所以 rust 真正的优势领域在系统编程,而非效率工具。 不要温柔的走入那良夜,rust 坚持 zero cost,而我的坚持就是 no pointer programming.
写库 rubocop 在 rake 执行流程里 ide lsp 也可以实时的提醒代码风格问题
所以执行速度是全部 ruby 应用的问题 编译速度是 crystal 应用的问题
crystal 还没有开箱即用的像 prism 的 lexer paser 你可以看看这方面 或者 crystal 的编译缓存优化
现在好了 直接改拓展名 .trb
我想的是 crystal 转译 ruby
用 crystal 享受手写的乐趣 自己 debug,用 ai 去生成 go/rust
crystal 泛型比 go 完备
crystal,更快,ai 会写,有探索的乐趣
看我写的 types.cr
Ruby 标准库文档
可以看一下 Ruby 的 推荐语法风格 - 中文翻译
格式化代码 可以看下我的库:initdc/rubocop-config-crystal
codespace 标准 rvm 环境 未能复现
codespace > /workspaces/workspace (master) gem install cr-exec 0 <<9:50:56
Fetching cr-exec-0.1.0.gem
Successfully installed cr-exec-0.1.0
Parsing documentation for cr-exec-0.1.0
Installing ri documentation for cr-exec-0.1.0
Done installing documentation for cr-exec after 3 seconds
1 gem installed
A new release of RubyGems is available: 3.5.11 → 3.6.3!
Run `gem update --system 3.6.3` to update your installation.
codespace > /workspaces/workspace (master) 0 <<9:51:25
codespace > /workspaces/workspace (master) ruby 1.rb 0 <<9:51:25
Linux
codespace > /workspaces/workspace (master) gem info cr-exec 0 <<9:51:38
*** LOCAL GEMS ***
cr-exec (0.1.0)
Author: initdc
Homepage: https://github.com/initdc/cr-exec
Installed at: /usr/local/rvm/gems/ruby-3.3.4
Wrapper for ruby exec
codespace > /workspaces/workspace (master) 0 <<9:53:36