自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用什么樣的語言就有什么樣的公司

開發(fā) 開發(fā)工具 前端
想知道語言的威力有多大,可以看看《通天塔-17》。里面星際戰(zhàn)爭的一方只需讓另一方學習了一門語言,即讓對方棄明投暗。編程語言也具有類似的威力,它賦予了軟件公司重塑自我的能力,它不僅能改變問題的解決方式們甚至還可以改變提出什么樣的問題。這也許是Google、蘋果等推出自己語言的原因所在,而初創(chuàng)企業(yè)想要成就什么樣的愿景,編程語言的選擇很關鍵。

想知道語言的威力有多大,可以看看《通天塔-17》。里面星際戰(zhàn)爭的一方只需讓另一方學習了一門語言,即讓對方棄明投暗。編程語言也具有類似的威力,它賦予了軟件公司重塑自我的能力,它不僅能改變問題的解決方式們甚至還可以改變提出什么樣的問題。這也許是Google、蘋果等推出自己語言的原因所在,而初創(chuàng)企業(yè)想要成就什么樣的愿景,編程語言的選擇很關鍵。

[[131357]]

Ruby語言幫助開發(fā)出了Twitter、Hulu以及許多的現(xiàn)代Web網(wǎng)站。其發(fā)明者是日本人松本行弘。松本行弘發(fā)明Ruby則是受到了美國作家Samuel R. Delany發(fā)表于1966年的一部科幻小說《通天塔-17》。

這 部小說里面有一個核心的思想—語言會改變?nèi)说乃枷搿⒂绊懭说男袆?。故事里面講到,星際戰(zhàn)爭的一方發(fā)明了一種名為Babel-17的語言,敵方的人學了這門 語言之后,思想和感覺都會發(fā)生改變,從而變成了本方的叛徒。這本書說明了語言的若干特點—即生活條件塑造了語言形式和意義,但是語言本身也會塑造人的行 動。

小說主角對通天塔-17的評價是:

Babel-17是那么精確的一門分析語言,幾乎可以確保你在技術上應對面臨的任何情況。

松本行弘也希望實現(xiàn)同樣的事情—用一門語言重組并改進程序員的思考方式。實際上開發(fā)者這種群體也傾向于認為,編程語言不僅能改變問題的解決方式,甚至也能改變提出什么樣的問題。所以這些人衡量公司規(guī)模、產(chǎn)品好壞或者同事強弱時往往會問一個問題:

你用什么語言?

這有助于外界理解軟件公司為什么會變得如此強大、為什么會那么有價值,有助于了解那些影響我們?nèi)粘I畹漠a(chǎn)品和服務。一項看似與我們無關的最內(nèi)部的決定,比方說新產(chǎn)品的開發(fā)究竟是用Ruby、PHP還是C語言,突然之間卻會影響到我們所有人。所以,如果你想知道Facebook為什么會是這個樣子,為什么這么運作,接下來又會干什么,那就得了解一下PHP—扎克伯格開發(fā)Facebook用的語言。

PHP 也許是所有編程語言當中最不受程序員待見的語言了。編程問答網(wǎng)站Stack Overflow的聯(lián)合創(chuàng)始人Jeff Atwood用了非常惡毒的語言點評PHP,稱PHP設計糟糕、東拼西湊,是 “步履蹣跚的怪物”、“瘟疫”、鬼屋,說在里面住的人都是喜歡鬼的人,稱用PHP的都是業(yè)余愛好者。“有人誤以為進入Facebook的都是才華橫溢的工 程師,但其實他們是一群用Windows XP寫PHP的人。說他們是黑客幾乎跟罵人差不多。”

大多數(shù)成功的編程語言都有整體哲學或者一套用于組織詞匯語法的原則指南,但是PHP沒有—PHP的創(chuàng)始人Rasmus Lerdorf早在2003年就承認,自己不知道如何寫編程語言,只是走一步看一步,想到什么加什么。

比方說防止惡意數(shù)據(jù)攻擊的PHP函數(shù)“mysql_escape_string”被發(fā)現(xiàn)存在漏洞之后,其補救措施不是對這個函數(shù)打補丁,而是重新開發(fā)了一個名為“mysql_real_escape_string”的函數(shù),這就好比是在飛機駕駛艙安裝了兩個類似的按鈕,按下其中一個可以讓飛機放下起落架,而按下另一個則會讓飛機掉下。

雖然很多人都說PHP很爛,但是卻不能阻止它的火。據(jù)估計全球有39%的網(wǎng)站用PHP編寫,其中就包括了Facebook、Wikipedia、WordPress著名網(wǎng)站等。原因在于PHP盡管有缺陷,但是做動態(tài)內(nèi)容上手簡單,不需要專業(yè)人士也能弄。

PHP 的持續(xù)發(fā)展對于Wikimedia(維基百科)的成功非常關鍵。由于嚴重依賴PHP,維基百科遭遇了大規(guī)模的設計缺陷,并且直到2008年才推出了能適應 移動設備的版本,到2013年才做出對用戶友好的編輯界面。但是PHP讓那些不是軟件工程師的人也能貢獻新功能,維基百科之所以能展示古埃及的象形文字、 處理散頁樂譜正是因為此。

