Ruby的瓶頸 以及PHP何以成為Web之王
譯文【51CTO精選譯文】本文出自killerphp.com的站長Stefan Mischook,并在發(fā)布之后被推送到了著名的PHP開發(fā)者社區(qū):phpdeveloper.org當(dāng)中,從而引起了不少爭議。姑且不論Stefan撰文的用意如何,但其中提到的Ruby面對的問題:缺乏庫的支持,不容易擴(kuò)展,容易崩潰等等,都是Web編程語言所必須要改進(jìn)的。
在2006年的時(shí)候,我創(chuàng)立了killerphp.com,目的就是為了讓W(xué)eb設(shè)計(jì)人員更容易地學(xué)習(xí)PHP。當(dāng)時(shí)我認(rèn)為PHP是占據(jù)著主導(dǎo)地位的語言,它應(yīng)該成為每位web設(shè)計(jì)師的核心編程技術(shù)之一:
◆html
◆css
◆php
◆javascript
后來Ruby橫空出世,不過好景不長,很快就又消聲匿跡了。
Ruby和Ruby on Rails到底怎么了?
曾幾何時(shí),Ruby是有史以來最好的語言,其它所有語言相比之下都不值一提。時(shí)過境遷,現(xiàn)在回過頭去看,這簡直就是個(gè)笑話。
現(xiàn)在Ruby的光景已大不如前,遠(yuǎn)遠(yuǎn)不像當(dāng)初那樣引人注目。這輛軌道車(Rails train)實(shí)際上已經(jīng)從軌道上滑落——現(xiàn)在Ruby陣營里已經(jīng)有了可以替代Rails的web框架Merb。當(dāng)然嚴(yán)格說來,Merb和Rails只是正在合并,所以說它脫軌有些言重了。
那么到底出現(xiàn)了什么狀況,制約了Ruby的發(fā)展呢?
限制Ruby擴(kuò)張的原因和我2006到2007年時(shí)上線這個(gè)網(wǎng)站的原因是一樣的:Ruby的心已經(jīng)碎了。
◆是的,Ruby有很棒語法規(guī)則。
◆是的,寫Ruby程序很有意思。
◆是的,它的確是純粹的面向?qū)ο螅畲蟮拿嫦驅(qū)ο螅?/P>
但是,Ruby也有許多缺憾:許多重要的庫和函數(shù)在PHP程序員看來理所當(dāng)然的,卻讓Ruby程序員羨慕不已,卻只有干流口水的份,因?yàn)镽uby沒有提供這些。如果實(shí)在需要的話,可以用C語言編寫補(bǔ)丁,但是這太痛苦了。
除此之外,Ruby還有些不可告人的秘密:crash-o-matic。確實(shí)是這樣的,基于Ruby的Web程序經(jīng)常崩潰。與Web服務(wù)器沒法良好結(jié)合,這讓Ruby總是如芒在背。
證據(jù)在此:Ruby曾造成Twitter連續(xù)三周出現(xiàn)性能問題
……當(dāng)然平心而論,我聽說這方面已經(jīng)得到了一些改善。
這和PHP又有什么關(guān)系?
正如我?guī)啄昵霸谝黄P(guān)于Ruby的博文里所說的(51CTO編者注:那篇文章寫在Ruby崛起不久的時(shí)候,那時(shí)一個(gè)普遍的觀點(diǎn)是Ruby可能將代替PHP):PHP的恰好就彌補(bǔ)了Ruby的不足。不可否認(rèn),PHP的某些方面確實(shí)不如Ruby那樣漂亮。但是正如人不可貌相,如果一種語言華而不實(shí),那誰還會喜歡呢?
……好吧,也許你可以分別試試這兩種語言!但是不管怎樣,不要被哪一種語言一葉障目。
我還是認(rèn)為至少到目前為止,PHP是學(xué)習(xí)web編程的最好入門語言。原因如下:
◆功能強(qiáng)大
◆容易學(xué)習(xí)
◆擁有大的市場 = 你有更多的活兒可以做
說了這么多,難道PHP就是完美無瑕,處處占優(yōu)嗎?不是這樣的。每一種語言都有其優(yōu)勢和劣勢——尤其是在結(jié)構(gòu)層次上,PHP還很欠缺。我的意見從來都是,按照項(xiàng)目的需求選擇使用的語言。最開始我是個(gè)Java程序員,這么多年來我使用過不下7種編程語言。所以我堅(jiān)持認(rèn)為,選擇適合項(xiàng)目的語言才是最重要的。
原文:What happened to Ruby? And why PHP is KING of the Web.
作者:Stefan Mischook
【編輯推薦】