原文:
http://blog.csdn.net/shendl/archive/2010/08/04/5789208.aspx
這種帖子居然被推薦到CSDN首頁了,而且還是個排名192的CSDN專家寫的,CSDN的質量在下降.
我蠻久沒玩Ruby了,看到這樣的代碼完全看不懂了。
class Customer < ActiveRecord::Base
has_many :orders, :dependent => :destroy
end
也不想看懂了.
這個都看不懂就評論Ruby,完全是門外漢.
Ruby的語法糖的確很多,但不需要你都記住,看不懂的時候查查手冊,只要你的項目裏面不要用NS整天回帖中寫的那些黑魔法一樣的代碼就行了.
Ruby不是隻能寫出複雜的代碼,它寫起來簡潔的代碼是非常清爽的,它寫的代碼簡直就是readme手冊一樣,不需要你再去man一下資料.
Ruby標榜自己的函數式編程能力很強。什麼lambda什麼的。
函數式編程絕對沒有任何值得吹噓的,但我不知道有沒有Rubyer在吹噓,不過Ruby做這個完全沒問題啊,有什麼好評價的?
這個作者完全不知道什麼是函數式編程的意義.
只有Erlang的那種能起多個輕量級進程,並且做高併發的語言,以函數式編程用來實現應用的語言纔是最有價值的.
函數式編程爲什麼這麼火?
- 因爲多核,
- 因爲分佈式計算,
- 因爲容易調度.
- 就是因爲它沒有定義保存狀態的變量(或者說很少定義,雖然Erlang可以通過hack方法做到),這樣使得它容易併發.
如果還要說函數式編程有什麼好的,那就是它小小改變了一下人們的編程思維而已,不過那種編程設計剛出來的時候不改變人們的思維呢?追新而已,有不一定多有用.
C語言照樣寫函數式編程,效率更高呢.
Ruby要做到函數式編程思維完全沒問題,有個lambd就行了?爲什麼不可以呢?還有其它那篇文章提到的幾個特性,我不知道python怎麼實現元組的,我覺得像haskell那樣的元組纔有提到的價值.
不過Python的函數式編程再牛12+1,別忘了他是腳本語言,別忘了他的全局解釋器鎖,這樣的硬傷讓它沒辦法想Erlang一樣並行的啓動多個進程或線程去處理任務.
拿函數式編程來大家Ruby,也不看看自身有多少實力.
下面這些不需要評論,擦,那個作者根本沒必要寫出來:
· Python不能修改內建類的方法和屬性,只能繼承它們。 · Ruby可以修改。--------這有個鳥用?把基本類型弄壞了咋整?
怕弄壞你別用啊.
· There are a number of shortcuts that, although give you more to remember, you quickly learn. They tend to make Ruby fun and very productive. · 這個是Ruby的一大缺點。Ruby有很多快捷鍵,默認值。很詭異。如上面那個Rails生成的類,太難看懂了。
有沒說一定要你學,給你提供一個更簡潔的方式去做事,你用不用是你自己的問題,幹嘛怪Ruby呢?
實際上,在Linux平臺,數量最多的開源和商業程序是C程序,第二就是Python了。Linux中有大量程序是用Python編寫的。如虛擬化中的Libvirt和相關的套件等。
我不想說第二是Python還是Perl還是Shell了,我覺得Python寫的是libvirt的擴展-xen-吧,libvirt是C寫的吧,幸好哥哥當年玩虛擬化的時候沒少上:http://libvirt.org/去看它的源代碼,要不然就被丫的忽悠了!
最後,反省和總結:
Python的開源資源浩如煙海,Ruby怎麼比?
兄弟們多努力啊,奉獻點NB的應用出來.
說句實話,Ruby也是設計精巧,不錯的語言。相當靈活,威力很強。但是Rubyer到處詆譭其他語言,擺出老子天下第一的架勢,這我就看不慣了
裝12+1者要自省,Ruby就是一個好用點的工具而已,不是天下第一,只是我們都愛它.
PS:
誰能推薦我一個高質量的Ruby論壇?
再推薦我一個高質量的開發者論壇,以Linux C爲主的.
我想換博客了.