在做 Python web 开发的过程中发现有不少库都借鉴自 Ruby,比如 Plim 与 Slim,factory_boy 与 factory_girl,gunicorn 与 unicorn 等等。所以在需要看源码的情况下,直接看 Ruby 实现可能会比看 Python 的更好。当然,这里并不是说 Ruby(在这些方面)领先 Python 很多,语言之间的互相借鉴本就是非常常见的,同样也有很多从 Python 移植到 Ruby 的应用,比如 IPython 与 SciRuby 等等。
此外,在最近做系统管理、运维的过程中发现,Ruby 的运维工具也非常丰富,借由 GitHub 的传播影响力非常巨大,学会了 Ruby 肯定有助于使用 Puppet、 Boxen、Vagrant、Compass 这些常用的开发、运维工具。
从语言方面来说,Ruby 与 Python 在设计方面还是有很多不同之处,学会 Ruby 也有助于理解函数式编程范式。另外 Ruby 和 OC 的面向对象中都深刻着 SmallTalk 的影子,学会 Ruby 后应该也有助于掌握 iOS 开发吧。
当然,还有一点也很重要:手里刚好有两本 Ruby 相关的优秀书籍:
也算是诱因之一吧~
虽然最新的 OS X 中都预装了 Ruby,其提供的却是 Ruby 2.x,并且无法和 IRuby/SciRuby 很好地合作,但并不推荐将其卸载,因为并不清除有哪些系统应用是依赖于它的。
使用 Homebrew 安装 Ruby:
$ brew install ruby
...
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
REPL 环境对于学习一门新编程语言的帮助是非常明显的,所以 REPL 工具的好坏非常重要! Ruby 虽然已经自带了 irb
,但鉴于其智能程度实在难有作为。除 irb
外,Ruby 也有一些其它的 REPL 工具,但强大程度仅相当于 Python 的 BPython。与 IPython 同源的 SciRuby 是个非常好的选择(IRuby 已废弃,代码库已合并进 SciRuby)。虽然尚未找到能匹敌 ptIPython 的工具,SciRuby + Jupyter Notebook 也足够使用了。
通过 IPython 来提供 Jupyter Notebook:
pip install ipython +notebook
安装 SciRuby 完整版:
gem install sciruby-full
(可能在安装 nmatrix 的时候出现编译错误,这时候主要功能基本已经安装完成了,运行 iruby register --force
强制注册 Homebrew 安装的 Ruby 即可。)
不清楚需要什么的情况下还是安装完整版靠谱些。
Ruby 官方教程中有一章 Python 到 Ruby 的快速对比:
;
);.extend()
;0
0.0
[]
{}
,都是真值;elsif
对应 elif
;require
对应 import
;del
)。