2007/06/13

JRuby 1.0 - pure-Java implementation of Ruby

距離上次寫 Ruby 學習手札好像距離很長一段時間了orz

最近無聊亂繞多看了一些網誌,發現 JRuby 這玩意。原來這是個以 JVM 作為平台來實現 Ruby 語言的直譯器,實在有趣。剛好被我發現的時候出了眾所期待的 1.0 版本,對我來說也是剛好,馬上下載安裝。

JRuby 官網:http://jruby.codehaus.org/

如果是 Windows 環境,下載區內有個 jruby-bin-1.0.zip 的就是了。存到本機後隨意解壓,例如 C:\jruby。注意因為這是以 JVM 為平台的,所以 Sun 的 JRE 也要安裝,因為我個人就讀科系的關係,剛好有安裝 JavaSE 6 JDK。接著只要設定環境變數 PATH 和 JAVA_HOME 就搞定了。PATH 加上剛才解壓後的目錄內的 bin 目錄位置 (本例是 C:\jruby\bin),JAVA_HOME 就比較容易,直接找到 JRE/JDK 的安裝目錄就可以了,不需要特別指到 bin 目錄 (像我是 C:\jdk)。這樣安裝就完成了。

到底怎麼用呢?很簡單,打開命令提示字元,打入 jruby -v 看看,假如出現一行版本資訊 (ex: ruby 1.8.5 (2007-06-07 rev 3841) [x86-jruby1.0]) 那就成功啦,如沒有請檢查環境變數設定是否正確。接著便可以打開文字編輯器來寫 Ruby 了。

JRuby 吸引我的其中一個功能是它已經可以使用 Java 廣大的套件,例如 Swing (javax.swing) 套件,這根本是如虎添翼啊。我對 Ruby 的基本還不是相當熟,但是我對 Java 的熟練肯定比 Ruby 要來的高 (廢話,學科有當掉壓力啊XD 雖然我的成績沒有什麼危機w)。之前熟悉的一些套件碼就可以搬過來讓 Ruby 用用,實在不錯。所以就是改用 Ruby 寫 Java 程式的感覺,我想這樣的學習方式也不錯啦 XD



試寫 JRuby,第一行首先要引入 Java 操作套件庫,然就就可以跟 Java 接軌,這感覺真奇妙。能用我熟悉的 JOptionPane 作使用者交互介面還真好玩 :-)

以上程式碼主要使用 java.util.GregorianCalendar 和 JOptionPane.showConfirmDialog 做一些操作,以使用者輸入的年紀回算出生西元年。題外 include_class 不能像 Java 的 import 使用星號真是囧啊,常常忘記某個類別屬於那個 Package,還得到 API 查查。

喔,JRuby 跟 Ruby 一樣還是屬於 Scripting Language,雖然 JRuby 1.0 說有 JIT Compile 以提升執行速度,不過我沒看到什麼 class 檔出現。要執行 *.rb 檔只不過從以往習慣的 ruby *.rb 改成 jruby *.rb 罷了。

C:\>jruby test.rb


每次看到很多專案使用 RoR (Ruby on Rails) 就很想玩玩,不過我就是看不懂怎麼玩,還是先來學 Ruby 吧。剛好在學校圖書館借到「Ruby Programming - 向 Ruby 之父學程式設計」一書,而且可以到暑假後開學再還,加上有 JRuby 這麼有趣的東西,真該好好學習啊orz

沒有留言:

張貼留言