微軟在Azure云上開始正式支持PHP。事實上,微軟的Windows平臺對于PHP也一直有良好的支持。對于PHP開發(fā)者而言這是值得高興的,但也有不買賬的開發(fā)者。本文作者就Azure和Google的App Engine做對比,認為微軟在Azure上支持PHP是不智之舉,但也認同此舉為Azure吸引了大量的開發(fā)人員。
【51CTO快譯】本文是發(fā)表在The Register上的一篇評論文,文章作者對于近日微軟Azure云在支持PHP方面的動向表示不置可否,認為這是“通過支持互用性和標準來獲得更多人氣”。無論作者最終觀點如何,在51CTO編者看來,微軟對PHP的支持,以及近年來微軟開始擁抱開源的舉動,在PHP開發(fā)者和開源社區(qū)中還是得到了很多好評。這樣的努力即使付出了一些代價,也絕對是有價值的。
以下是譯文:
在微軟的Web應用程序托管環(huán)境Windows Azure里,將要發(fā)生可怕的事情。微軟總部Redmond的Slugworth,不顧一切想要趕上Mountain View的巧克力工廠,推出了在他們web應用平臺上的PHP支持。微軟的Windows Azure是Google App Engine的競爭對手,并試圖通過支持互用性和標準來獲得更多人氣。
APP Engine和Windows Azure都以向開發(fā)人員承諾自動可擴展性為榮,就如同在19世紀初的美國,一個帶著草帽的旅行商,穿著紅白細條紋相間的西裝,和身材矮小的助手一起自夸他們的含有秘密配方的補品能夠治愈你所有痛苦。
朋友,我有一個提供給您的正確的行動步驟。您對于可擴展性有什么疑問嗎?您是否對于規(guī)格化數(shù)據(jù)模式來優(yōu)化熱點訪問路徑有些無能為力?您是否寫了個N方循環(huán)的程序,同時抱怨在你的運行環(huán)境上的執(zhí)行速度奇慢無比?那么,一步一步來,因為我已經(jīng)為您想好了解決方案。
那些巧舌如簧的人的危險就是,他們可以讓一個很差勁的程序員認為自己是優(yōu)秀的。谷歌做了足夠的工作,通過對Java或Python限制APP Engine來把麻煩置之事外?,F(xiàn)在你會說,這讓Java開發(fā)人員怎么辦,但是當APP Engine首次帶著對Python的支持現(xiàn)身時,他們就立即明確表示,你應該對這個表示敬畏。(51CTO編者注:Google App Engine是Google的云平臺,于2008年4月初推出,一開始只支持Python;在2009年4月初的一周年之際,App Engine推出了對Java系列語言的支持。)
針對這一點,似乎微軟正在采取我喜歡稱之為的小人物同盟戰(zhàn)略:每個人都是贏家,甚至是一個被直線球正中臉部的孩子,直到本賽季結(jié)束只能坐在板凳上等待,聽著大人們鼓勵他說,這看起來并不那么糟糕。
那么,請允許我向您介紹專業(yè)的PHP程序員。你看,PHP就是像一把手槍。就其本身而言,它只是一個沒有生命的工具,沒有道德傾向。如果被握在一個有責任感的公民手中,它就可以用來造福社會。但如果被握在沒有受過訓練或精神不穩(wěn)定的人手中,它就可能會引起令人發(fā)指的罪行。
每當有這樣的悲劇發(fā)生,其他開發(fā)人員就會迅速責備PHP。如果PHP是非法的,那么Yahoo!將永遠不會出現(xiàn)。如果我們對PHP嚴格管制,那么將不會有Digg ?,F(xiàn)在說“如果沒有PHP,世界將更美好”是不公平的。但社會當然可以盡可能少地鼓勵它,這就是為什么Azure對PHP的支持讓我感到很苦惱。
PHP的偉大貢獻是,它能夠讓經(jīng)驗不足的程序員快速解決小問題,這對于那些本職不是做web應用的人來說是很棒的一件事。但是,當微軟開始告訴人們可以不必擔心可擴展性時,就導致了一個潛在完全失敗的產(chǎn)生。
這將發(fā)生在當微軟和一組PHP開發(fā)人員都認為他們正處于通向勝利的軌道上時,但開發(fā)人員們是生于一個社會網(wǎng)絡、一個Twitter克隆、或另一個內(nèi)容管理系統(tǒng)的時代。PHP開發(fā)人員失敗了,因為他們是PHP開發(fā)人員。微軟失敗了,因為他們扮演了肆無忌憚的商人,把PHP提供給了那些可能無權(quán)使用它的人。然而他們都沒有意識到自己的失敗,這意味著他們是一敗到底了。(也有開發(fā)者對此持完全相反的觀點。比如本月初51CTO發(fā)表的開發(fā)老手談Windows平臺的PHP應用開發(fā)一文中,那篇文章的作者就認為微軟擁抱PHP是一個明智的決定。)
整個鬧劇中最奇怪的一部分是,微軟正在熱身開源領(lǐng)域。他們?yōu)?/FONT>Azure平臺提供FastCGI,這意味著他們正在建立對大量不同的語言的支持。如果你曾經(jīng)不得不在Windows上建立Python的C擴展,那么現(xiàn)在你可以和我一起感到滿意,因為微軟的一些人將要解決這個問題。讓我們稱之為Internet Explorer 6的補償。
相關(guān)介紹:
FastCGI是語言無關(guān)的、可伸縮架構(gòu)的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內(nèi)存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內(nèi)存中并接受FastCGI進程管理器調(diào)度,則可以提供良好的性能、伸縮性、Fail-Over特性等等。
FastCGI的官方站點:http://www.fastcgi.com
無論如何,如果你考慮Azure上的FastCGI,它并不是太遠的飛躍。畢竟,這是一個不必要的協(xié)議,可以很容易就被持久HTTP連接所取代,并要求程序員圍繞其模型進行編碼。所以我很高興看到他們沒有重蹈覆轍。
更能體現(xiàn)微軟作風的是,對于FastCGI的PHP支持完全就是一個自導自演的喜劇。FastCGI需要你在一個連接接受循環(huán)內(nèi)部編寫網(wǎng)站處理代碼,使得任何資源的初始化只有一次機會。顯然這對于專業(yè)PHP人員來說是很難的,所以FastCGI只有不斷保持解釋器的運行,讓你不必在每有一個Web請求時就執(zhí)行它。
如果你不是Web開發(fā)人員,這就有點像試圖想用來復槍殺死一個人,卻用槍捶打他的腳,希望這個武器鈍性的末端能夠打破皮膚,然后受害人會死于感染,因為他處于如此偏遠的地方,沒辦法獲得抗生素。
微軟已經(jīng)認識到開源世界中質(zhì)量的災難,并接受了它。這是一種病態(tài)扭曲的協(xié)作,但至少這是一個開端。
對于Google,這是一個有趣的冒犯,Google迄今只是支持開發(fā)基于APP Engine編程語言。就像一個英國人與美國人的辯論,Google正試圖保持較高水平和圓滑的論述。我們美國的微軟,在另一方面,剛剛嘲笑英國人“您怎么沒詞兒了” 。
但是不管喜歡還是不喜歡,支持PHP確實吸引了大量的開發(fā)人員。
原文:Microsoft arms half-wit developers with PHP handgun
作者:Ted Dziuba
【編輯推薦】
- 微軟發(fā)布ASP.NET MVC源代碼
- 微軟公布CCI工具源代碼 并加入微軟開源許可
- 開發(fā)老手談Windows平臺的PHP應用開發(fā)