到底開發(fā)者需要掌握多少門語言唁情?

諸如Apple啊终、Facebook及Google這樣的大公司正在開發(fā)他們自己的編程語言镜豹,開發(fā)者們被迫只有適應。前不久的世界開發(fā)者大會上蓝牲,Apple公布了它的新開發(fā)語言Swift趟脂。這是最近大型技術(shù)公司們開發(fā)的一大波新語言中的最新成員,這些新語言某種程度上都是專門應用于他們自己的平臺例衍。

161902f8zrltgzvjg4vbe4.jpg

對iOS開發(fā)者昔期,Apple有Swift;而Facebook 有 Hack —— 一門用于后端開發(fā)的語言佛玄。與此同時硼一,Google已經(jīng)擁有了它自己的Javascript替代者 Dart,以及一門新的通用編程語言Go梦抢。
這一波又一波的新語言般贼,給開發(fā)者們帶來了許多問題。也許其中最嚴重的問題正如我一位同事Adriana Lee在Apple發(fā)布Swift后所說:
(開發(fā)者們到底還得學習多少門語言奥吩?) ——Adriana Lee (@adra_la) June 2, 2014
計算機語言的通天塔
目前已經(jīng)存在的編程語言有數(shù)百種哼蛆,同時還有更多的語言正在涌現(xiàn)。其中許多都是被設計用在相對較窄的應用程序范圍內(nèi)霞赫,大多數(shù)甚至從未走出過項目小組的范圍腮介。
與此類似,大技術(shù)公司開發(fā)的新語言其實也是伴隨著公司一起成長的绩脆。通用語言的鼻祖萤厅,C語言橄抹,就源于上世紀70年代初的AT&T貝爾實驗室靴迫。Java,目前作為Android app開發(fā)的主要語言楼誓,誕生于上世紀90年代Sun公司的Microsystems系統(tǒng)玉锌。
發(fā) 展到現(xiàn)在,不同之處在于疟羹,公司們擁抱新語言主守、從而想要延伸的特定商業(yè)目標的范圍不一樣了 —— 這一過程同時建立了一個忠心耿耿的開發(fā)者基礎禀倔,他們被牢牢鎖定在了某個公司的特定平臺上。這類一石二鳥的戰(zhàn)略参淫,最早可以追溯到Sun對Java的采用救湖,當 時公司就將其作為了挑戰(zhàn)微軟PC桌面統(tǒng)治地位的一種手段。(事情雖然沒有像Sun計劃的那樣發(fā)展下去涎才,但在Google轉(zhuǎn)向Android之前鞋既,Java 大體上也算是在企業(yè)中間件系統(tǒng)中找到了自己的一席之地。)
這么看來耍铜,Apple的Swift其目標也就很明確了邑闺。Swift應該不會辜負公 司前期的大肆宣傳,通過磨平Objective-C那粗糙的毛邊棕兼,看起來它能夠成功簡化iOS app開發(fā)者的開發(fā)過程陡舅。但是同樣還是這些開發(fā)者,他們卻需要學習一門新語言的輸入和輸出伴挚,而這些功能很可能在其他地方都不會用到靶衍。
大公司們?yōu)槭裁匆貜驮燧喿?/strong>
“不要重復造輪子”這一哲學在絕大多數(shù)開發(fā)者心中根深蒂固,大公司們對此卻并不買賬章鲤。那他們?yōu)楹尾恢皇切薷南卢F(xiàn)有語言用于新的用途呢摊灭?
答案很簡單,公司們發(fā)明他們自己的語言败徊,是因為他們有這個能力帚呼。設計一門新語言可能很復雜,但對資源要求卻并不很高皱蹦。困難之處也就在對其提供支持煤杀,包括提供軟件資源(共享代碼庫、API沪哺、編譯器沈自、文檔等)以及贏得開發(fā)者的支持。大公司們在這兩方面尤其擅長辜妓。
還有一個事實枯途,現(xiàn)有語言通常很難硬塞進如今的復雜代碼框架中。舉個栗子籍滴,Facebook決定發(fā)明的Hack酪夷,就是一個普遍適用于Web開發(fā)的腳本語言PHP的超集合(superset)。
Facebook 的Hack最近已經(jīng)比較普遍孽惰,其主要目標就是改進代碼的穩(wěn)定性晚岭,針對這一目的,它強制在程序運行之前對數(shù)據(jù)類型進行檢測勋功。這樣的檢測確保了一個程序坦报,比方 說库说,不會將一個整數(shù)解析為一個字符串,這樣的錯誤如果捕獲不到很可能會導致不可預知的后果片择。在Hack中潜的,這些檢測會預先執(zhí)行,以便程序員能夠在程序上線 前早早發(fā)現(xiàn)這樣的錯誤字管。
據(jù)Facebook的Hack項目組核心成員Julien Verlaguet透露夏块,公司之前嘗試過用一門現(xiàn)有語言實現(xiàn)更高效的編程。但是Facebook的大部分代碼都是由PHP編寫的纤掸,公司實際上已經(jīng)建立了一 個支持PHP及其分支的軟件架構(gòu)脐供。即使能夠讓PHP同其他語言編寫的代碼協(xié)同工作,實現(xiàn)的難易程度和運行速度都無法滿足要求借跪。
“比如說我們 嘗試用Scala重寫PHP代碼庫政己,”Verlaguet說√统睿“Scala是一門設計優(yōu)秀的漂亮語言歇由,但是它與PHP完全不兼容。每次我需要從Scala 的代碼庫部分調(diào)用PHP的時候果港,都會損失性能沦泌。我們很愿意使用一門現(xiàn)有語言,但是對于我們來說辛掠,這條路行不通谢谦。”
于是萝衩,F(xiàn)acebook發(fā)明了Hack回挽,它與PHP一樣能夠共用公司現(xiàn)有的架構(gòu)。Verlaguet介紹說猩谊,F(xiàn)acebook的代碼庫主體已經(jīng)從PHP遷移到了Hack千劈,同時公司將Hack開源,希望獨立開發(fā)者們能夠幫公司找到Facebook以外的用途牌捷。
“你仍然可以使用PHP墙牌,”他說,“但是我們希望你有使用Hack的欲望暗甥∠脖酰”
誰說了算
公司和開發(fā)者之間有一種微妙的平衡。公司可以按照自己的喜好發(fā)明語言淋袖。但是如果開發(fā)者都不愿使用這門語言鸿市,那就沒人用了锯梁,公司以外的人也就沒人愿意將自己的職業(yè)生涯托付給這家公司即碗。
公 司在開發(fā)過程中同時使用不同的語言焰情,這并不少見。例如剥懒,你可能用Objective-C開發(fā)iOS app内舟,但卻用Java開發(fā)Android app。對開發(fā)者來說初橘,這從來都不是癥結(jié)所在验游,因為Objective-C和Java都是通用面向?qū)ο笳Z言。它們用途廣泛適用于很多場合保檐。
然 而耕蝉,Hack、Dart夜只、Go和Swift垒在,到目前為止,仍然只適用于嚴格特定公司的編程解決方案扔亥,往往和公司選擇的編程環(huán)境相對應场躯。誠然,現(xiàn)在下結(jié)論可 能還太早旅挤。比方說Hack踢关,就可以用在一些后端的實現(xiàn)中;它只是太新了粘茄,以至于Facebook還沒有任何數(shù)據(jù)供人們?nèi)绱耸褂谩?br> 不是開發(fā)者 不能學習多門語言签舞。事實上,大多數(shù)人已經(jīng)掌握了多門語言柒瓣。這好比羅曼斯語(一種由拉丁語演變而成的語言)瘪菌,如果你會說西班牙語,再去學法語就比那些不會西 班牙語的人簡單許多嘹朗。與此類似师妙,如果你已經(jīng)會Java,再學Ruby或Perl就簡單得多屹培。如果你會PHP默穴,基本上就已經(jīng)學會了Hack。
與此相反褪秀,學習多門語言更多的是一個習慣問題蓄诽。如果Java已經(jīng)解決了你的問題,你就不再有動力去學Ruby媒吗。如果你用Objective-C編寫iOS app感覺很爽仑氛,你就不會有強烈的意愿去學Swift。
另外,對于一些開發(fā)者來說锯岖,封閉生態(tài)系統(tǒng)的語言只會使每個人的生活變得更糟介袜。例如熊镣,自由設計師Jack Watson-Hamblin就告訴我說溅固,像Apple這樣強勢推出Swift,其實是在冒險增加程序員的負擔据沈,同時將開發(fā)者社區(qū)割裂開來:
程序員掌握多門語言固然重要捶牢,但是不斷強迫他們緊跟新語言鸠珠,卻是行不通的。如果我正在開發(fā)一個簡單的跨平臺app秋麸,我可不想被迫掌握四門語言再來完成它渐排。如果真的需要,我也只想使用一門語言灸蟆。
Watson- Hamblin就主張說飞盆,當每家公司都為了自家需要發(fā)明自己的語言時,程序員的注意力被分散次乓,開發(fā)的視野也局限于一種吓歇,這只會拖慢整個開發(fā)進程。他說票腰, “如果拿公司負責一門語言與負責一個開源社區(qū)相比較城看,這兩者的區(qū)別就好比一家大企業(yè)與一個初創(chuàng)小公司的區(qū)別”。社區(qū)生來就更加靈活杏慰,適應能力更強测柠。
當然,Apple有許多非常好的理由推出Swift從零開始缘滥,就像當初Facebook發(fā)明Hack的時候一樣轰胁。我并不是說,大公司不會強迫開發(fā)者接受這種改變朝扼,在這方面赃阀,有些公司一直都很讓人討厭。
“新語言的發(fā)明擎颖,伴隨著霸權(quán)的支配榛斯,”Verlaguet說,“被迫不停追趕搂捧,確實令人沮喪驮俗,但另一方面,你又多了一種解決問題的新語言允跑。反過來想想王凑,要是全世界的程序員都用同樣一門語言做所有事情搪柑,即使啥都湊合著能干,這門語言也一定干得不怎么樣”索烹。
題圖來自于Flickr user Ruiwen Chua工碾,CC 2.0
譯者:Mr小眼兒 校對:wxy
本文由 LCTT 原創(chuàng)翻譯,Linux中國 榮譽推出

