Visual Quickstart Guide Ruby – Larry Ullman

ShowCover.aspx

這本書買了好幾年,一直提不起勁去認真看,此書當年出版時Ruby版本還是1.9,現在已經去到2.3。因為要架設網站,才臨急抱佛腳去讀書,先學慬基本的Ruby程式語言,才可以進階學習Ruby on Rails網站framework。架設網站為什麼不用近期流行的Node.js?一來我對Javascript沒有好感,Javascript周身刀冇張利,二來據說寫後台Ruby比Javascript寫起更得心應手,最重要是除了弄好個網站外外,我還想順便學習新的程式語言,做電腦這一行,若果不與時並進,很快便給淘汰了。

Ruby易不易學?我覺得很容易學,只用兩個星期左便上手,每晚看書太約一兩個小時。不過我的C/C++功夫扎實,加上因工作需要用了tcl這個非常古怪的程式語言十多年,Ruby的object orient programming部份有C++底子很易明,至於Ruby的dynamic programming部份,相信沒有任何程式語言比tcl更dynamic。Ruby的最大特點是所有東西都是object,包括任何variable,任何literal,甚至class和module definition都是object。因為所有東西都是object,在程式執行時,可以重寫任何method,加減class中的variables,寫code起來十分方便,不過一不小心亦很容易出錯。因為所有binding都是在run time進行,在傳統static或dynamic typing外外,Ruby獨有的duck typing,只要個object有同名的method,不理那個object是什麼就可以call。

這本書寫得十分淺白,書中的例子以irb實時執行,作者一邊教寫syntax,一邊用irb的output去解釋,為什麼執行這個指令,會得出這個結果。不過我認為Ruby並不適合初學程式者,因為它內建太多好使好用的魔法,不利學生觀測電腦如何執行程式。書中對一些高級Ruby魔法略過解釋,只是叫學生背書般不求甚解記下syntax和用法,如symbol,class attr,module include/extend等。我看書時完全看不明白,要另行上網看ruby.org的官方課本Ruby Monk的網上教材,結果我一口氣看了三本Ruby課本。真正讓我開竅,明白Ruby的精髓,是官方課本講ruby.h那一章。Ruby整個程式言是用C寫成,ruby.h便是C程式的源碼,讓開發員把Ruby程式連結其他語言的程式。當我看見ruby.h中,Ruby是如何create一個object,每一個object之間的關係,一份熟悉的感覺油然而生, ruby.h不正就是tcl.h的孖生兄弟嗎。

書中最後一章講Rails,不過Rails比Ruby本身進化得更快,書中教的那個舊版本2.x已完全過時,只有十幾頁紙完全不夠時間去教Rails,看完也是水過鴨背,還是去Rails的官方網站看user guide。其實學寫程式,真的不用俾錢上堂,網上有很多免費教材,買本書也十分便宜,自已跟著例子去玩下,寫下寫下便自自然然學識了。目標Ruby達成,下一個目標Rails。

Leave a Reply