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

編程語言與思維:科技公司如何自我重構(gòu)?

開發(fā) 后端 開發(fā)工具
當(dāng)日本計算機(jī)科學(xué)家松本行弘決定創(chuàng)造一種名叫 Ruby (這種技術(shù)支撐了 Twitter、Hulu 以及其他許多現(xiàn)代 Web 流行網(wǎng)站) 的程序語言時,他是從 1966 年一部名為 Babel-17 的科幻電影中獲得了靈感。這本書主要講的是一種新發(fā)明的語言能夠讓那些使用它的人升級自己的頭腦思維?!癇abel-17 是一種極精確的分析語言,幾乎可以確保任何情況下的技術(shù)優(yōu)勢?!庇捌械闹魅斯羞@樣一句臺詞。通過發(fā)明 Ruby,松本行弘希望實(shí)現(xiàn)同樣的效果:重編并改進(jìn)程序員思考的方式。

當(dāng)日本計算機(jī)科學(xué)家松本行弘決定創(chuàng)造一種名叫 Ruby (這種技術(shù)支撐了 Twitter、Hulu 以及其他許多現(xiàn)代 Web 流行網(wǎng)站) 的程序語言時,他是從 1966 年一部名為 Babel-17 的科幻電影中獲得了靈感。這本書主要講的是一種新發(fā)明的語言能夠讓那些使用它的人升級自己的頭腦思維。“Babel-17 是一種極精確的分析語言,幾乎可以確保任何情況下的技術(shù)優(yōu)勢。”影片中的主人公有這樣一句臺詞。通過發(fā)明 Ruby,松本行弘希望實(shí)現(xiàn)同樣的效果:重編并改進(jìn)程序員思考的方式。

[[131300]]

這目標(biāo)聽起來很宏大,但他的想法是一種主流。軟件開發(fā)者做為一個工種,普遍認(rèn)為程序語言對于思維有影響力,大到足夠可以改變你解決問題的方式——甚至是你選擇解決哪些問題。這也是他們?nèi)绾螖U(kuò)大公司規(guī)模、改進(jìn)產(chǎn)品、招聘團(tuán)隊的方式:“你用什么編程語言?”

明白這一點(diǎn)能夠讓圈外人了解軟件公司的運(yùn)作,尤其是在它們變得如此強(qiáng)大又賺錢,制造的產(chǎn)品和服務(wù)進(jìn)入我們生活各個角落的今天。如果你想知道為什么 Facebook 的外觀和工作方式是現(xiàn)在這個狀態(tài),F(xiàn)acebook 未來能為我們或?qū)ξ覀冏鍪裁?,你就需要知道一些關(guān)于 PHP 的知識,因?yàn)檫@是馬克•扎克伯格 (Mark Zuckerberg) 最初打造 Facebook 使用的程序語言。

在 程序員當(dāng)中,PHP 可能是所有編程語言中最不被“仰視”的一種。有人在博客文章里評價其為“糟糕的設(shè)計”,而那些愿意使用 PHP 的人則被看作是業(yè)余選手。“有這種傳奇的事,那些去 Facebook 工作的頂尖工程師,他們在 Windows XP 上寫 PHP 代碼,”程序問答網(wǎng)站 Stack Overflow 創(chuàng)始人杰夫 (Jeff Atwood) 說道,“他們可是那種毀三觀級的黑客。”在近 10 分鐘的談話中,杰夫用如下的詞語描述 PHP:“一個消瘦的怪獸”,“一場大瘟疫”,一個鬼屋里的住客愛上了幽靈。

大部分得到承認(rèn)的程序語言都有一個總體的設(shè)計哲學(xué)或 是指導(dǎo)原則,用來組織關(guān)鍵字和語法——也就是交給程序員使用的指令集合——并形成一個邏輯上的整體。PHP 沒有。其設(shè)計者 Rasmus Lerdorf 主動承認(rèn)他當(dāng)初是東拼西湊的。“我不知道該怎么停止,”2003 年他在接受一次采訪時說到,“我根本不知道要如何寫一個程序語言——我只是一邊用一邊增加新的邏輯模塊。”