但是Google不能用PHP來開發(fā),因為Google要求搜索要快要精確,其實現(xiàn)需要更加精細和強大的語言,比 方說Java或者C++。Facebook與之對比就相當于是小型試驗的集市,加幾個按鈕、feeds或者小玩意來吸引你的注意力。PHP是為了迅速炮制 出新功能而生的。

你幾乎可以想象得出在決定命運的那一天里,扎克伯格在哈佛大學宿舍里是如何琢磨著以最快的速度和最小的代價讓 Facebook上線的。Web的節(jié)奏太快,用戶又太善變了,要想捕捉到這一刻唯有成為第一個。程序寫得再怎么爛都不要緊,最關鍵是把事情干完,讓別人用 上。那一刻他滿腦子想的不是如何把代碼寫漂亮,而是讓他的朋友登錄上“Thefacebook”對認識的姑娘評頭論足一番。

現(xiàn)在的 Facebook市值已超過2000億美元,辦公室的墻上貼的都是這樣的東西:“完成好過完美”,“快速行動、打破陳規(guī)。”扎克伯格希望用這些話讓員工與 Facebook的“黑客”文化保持一致。但其實這些恰恰是PHP的價值觀??焖傩袆哟蚱脐愐?guī)實際上正是PHO的真髓,只要是“講”這門語言的人都不可避 免要按照這種方式思考。可以說是這門語言本身造就和維系了Facebook的文化。

#p#

秘密武器

如果要找跟PHP這種自然實驗語言完全相反的例子,沒有地方比下曼哈頓區(qū)的金融交易機構Jane Street Capital更合適。這家400人的公司每天處理著美國大約2%的股權交易。

他們用的編程語言是OCaml,10 年前,公司的技術負責人Yaron Minsky說服了老板用這門晦澀的語言重寫了公司的整個交易系統(tǒng)。這語言原本由法國的一家研究機構的學者開發(fā),目的是想改進某個用來自動證明數(shù)學定理的 計算機系統(tǒng),此前幾乎沒人用這門語言進行過實際工作。但是Minsky在讀研時接觸到OCaml之后,認為這門語言可以替代Jane Street 交易系統(tǒng)的那些Excel表。

OCaml的一大賣點是它的“類型系統(tǒng)”,類型系統(tǒng)跟Word的語法檢查器有點類似,不同的是語法檢查器只是 用綠色波浪線標出有問題的文字,而類型系統(tǒng)檢查出錯誤后會阻止系統(tǒng)運行。寫有類型系統(tǒng)的程序的可靠性往往要比沒有的高很多—這一點對于一個日交易量高達 300億美元的系統(tǒng)來說是非常有用的。

OCaml的類型系統(tǒng)幫忙攔截了bug,Jane Street的程序員就可以專注于更加高級的問題。有人甚至猜測隨著時間轉移這些人是不是已經(jīng)內(nèi)化了系統(tǒng)的不斷糾纏,OCaml變成了某種新語(Newspeak),沒人敢打任何壞主意。

其 要點在于,要想充分獲得類型檢查器的好處,程序員必須給自己的代碼增加復雜的注解。就好像Word的語法檢查器需要你對所有的句子進行解釋一樣。寫代碼還 要進行類型約束是令人討厭甚至泄氣的事情。更糟的是,OCaml比大部分的編程語言要求都要高,需要對數(shù)學抽象有很深的理解,這已經(jīng)超出了大部分開發(fā)者的 能力范疇。但是這種語言的嚴格對于某些人來說卻相當于貓薄荷,這反而讓Jane Street在緊張的招聘市場里有了一項與眾不同的優(yōu)勢。OCaml就像貓薄荷一樣替Jane Street源源不斷地吸引了一批批的高素質人才候選人。那些人被吸引的不僅是因為這門語言,更是因為使用這門語言的人。人以群分,這里的人平時玩的都是 四人國際象棋??雌饋砀偁幥閳蟮奈幕c一門奇特語言的使用密切相關。

類似地,Google似乎也打算通過Go語言的推廣使用來達到類似目的。Go是Google開發(fā)的一種高性能編程語言,目的是要讓Web的處理工作更加優(yōu)雅和高效。開發(fā)此類高風險軟件是有好處的,因為大型Web服務背后的那一大群服務器的運行需要這樣的語言。對于喜歡新奇和挑戰(zhàn)的開發(fā)者來說Go尤其具有吸引力。

成長的煩惱

2010年末,F(xiàn)acebook遭遇了一次危機。PHP本身并不是針對性能優(yōu)化而開發(fā)的,而Facebook網(wǎng)站又發(fā)展得太快,若不進行相當徹底的改造網(wǎng)站看起來快要癱掉了。

