日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
為什么一些古老的編程語(yǔ)言不會(huì)消亡?

我們鐘愛(ài)我們已知的。

成都創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為禹城企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè),禹城網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

當(dāng)今許多老牌的編程語(yǔ)言已經(jīng)都非常古老了。PHP 語(yǔ)言20年、Python 語(yǔ)言23年、HTML 語(yǔ)言21年、Ruby 語(yǔ)言和 JavaScript 語(yǔ)言已經(jīng)19年,C 語(yǔ)言更是高達(dá)42年之久。

這是沒(méi)人能預(yù)料得到的,即使是計(jì)算機(jī)科學(xué)家 Brian Kernighan 也一樣。他是寫(xiě)著***本關(guān)于 C 語(yǔ)言的作者之一,直到今天這本書(shū)還在印刷著。(C 語(yǔ)言本身的*** Dennis Ritchie 是 Kernighan 的合著者,他于 2011 年已辭世。)

“我依稀記得早期跟編輯們的談話,告訴他們我們已經(jīng)賣(mài)出了5000冊(cè)左右的量,”最近采訪 Kernighan 時(shí)他告訴我說(shuō)。“我們?cè)O(shè)法做的更好。我沒(méi)有想到的是在2014年的教科書(shū)里學(xué)生仍然在使用***個(gè)版本的書(shū)?!?/p>

關(guān)于 C 語(yǔ)言的持久性特別顯著的就是 Google 開(kāi)發(fā)出了新的語(yǔ)言 Go,解決同一問(wèn)題比用 C 語(yǔ)言更有效率。不過(guò),我仍然很難想象 Go 能徹底殺死 C,無(wú)論它有多么好。

“大多數(shù)語(yǔ)言并不會(huì)消失或者至少很大一部分用戶承認(rèn)它們不會(huì)消失,”他說(shuō)?!癈 語(yǔ)言仍然在一定的領(lǐng)域獨(dú)領(lǐng)風(fēng)騷,所以它很接地氣?!?/p>

編寫(xiě)所熟悉的

為什么某些計(jì)算機(jī)編程語(yǔ)言要比其它的更流行?因?yàn)殚_(kāi)發(fā)者都選擇使用它們。邏輯上來(lái)說(shuō),這解釋已經(jīng)足夠,但還想深入了解為什么開(kāi)發(fā)人員會(huì)選擇使用它們呢,這就有點(diǎn)棘手了。

分別來(lái)自普林斯頓大學(xué)和加州大學(xué)伯克利分校的研究者 Ari Rabkin 和 Leo Meyerovich 花費(fèi)了兩年時(shí)間來(lái)研究解決上面的問(wèn)題。他們的研究報(bào)告,《編程語(yǔ)言使用情況實(shí)例分析》,記錄了對(duì)超過(guò) 200,000 個(gè) Sourceforge 項(xiàng)目和超過(guò) 13,000 個(gè)程序員投票結(jié)果的分析。

他們主要的發(fā)現(xiàn)是什么呢?大多數(shù)時(shí)候程序員選擇的編程語(yǔ)言都是他們所熟悉的。

“這些我們使用的語(yǔ)言還繼續(xù)存在是因?yàn)槲覀兘?jīng)常使用他們,” Rabkin 告訴我。“例如:天文學(xué)家就經(jīng)常使用 IDL [交互式數(shù)據(jù)語(yǔ)言]來(lái)開(kāi)發(fā)他們的計(jì)算機(jī)程序,并不是因?yàn)樗哂惺裁刺厥獾牧咙c(diǎn)功能或其它特點(diǎn),而是因?yàn)橛盟纬闪?xí)慣了。他們已經(jīng)用些語(yǔ)言構(gòu)建出很優(yōu)秀的程序了,并且想保持原狀?!?/p>

換句話說(shuō),它部分要?dú)w功于這些語(yǔ)言所創(chuàng)立的老牌度仍保持較高。當(dāng)然,這并不意味著流行的語(yǔ)言不會(huì)變化。Rabkin 指出我們今天在使用的 C 語(yǔ)言就跟 Kernighan ***次創(chuàng)建時(shí)的一點(diǎn)都不同,那時(shí)的 C 編譯器跟現(xiàn)代的也不是完全兼容。