程序員最愛用的一個例子是 PHP 函數(shù)“mysql_escape_string”,該函數(shù)能夠?qū)⒁欢位旌献址蕹糁笤偬峤?a>數(shù)據(jù)庫。 (混合字符的例子可以參考一般網(wǎng)站會要求你輸入電郵地址之類,黑客能夠嵌入一段代碼,從網(wǎng)站獲得你的密碼。) 當(dāng)這個函數(shù)的一個漏洞被發(fā)現(xiàn)時,一個新的版本出現(xiàn)了,叫做“mysql_real_escape_string”,但是原有的版本并沒有被替換。這種結(jié)果 就好像在飛機(jī)駕駛倉上有兩個外觀接近的按鈕并列排放一樣:一個用來把起落架放下,另一個用來把起落架安全地放下。這可不是什么友好的操作——這是導(dǎo)致災(zāi)難的原因。

但 是盡管對 PHP 的嗤之以鼻隨處可見,如今的 Web 網(wǎng)絡(luò)有許多都是基于 PHP 設(shè)計,全網(wǎng)有 39% 的網(wǎng)站使用 PHP。Facebook、Wikipedia 和 WordPress 都是 PHP 項(xiàng)目。這是因?yàn)?PHP 雖然有許多缺陷,但是上手很快。PHP 這個名字來自最初的“個人主頁”,可以很容易地讓用戶在靜態(tài) HTML 頁面中添加諸如日期和用戶名之類的動態(tài)內(nèi)容。PHP 實(shí)現(xiàn)了從設(shè)計一個網(wǎng)站到編寫一個 Web 應(yīng)用程序的飛越,而投入?yún)s很小,你完全不需要成為專業(yè)人士就可以做到。

而 PHP 這種“即刻運(yùn)行”的特性對于 Wikipedia 的成功至關(guān)重要,維基媒體基金會的總軟件工程師奧瑞 (Ori Livneh) 這樣認(rèn)為。“我一直討厭 PHP,”他對我說。維基百科過于依賴 PHP,導(dǎo)致了大規(guī)模的設(shè)計缺陷。(這也是為什么直到 2008 年維基百科才推出移動端版本,直到 2013 年編輯界面才變得友好起來。) 但 PHP 讓那些不是——或幾乎剛剛是——軟件工程師的人能夠提交新功能:這也是為什么維基百科詞條可以在古埃及文明頁面顯示象形文字,并且可以處理五線譜的原因。

但是你用 PHP 設(shè)計不了 Google,因?yàn)?Google 之所以成為 Google 需要把一件事做到最好——搜索結(jié)果。設(shè)計 Google 的是更加精煉和強(qiáng)大的語言,比如 Java 和 C++。而 Facebook 恰恰相反,更像一系列的小試驗(yàn):按鈕、信息流、信息模塊等等只是為了抓住你的注意力。PHP 是為了快速制造新東西而生的。

你可以想象扎克伯格在哈佛宿舍里完成 Facebook 的情景。互聯(lián)網(wǎng)發(fā)展如此之快,用戶多變,唯一能夠抓住機(jī)會的辦法就是快。無論他做的是一團(tuán)泥也好,或者是一盤意粉,甚至是什么都好。他把東西做成了,人們可以用。他當(dāng)時沒有考慮什么優(yōu)雅代碼的問題;他想的是讓好友們可以登陸 Thefacebook 去看他們認(rèn)識姑娘的圖片。

如 今 Facebook 已經(jīng)是價值超 2000 億美元的公司了,辦公室里到處可以見到標(biāo)語“完成要比完美更重要”;“快速推進(jìn),打破常規(guī)”。這就是 Facebook 的“黑客”文化,但也恰恰是 PHP 的價值觀??焖偻七M(jìn)打破常規(guī)實(shí)際上正是 PHP 的本質(zhì),任何使用這種語言的人都會這樣思考??赡苣銜f,正是這種編程語言,打造并維系了 Facebook 的文化。

2010 年末,F(xiàn)acebook 迎來了一場危機(jī)。PHP 并不是一種性能優(yōu)化的設(shè)計,但是現(xiàn)在要求提升性能。Facebook 發(fā)展速度太快,如果沒有重大的調(diào)整,看起來可能會出現(xiàn)問題。