換語言根本不在考慮的范圍之內(nèi)。Facebook網(wǎng)站上有著數(shù)千專家工程師撰寫的上百萬行PHP代碼,還有超過5億用戶在使用它。因此Facebook派遣了一支由資深工程師組成的特種部隊,讓這批人去攻關一個特殊項目,找出讓Facebook不放棄它那帶黑客口音(hacky)母語的情況下維持運轉的辦法。

解決方案其中的一部分是開發(fā)出一種編譯器軟件,將Facebook的PHP代碼編譯為更快的C++代碼。而項目的另外一項工作則成為了計算機語言工程的一大壯舉,它使得Facebook的程序員在保持PHP血統(tǒng)文化的同時還可以編寫出更加可靠的代碼。

這 支救援分隊發(fā)明了一門PHP方言,名字叫做Hack。Hack是帶可選類型傳系統(tǒng)的PHP,也就是說,你可以還繼續(xù)寫原來隨性寫意的PHP,也可以選擇增 加注解讓類型系統(tǒng)檢查代碼的正確性。跟Jane Street一樣,這種類型檢查器完全是用OCaml編寫的,這絕非巧合。Facebook希望自己的碼農(nóng)用感到舒服的母語繼續(xù)快速行動(move fast),但是同時不希望他們在這么做時不得不打破一些東西(break things)。(去年扎克伯格宣布了新的口號:“穩(wěn)定結構、快速行動”)

與 此同時,Twitter也經(jīng)歷了類似的變革。Twitter原先是用流行的Web框架Ruby on Rails開發(fā)的,而后者則是在Ruby基礎上受PHP啟發(fā)做出來的。然后Twitter的用戶開始暴漲。一旦大V發(fā)布了新的推特,數(shù)十萬粉絲的 tinemline也必須馬上更新。此輪情況往往會令系統(tǒng)不堪重負,Twitter工程師不得不把網(wǎng)站暫時關閉才能應付。由于經(jīng)常干這種事情,維護頁面的 那頭失敗的鯨魚形象都變得臭名卓著了。后來Twitter用Scala語言替代了公司很大一部分的服務實現(xiàn)。不出意料,跟OCaml一樣,Scala也是由學者開發(fā),一樣擁有強大的類型系統(tǒng),都是以程序員的自由和開發(fā)的愜意為代價來確保準確和性能。

跟 初創(chuàng)企業(yè)最終找到收入來源而走向“成熟”類似,他們同樣也可以借助編程語言的力量來操控組織心理。在Google干過7年、現(xiàn)在Dropbox工作的編程 語言設計師Guido van Rossum說,軟件公司到達一定規(guī)模之后要想避免陷入混亂,唯一的辦法是借助預先需要程序員做更多事情的編程語言。“就是那種讓你放慢下來的感覺,因為 所有事情你都需要說上三遍。”這就是為什么許多初創(chuàng)企業(yè)盡可能拖延切換語言的原因所在。換上更嚴謹?shù)恼Z言有可能會讓你失去一些NB的創(chuàng)業(yè)元老黑客,迸發(fā)出 新功能的可能性也會降低。但是這能幫助整個公司更好地理解別人的代碼,保證產(chǎn)品日常運營必要的穩(wěn)定性。

軟件初創(chuàng)企業(yè)能夠進行這樣的機動甚至 可能還解釋了他們?yōu)槭裁磿绱藦姶?。部分原因是由于計算機規(guī)模的擴大。但是這些公司也有著獨特的重塑自我的能力。隨著公司的改變與發(fā)展,這些公司能做的不 僅僅只有重寫畫畫組織結構圖而已。因為他們是用代碼書寫成的,所以可以做一些更加激進的事情—他們可以重新組織自己、再造企業(yè)文化,改變思考方式。

責任編輯:王雪燕 來源: 36氪
相關推薦

2013-06-26 10:49:09

云端大腦科技技術

2020-12-03 06:34:34

分支策略SIT

2009-08-02 22:32:44

綜合布線系統(tǒng)

2015-09-29 10:55:13

初創(chuàng)技術架構

2019-05-13 15:45:29

程序員面試招聘

2020-09-23 08:55:16

交換機配置網(wǎng)絡vlan

2012-06-18 09:33:03

云計算IBM惠普

2022-10-30 15:03:25

人工智能倉庫管理機器人

2009-10-26 13:36:10

BSM

2013-12-25 09:07:24

微軟鮑爾默諾基亞

2019-04-26 13:59:10

網(wǎng)絡VLAN虛擬局域網(wǎng)

2015-10-10 13:50:29

IT設備PDU

2013-01-31 11:51:37

開源KVM

2013-02-27 10:53:16

開源KVM

2017-02-08 10:01:13

大數(shù)據(jù)ETL技術

2019-01-22 10:58:07

2017-07-27 16:25:54

云管理公共云合并

2017-12-17 16:53:27

云計算亞馬遜云端

2019-01-11 10:39:24

軟件架構虛擬空間機器人

2011-09-16 14:26:36

點贊
收藏

51CTO技術棧公眾號