本站文章除注明轉(zhuǎn)載外术荤,均為本站原創(chuàng)或編譯。歡迎任何形式的轉(zhuǎn)載每篷,但請務必注明出處瓣戚,尊重他人勞動共創(chuàng)開源社區(qū)。
轉(zhuǎn)載請注明:文章轉(zhuǎn)載自 開源中國社區(qū) [http://www.oschina.net]
本文標題:到底開發(fā)者需要掌握多少門語言焦读?
本文地址:https://www.oschina.net/news/53480/how-many-programming-language-we-should-learn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末子库,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子矗晃,更是在濱河造成了極大的恐慌仑嗅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件张症,死亡現(xiàn)場離奇詭異仓技,居然都是意外死亡,警方通過查閱死者的電腦和手機俗他,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門脖捻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兆衅,你說我怎么就攤上這事地沮。” “怎么了羡亩?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵摩疑,是天一觀的道長。 經(jīng)常有香客問我畏铆,道長雷袋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任辞居,我火速辦了婚禮片排,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘速侈。我一直安慰自己率寡,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布倚搬。 她就那樣靜靜地躺著冶共,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捅僵,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天家卖,我揣著相機與錄音,去河邊找鬼庙楚。 笑死上荡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的馒闷。 我是一名探鬼主播酪捡,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纳账!你這毒婦竟也來了逛薇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤疏虫,失蹤者是張志新(化名)和其女友劉穎永罚,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卧秘,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡呢袱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了翅敌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产捞。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哼御,靈堂內(nèi)的尸體忽然破棺而出坯临,到底是詐尸還是另有隱情,我是刑警寧澤恋昼,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布看靠,位于F島的核電站,受9級特大地震影響液肌,放射性物質(zhì)發(fā)生泄漏挟炬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一嗦哆、第九天 我趴在偏房一處隱蔽的房頂上張望谤祖。 院中可真熱鬧,春花似錦老速、人聲如沸粥喜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽额湘。三九已至卿吐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锋华,已是汗流浹背嗡官。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毯焕,地道東北人衍腥。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像纳猫,于是被迫代替她去往敵國和親婆咸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • TITLE: 編程語言亂燉 碼農(nóng)最大的煩惱——編程語言太多续担。不是我不學習擅耽,這世界變化快活孩! 有時候還是蠻懷念十幾物遇、二...
    碼園老農(nóng)閱讀 5,331評論 2 35
  • 終于可以說說新月了,如新月般美好的一個生命憾儒,卻被無情的摧毀了询兴,這是個怎樣令人痛心都不為過的悲劇啊起趾! 她秉承了父母的...
    綠塬閱讀 338評論 0 0
  • 戰(zhàn)爭一觸即發(fā)训裆,科學家提供說真話的藥來促進各國談判眶根,還當場用貓做了試驗”吡穑“我們星球的殖民計劃已經(jīng)開始了喵属百!”“你這奸...
    洞庭府君閱讀 564評論 0 4
  • 結(jié)婚不到6個月族扰,因為男方家里沒有廁所,夫妻二人走向家事法庭定欧,在社會各界引起軒然大波渔呵。 這戲劇性的一幕,來源于電影《...
    紅星三好少年閱讀 183評論 0 1