整體更換程序語言并不是一個可選的方案:Facebook 有數(shù)百萬行 PHP 代碼,上千名 PHP 工程師專家,超過 5 億用戶。Facebook 的做法是,由資深工程師組成的一個小團(tuán)隊被分配到一個特別的任務(wù)。其中之一就是設(shè)計一個編譯器,能夠?qū)?Facebook 的 PHP 代碼轉(zhuǎn)換成運(yùn)行更快的 C++ 代碼。另外一個任務(wù)則是由計算機(jī)語言專家完成,他們要讓 Facebook 的程序員保持 PHP 風(fēng)格文化,但是編寫更可靠的代碼。

于 是 PHP 的一個分支版本 Hack 應(yīng)運(yùn)而生,這種語言是帶有可選的類型系統(tǒng)的 PHP。也就是說,你既可以用老式的方法快速編寫 PHP 代碼,或者選擇讓類型系統(tǒng)檢查你的代碼正確度。Facebook 希望他們的程序員用自己熟悉的語言繼續(xù)快速推進(jìn),但是不想讓他們像之前那樣打破東西。(去年扎克伯格宣布了一個新的工程師口號:“快速推進(jìn),穩(wěn)定架構(gòu)”。)

當(dāng)創(chuàng)業(yè)公司終于解決了營收問題而“變成熟”之后,他們可以聰明地利用編程語言的威力來操縱企業(yè)組織的文化。曾經(jīng)在 Google 供職 7 年的程序語言設(shè)計者羅桑 (Guido van Rossum) 認(rèn)為,一旦軟件公司發(fā)展到一定的體積,解決混亂局面的唯一方式,就是使用一種要求程序員在一線做更多工作的語言。“感覺上就好像你被拖慢了一樣,因?yàn)槟阋?把每件事說三次。”這也是為什么許多創(chuàng)業(yè)公司在更換語言之前希望能等越久越好。你會失去一些最初幫你起步的牛逼黑客,也會失去小團(tuán)隊突擊新功能的可能性。 但是一種更精確的語言會幫助公司的其他人了解彼此的代碼,獲得產(chǎn)品穩(wěn)定性,這也是公司每天運(yùn)作所必須的。

軟件創(chuàng)業(yè)公司能夠做到這一點(diǎn)調(diào)整, 或許能夠幫助解釋為什么他們?nèi)绱藦?qiáng)大。計算機(jī)不端擴(kuò)張的觸及領(lǐng)域也是如此。這些軟件公司同樣具有獨(dú)特的能力,重新構(gòu)建自我。隨著變化和發(fā)展,它們能夠做的 不僅僅是組織機(jī)構(gòu)調(diào)整,因?yàn)樗鼈兓诖a設(shè)計,所以能夠?qū)崿F(xiàn)更加巨大的變化。它們能夠重編自身,它們的文化,以及它們思考的方式。

責(zé)任編輯:王雪燕 來源: 虎嗅網(wǎng)
相關(guān)推薦

2015-04-16 09:41:01

2012-09-10 09:40:53

編程科技老板

2015-04-07 09:10:00

2024-11-21 12:57:52

2011-11-21 16:38:45

2023-10-05 10:32:18

2011-04-27 09:12:14

PHPjavascriptjava

2013-08-20 16:03:51

ERPERP系統(tǒng)ERP重構(gòu)

2019-04-28 09:00:00

人工智能金融科技風(fēng)控

2015-07-14 11:01:39

CSS科技公司

2010-04-06 14:39:31

2020-06-02 10:04:58

IT部門首席信息官CIO

2015-05-28 15:07:15

力瀚華為

2020-07-22 12:03:55

編程程序員技術(shù)

2025-06-27 04:00:00

RLSC強(qiáng)化學(xué)習(xí)微調(diào)

2023-10-24 16:33:55

科技AI

2011-08-16 09:23:08

項(xiàng)目管理

2022-01-10 17:21:22

神州數(shù)碼微軟
點(diǎn)贊
收藏

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