哪一種語言?
Ruby 官方定義 Ruby 是一種「快速而簡易的直譯命令稿式物件導向語言」 (Interpreted Scripting Language for Quick And Easy Object-Oriented Programming) 稍嫌囉唆了點. 不過這也告訴了我們 Ruby 的特性:
Hello, Ruby!
什麼? 又是 Hello, world! 唉, 我好難過, 你一定沒有看上一章就跳來這邊了對不對. 不是的, 這裡我們要來介紹 Ruby 的幾個基本模式. 別以為這不重要, 熟知 Ruby 的基本操作, 它將不只會是一個直譯器, 還會是你生活的好幫手呢! 雖然他目前應該沒辦法幫你養牛就是了.
$ ruby -v
那個… 裡面的 $ 是代表命令提示字元, 請千萬別打 $ 字號上去啊!
執行結果:
$ ruby -v
ruby 1.8.2 (2004-12-25) [i386-freebsd5]
其實查詢 Ruby 版本是一件重要的事情, 由於它現在尚在開發階段, 有些語法可能會跟舊版不相容, 加上可能會有些 Bug 需要更新漏洞, 所以請務必要時常更新 Ruby 並留意最新動態.
#!/usr/local/env ruby
#[filename.rb]
puts 'Feed the cow!'
$ ruby filename.rb
Feed the cow!
第一章的介紹, 所有的程式檔案都可以這樣執行, 也是 Ruby 最常被使用的模式. 嗯? 我們家真的養了一頭牛耶……
$ ruby -e 'puts rand(45)+1'
37
颱風天在家閒得發慌, Ruby 擠了牛奶等你一起共進晚餐, 正要開動時才想到, 樂透就要開獎了! 離投注截止時間只剩下十分鐘, 平常 Ruby 會吃下一整個程式檔案然後慢慢消化, 不過今天情況緊急, 你請他趕快幫你想個號碼, 於是他在 1~45 的號碼中他選了 37, 就這樣你很高興的去投注了, 結果發現只有一個號碼是沒用的, 於是你鎩羽而歸, 然後糗得要死. 這就是 ruby -e 的作用, 它可以讓你只執行一小段程式碼, 幫助您解決生活上的小問題.
注意事項
使用產品時最怕看到的就是注意事項了, 裡面總是寫著一些不堪入目的可能狀況, 像是生髮水會請您小心長頭髮, 礦泉水可能會要我們注意沉澱物, 還會請我們安心飲用這些沉澱物等等; 相較之下 Ruby 的注意事項似乎沒有這麼嚇人, 頂多是請您停止散布該軟體, 有些話我們總是希望說在前頭 ( 雖然這已經算是第二章 ):
新生的紅寶石
松本行弘 (Matsumoto Yukihiro) 先生, 網路上慣用 ID 為 Matz, 在 1995 年時發表了 Ruby,
創造者不是歐美人, 這與一些知名的程式語言不同. 而後出版了下列兩本書:
其中 The Ruby Programming Language 一書成為聖經本, 在 Ruby-doc 官方網站中也可以找到其電子書.
由於 Ruby 至今 (2006) 也才發展十年左右, 創造者也才年近不惑, 因此也許哪天在高爾夫球場上看到 Matz 先生揮杆, 也不要覺得意外.
來勢洶洶的挑戰者
近年來 Ruby 開始受到各界矚目, 並討論它將如何挑戰現有的語言, 沒錯, 他帶來了一些前所未有的概念,
期望可以改善人類生活 ( 例如養牛之類的 ), 但是正因為 Ruby 屬於變革的里程碑,
可能挑戰現有的設計原則 ( Design Principle ) 所以若是硬要將現有程式改成 Ruby, 反而會帶來意想不到的後果.
因此個人在此希望 JAVA 使用者不用太過緊張, Ruby 確實帶有挑戰的意味,
跟十年前 JAVA 挑戰 C++ 一樣. 不過紅寶石有他的光澤與美好,
但縱使它亮麗奪目, 爪哇咖啡還是可以照喝的.
版權
這個就傷腦筋了, 談到自由軟體大家都很快樂, 因為不用花錢, 想取得又很容易, 但是一提到 GPL 就面如死灰, 了無生趣,
Ruby 在此提供了一些解決方案, 如果你只是拿 Ruby 來寫程式的話不會出什麼問題, 拿出去賣也無所謂,
也就是說:
Ruby 財產權依然歸屬 Matz 先生, 但原則上同意您將用 Ruby 寫的程式連同 Ruby 直譯器一起出售, 只要不要更動到 Ruby 本身的程式碼, 就沒有問題.
以上版權解釋僅供參考, 請詳見 Ruby 授權條約原文,
若因本文件解釋有誤致使他人產生法律問題, 本人將不負任何責任.