偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

[[131357]]

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

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

小說主角對(duì)通天塔-17的評(píng)價(jià)是:

Babel-17是那么精確的一門分析語言,幾乎可以確保你在技術(shù)上應(yīng)對(duì)面臨的任何情況。

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

你用什么語言?

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

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

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

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

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

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

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

你幾乎可以想象得出在決定命運(yùn)的那一天里,扎克伯格在哈佛大學(xué)宿舍里是如何琢磨著以最快的速度和最小的代價(jià)讓 Facebook上線的。Web的節(jié)奏太快,用戶又太善變了,要想捕捉到這一刻唯有成為第一個(gè)。程序?qū)懙迷僭趺礌€都不要緊,最關(guān)鍵是把事情干完,讓別人用 上。那一刻他滿腦子想的不是如何把代碼寫漂亮,而是讓他的朋友登錄上“Thefacebook”對(duì)認(rèn)識(shí)的姑娘評(píng)頭論足一番。

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

#p#

秘密武器

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

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

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

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

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

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

成長的煩惱

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

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

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

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

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

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

軟件初創(chuàng)企業(yè)能夠進(jìn)行這樣的機(jī)動(dòng)甚至 可能還解釋了他們?yōu)槭裁磿?huì)如此強(qiáng)大。部分原因是由于計(jì)算機(jī)規(guī)模的擴(kuò)大。但是這些公司也有著獨(dú)特的重塑自我的能力。隨著公司的改變與發(fā)展,這些公司能做的不 僅僅只有重寫畫畫組織結(jié)構(gòu)圖而已。因?yàn)樗麄兪怯么a書寫成的,所以可以做一些更加激進(jìn)的事情—他們可以重新組織自己、再造企業(yè)文化,改變思考方式。

責(zé)任編輯:王雪燕 來源: 36氪
相關(guān)推薦

2013-06-26 10:49:09

云端大腦科技技術(shù)

2020-12-03 06:34:34

分支策略SIT

2009-08-02 22:32:44

綜合布線系統(tǒng)

2015-09-29 10:55:13

初創(chuàng)技術(shù)架構(gòu)

2020-09-23 08:55:16

交換機(jī)配置網(wǎng)絡(luò)vlan

2019-05-13 15:45:29

程序員面試招聘

2013-12-25 09:07:24

微軟鮑爾默諾基亞

2012-06-18 09:33:03

云計(jì)算IBM惠普

2022-10-30 15:03:25

人工智能倉庫管理機(jī)器人

2009-10-26 13:36:10

BSM

2013-02-27 10:53:16

開源KVM

2019-01-22 10:58:07

2013-01-31 11:51:37

開源KVM

2019-04-26 13:59:10

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

2017-02-08 10:01:13

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

2015-10-10 13:50:29

IT設(shè)備PDU

2017-07-27 16:25:54

云管理公共云合并

2017-12-17 16:53:27

云計(jì)算亞馬遜云端

2019-01-11 10:39:24

軟件架構(gòu)虛擬空間機(jī)器人

2019-08-28 14:40:39

交換機(jī)網(wǎng)絡(luò)vlan
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)