我從沒有對Ruby有過負面評價,我的出發點是不要把開發語言的優點、缺點看得如此的重,他們本身是同質的,真正能夠給開發效率帶來的提高并不大。我在這里強調了算法,是想強調軟件開發的難點是現實問題的復雜性,這些才是軟件開發中大的障礙,任何開發語言遇到這個問題都無能為力。我不想比較什么優缺點,ruby我了解一點點,耳濡目染,但至少對我現在所了解的情況來說,還沒有什么讓我覺得ruby較其他語言有本質上的進步,大同小異罷了。我相信語言還會不斷進步...,但它還僅僅是語言,是表達形式,內容才是重要的。
ruby和其他web開發語言大的本質不同是開發速度了,比J2EE快5-10倍,這難道不算本質上的進步嗎?
現在的商業社會,是拼速度的時代,你的速度比別人快,你贏了,是這么個游戲規則。
說到web開發涉及到的企業應用業務邏輯,絕大部分沒有什么算法上的難度,業務邏輯的抽象也不至于難到令程序員根本無法抽象的地步,絕大部分你只要對相關業務進行一段時間的培訓,都不成問題,你能做別人也能做,但是同樣的人力,人家做10個月,你1個月搞定了,所以你成本低,你又贏定了。
現在的應用軟件開發中大的障礙根本不是什么現實問題復雜性,應用軟件開發的大障礙是開發速度和開發成本問題,還有需求變更響應能力上。
客戶希望3個月上線,結果你拖拖拉拉搞了一年才上線測試;老板希望投入10個月,結果實際投入30個人月項目還無期;客戶需求朝令夕改,幾次反復的折騰把軟件改的面目全非,什么架構,什么模式,什么bad smell統統被迫拋到爪哇國,只求早點結束這噩夢。這些現實項目遇到的大難題,難道不是通過語言的進步來解決的嗎?你對現實問題的復雜性搞的再清楚,你能架得住客戶的折騰?你能搞的定項目開發的延期?
采用了先進的開發語言,投入高水平的開發人員,我現在2個人月項目上線,客戶需求只要不太離譜,他上午提出,我下午改好,這樣去做項目才有競爭力。