2007年7月5日 星期四

Ruby緣起

話說為何想要研究ruby呢?因為被網路上一句"比java開發快十倍"所吸引,老實說啦~比java開發快十倍有點誇張,我實在很不相信,不過這麼被推崇備至,我想有他的理由

再來,我實在有點厭倦了過去那種程式語言的開發方式,想說新出爐的語言是否有一些優勢,過去也不討厭script language,一般而言script language有比較鬆散跟難以管理的問題(像是PHP就是),還有他們debug有時候也真的不容易

再來好的java程式設計門檻比較高,必須學習一些類似hibernate、spring、struts等等架構,還得要理解一些J2EE的架構(這不表示這些東西就不好),有時真的還是覺得太龐雜,外加他不是原本程式就支援的,多多少少在媒合上面有些困難

我想要的新的語言是,簡單、容易調整、容易除錯(這是Programmer的大敵),且看看ruby有沒有新的idea~呵呵。

有人可能會推薦perl,可惜實在那種style不大合乎我的胃口,他真的是非常"優雅"的一種程式語言,可惜我的腦袋太僵硬了,python這一條大蟒蛇,我還沒機會領教,等等吧~有機會的~哈。

Java是一個相當成功的典範,在算他十年後(我預估)功成身退,他留下來的典範依舊是存在的。
===================================================================
在看了一陣子ruby之後,他的卻在某些方面相當優異,比方說
  • iterator方便許多(相對java5之前,java5之後差異就比較小)
  • 在getter跟setter也蠻簡單的(java要借助IDE,不然真是苦差事)
  • 所有東西都是物件(基本型態也是物件)
  • Ruby on Rails本身已經引入MVC架構
  • 可以輕易的處理Thread(但是對於java6在thread上面的加強,好像又不是很足夠:P)
  • 對多型的解釋不同,完全binding by name(也就是某種程度他不需要interface)
  • 可以隨時為了class添加method

由上面後面兩點來看,很糟糕的是有點在破壞OO的概念,因為在OO中很重要的就是interface的概念,隨時可以添加method可能會造成維護上得不容易。還是他比較貼近泛型(generic)的思維呢?

我認為另外他有一個很嚴重的缺點是GUI的缺乏,依賴Tk在發展應用程式上面會受到限制,難道要當一般的script來使用?(雖然我本人是以此為目的);還有覺得ruby在某些程式的可讀性面稍微差了一點,這是他語法的緣故。另外最後一個問題就是ruby本身的library並不夠多,像是java跟perl都是以龐大的library來提供強大的後援的

沒有留言: