2007年8月16日 星期四

半年來用Ruby的觀感

原本想把《Programming Ruby》K一K後再來寫心得,轉念想想,正因為學得不夠深,心境貼近,才能寫出未入門也感興趣的心得文;另一方面,照我在技術方面待學清單來看,不知那天才會輪到讀這本書,還是先寫心得吧。

今年寒假時,受到《Beyond Java》的鼓吹,對Ruby燃起興趣,那段期間一邊學Ruby一邊學Rails,做完一個網站,賺一筆工讀費,接著在過年回家期間花了一週啃完《Programming Ruby》Part I,之後開始漫長的實戰之旅。

寒假讀了這些書後,覺得投資Ruby前景看好,依我個人寫程式習慣,可分為三類:

  1. 處理文件雜事的小程式,一般用Perl、awk、shell script等雜項工具打發。
  2. 寫個人網頁、接case,一般用PHP打發。
  3. 寫作業、做研究用途,一般用C或Java,規模小的用C,大的用Java。

但Ruby將三個願望一次滿足!Ruby身為Perl的後續者,Perl有的能力差不多都有,只是lib比不上CPAN,不過前景看好,不用擔心這個;Rails這殺手級framework不需多介紹,用PHP寫一堆重覆零亂的程式後,我已厭倦用PHP寫網頁;至於Java,唯一的不滿是笨重,在《Beyond Java》的心得裡有些討論。

這半年來我確實全都用Ruby搞定要做的事,用Ruby寫比賽用的網頁和後端程式、用Ruby抓Web data、用Ruby實作研究用的演算法、用Ruby處理文字檔。each和map愈用愈多,去掉語意不明的for loop,改用語意明確的一行code搞定,還有配合irb這個runtime interpreter,即時測試method用法,或處理小資料,相當方便。半年前投資Ruby的決定至少幫我省下一半coding時間,當然,愉快度也提高一倍以上。唯一的不滿是Ruby沒有直接支援UTF-8,相較於Python,這是很大的弱點。

接下來要找個時段好好地讀《Programming Ruby》,學習更進階的用法,發揮Ruby更大的功效。

另外,我不覺得Python不好,之前和Scott討論後,覺得兩者大同小異,只是剛好寫慣了Ruby,暫時不會嘗試Python,個人稍微嫌Python要打的code多了一點,寫起來爽快度低了一點,不過玩Python也是遲早的事,唔...還有在淹沒在待學清單裡的Haskell。

ps

用一個語言與否,個人認為主要考量是語言的特性、既有lib的質與量,以及開發社群。以C#來說,開發社群是MicroSoft,以Perl來說,是廣大的OpenSource族群,開發社群決定語言的未來。這半年來JRuby有不少消息,透過良好的商業發展,Ruby和JVM的完美結合指日可待,JRuby的完成,等於立即幫Ruby裝上數卡車的火藥,威力倍增,Java有的lib都能被Ruby使用!所以這半年來不論從那個方面來看,我對Ruby的信心又更高了。

沒有留言:

張貼留言