“有一個(gè)古老的,關(guān)于工程師的笑話。工程師被問(wèn)到哪一種編程語(yǔ)言人們會(huì)使用30年,他說(shuō),‘我不知道,但它總會(huì)被叫做 Fortran’,” Rabkin 說(shuō)到?!伴L(zhǎng)期存活的語(yǔ)言跟他們?cè)?0年代和80年代剛設(shè)計(jì)出來(lái)的時(shí)候不太一樣了。人們通常都是在上面增加功能,而不會(huì)刪除功能,因?yàn)橐3窒蚝蠹嫒?,但有些功能?huì)被修正?!?/p>

向后兼容意思就是當(dāng)語(yǔ)言升級(jí)后,程序員不僅可以使用升級(jí)語(yǔ)言的新特性,也不用回去重寫(xiě)已經(jīng)實(shí)現(xiàn)的老代碼塊。老的“遺留代碼”的語(yǔ)法規(guī)則已經(jīng)不用了,但舍棄是要花成本的。只要它們存在,我們就有理由相信相關(guān)的語(yǔ)言也會(huì)存在。

PHP: 存活長(zhǎng)久語(yǔ)言的一個(gè)案例學(xué)習(xí)

遺留代碼指的是用過(guò)時(shí)的源代碼編寫(xiě)的程序或部分程序。想想看,一個(gè)企業(yè)或工程項(xiàng)目的關(guān)鍵程序功能部分是用沒(méi)人維護(hù)的編程語(yǔ)言寫(xiě)出來(lái)的。因?yàn)樗鼈內(nèi)云鹬饔茫矛F(xiàn)代的源代碼重寫(xiě)非常困難或著代價(jià)太高,所以它們不得不保留下來(lái),即使其它部分的代碼都變動(dòng)了,程序員也必須不斷折騰以保證它們能正常工作。

任何編程語(yǔ)言,存在了超過(guò)幾十年時(shí)間都具有某種形式的遺留代碼問(wèn)題, PHP 也不例外。PHP 是一個(gè)很有趣的例子,因?yàn)樗倪z留代碼跟現(xiàn)在的代碼明顯不同,支持者或評(píng)論家都承認(rèn)這是一個(gè)巨大的進(jìn)步。

Andi Gutmans 是已經(jīng)成為 PHP4 的標(biāo)準(zhǔn)編譯器的 Zend Engine 的***之一。Gutmans 說(shuō)他和搭檔本來(lái)是想改進(jìn)完善 PHP3 的,他們的工作如此成功,以至于 PHP 的原*** Rasmus Lerdorf 也加入他們的項(xiàng)目。結(jié)果就成為了 PHP4 和他的后續(xù)者 PHP5 的編譯器。

因此,當(dāng)今的 PHP 與它的祖先——即最開(kāi)始的 PHP 是完全不同的。然而,在 Gutmans 看來(lái),在用古老的 PHP 語(yǔ)言版本寫(xiě)的遺留代碼的地方一直存在著偏見(jiàn)以至于上升到整個(gè)語(yǔ)言的高度。比如 PHP 充滿著安全漏洞或沒(méi)有“集群”功能來(lái)支持大規(guī)模的計(jì)算任務(wù)等概念。

“批評(píng) PHP 的人們通常批評(píng)的是在 1998 年時(shí)候的 PHP 版本,”他說(shuō)?!斑@些人都沒(méi)有與時(shí)俱進(jìn)。當(dāng)今的 PHP 已經(jīng)有了很成熟的生態(tài)系統(tǒng)了?!?/p>

如今,Gutmans 說(shuō),他作為一個(gè)管理者最重要的事情就是鼓勵(lì)人們升級(jí)到***版本。“PHP有個(gè)很大的社區(qū),足以支持您的遺留代碼的問(wèn)題,”他說(shuō)?!暗偟膩?lái)說(shuō),我們的社區(qū)大部分都在 PHP5.3 及以上的?!?/p>

問(wèn)題是,任何語(yǔ)言用戶都不會(huì)全部升級(jí)到***版本。這就是為什么 Python 用戶仍在使用 2000 年發(fā)布的 Python 2,而不是使用 2008 年發(fā)布的 Python 3 的原因。甚至在六年后,大多數(shù)像 Google 這樣的用戶仍沒(méi)有升級(jí)。這種情況是多種原因造成的,但它使得很多開(kāi)發(fā)者在承擔(dān)風(fēng)險(xiǎn)。

