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