“任何東西都不會(huì)消亡的,”Rabkin 說(shuō)。“任何語(yǔ)言的遺留代碼都會(huì)一直存在。重寫(xiě)的代價(jià)是非常高昂的,如果它們不出問(wèn)題就不要去改動(dòng)?!?/p>

開(kāi)發(fā)者是稀缺的資源

當(dāng)然,開(kāi)發(fā)者是不會(huì)選擇那些僅僅只是為了維護(hù)老舊代碼的的程序語(yǔ)言的。當(dāng)談?wù)摰綄?duì)語(yǔ)言選擇的偏好時(shí),Rabkin 和 Meyerovich 發(fā)現(xiàn)年齡僅僅只代表個(gè)數(shù)字。Rabkin 告訴我說(shuō):

有一件事使我們被深深震撼到了。這事最重要的就是我們給人們按年齡分組,然后詢問(wèn)他們知道多少編程語(yǔ)言。我們主觀的認(rèn)為隨著年齡的增長(zhǎng)知道的會(huì)越來(lái)越多,但實(shí)際上卻不是,25歲年齡組和45歲年齡組知道的語(yǔ)言數(shù)目是一樣的。幾個(gè)反復(fù)詢問(wèn)的問(wèn)題這里持續(xù)不變的。您知道一種語(yǔ)言的幾率并不與您的年齡掛鉤。

換句話說(shuō),不僅僅年長(zhǎng)的開(kāi)發(fā)者堅(jiān)持傳統(tǒng),年輕的程序員也會(huì)認(rèn)可并采用古老的編程語(yǔ)言作為他們的***們語(yǔ)言。這可能是因?yàn)檫@些語(yǔ)言具有很有趣的開(kāi)發(fā)庫(kù)及功能特點(diǎn),也可能是因?yàn)樵谏鐓^(qū)里開(kāi)發(fā)者都是喜愛(ài)這種開(kāi)發(fā)語(yǔ)言的一伙人。

“在全球程序員關(guān)注的語(yǔ)言的數(shù)量是有定數(shù)的,” Rabkin 說(shuō)?!叭绻粋冋Z(yǔ)言表現(xiàn)出足夠獨(dú)特的價(jià)值,人們將會(huì)學(xué)習(xí)和使用它。如果是和您交流代碼和知識(shí)的的某個(gè)人分享一門(mén)編程語(yǔ)言,您將會(huì)學(xué)習(xí)它。因此,例如,只要那些 Python 庫(kù)存在、 社區(qū)也對(duì) Python 語(yǔ)言很有經(jīng)驗(yàn)的話,那么 Python 仍將會(huì)大行其道。”

研究人員發(fā)現(xiàn)關(guān)于語(yǔ)言實(shí)現(xiàn)的功能,社區(qū)是一個(gè)巨大的因素。雖然像 Python 和 Ruby 這樣的高級(jí)語(yǔ)言并沒(méi)有太大的差別,但,程序員總是容易覺(jué)得一種比另一種優(yōu)越。

“Rails 不一定要用 Ruby 語(yǔ)言編寫(xiě),但它用了,這就是社區(qū)因素在起作用,” Rabkin 說(shuō)?!袄纾瑥?fù)活 Objective-C 語(yǔ)言這件事就是蘋(píng)果的工程師團(tuán)隊(duì)說(shuō)‘讓我們使用它吧,’ 他們就沒(méi)得選擇了?!?/p>

通觀社會(huì)的影響及老舊代碼這些問(wèn)題,我們發(fā)現(xiàn)最古老的和***的計(jì)算機(jī)語(yǔ)言都有巨大的惰性。Go 語(yǔ)言怎么樣才能超越 C 語(yǔ)言呢?如果有合適的人或公司說(shuō)它超越它就超越。

“它歸結(jié)為誰(shuí)傳播的更好誰(shuí)就好,” Rabkin 說(shuō)。


當(dāng)前題目:為什么一些古老的編程語(yǔ)言不會(huì)消亡?
網(wǎng)址分享:http://www.5511xx.com/article/dpsjchs.html