四大編程語言之父聚首六合網(wǎng)站架設(shè),編程語言要變天?-創(chuàng)新互聯(lián)

編程語言的優(yōu)劣六合網(wǎng)站架設(shè) <Q> 2952777280【源碼鏈接】 hxforum.com ,一直眾說紛紜。倘若編程語言的創(chuàng)造者們相聚一起共談自己所設(shè)計(jì)的語言,是否又會(huì)掀起一番“腥風(fēng)血雨”?

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的固原網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

其實(shí)就在近日,Python 創(chuàng)始人 Guido van Rossum、Java 創(chuàng)始人 James Gosling、C# 創(chuàng)始人 Anders Hejlsberg、Perl 創(chuàng)始人 Larry Wall 四位技術(shù)大拿相聚西雅圖,共同探討編程語言的設(shè)計(jì)與未來發(fā)展。

4月初,在Puget Sound Programming Python(簡稱PuPPy)舉辦的第一屆年度慈善活動(dòng)中,四位傳奇的編程語言創(chuàng)始人聚集在一起就編程語言設(shè)計(jì)的過去和未來展開了熱烈的討論。此次活動(dòng)旨在為面向所有人的計(jì)算機(jī)科學(xué)教育(Computer Science For All,美國前總統(tǒng)奧巴馬當(dāng)年年初提出的新計(jì)劃,旨在美國教育體系中普及計(jì)算機(jī)科學(xué))籌集資金。

與會(huì)的小組成員包括以下流行編程語言的創(chuàng)始人:

Guido van Rossum:Python的創(chuàng)始人;

James Gosling:Java編程語言的創(chuàng)始人兼首席設(shè)計(jì)師;

Anders Hejlsberg:Turbo Pascal的原作者,他也致力于C#和TypeScript的開發(fā);

Larry Wall:Perl的創(chuàng)始人。

此次討論會(huì)由Carol Willing主持,目前她是Jupyter項(xiàng)目的指導(dǎo)委員會(huì)成員和開發(fā)人員。她還是首屆Python指導(dǎo)委員會(huì)成員,Python軟件基金會(huì)研究員和前任主任。

編程語言設(shè)計(jì)的關(guān)鍵原則
小組成員提出的第一個(gè)問題是:“編程語言設(shè)計(jì)的原理是什么?”

Guido van Rossum認(rèn)為:

編程語言的設(shè)計(jì)與J·K·羅琳撰寫她的哈利波特系列叢書的方式非常相似。

他解釋說,J·K·羅琳是一個(gè)天才,她在第一本哈利波特書中提到的一些細(xì)節(jié)與第六和第七本書中重要的情節(jié)相呼應(yīng)。

在解釋這與編程語言設(shè)計(jì)之間的關(guān)系時(shí),他表示:“在編程語言設(shè)計(jì)中亦是如此,我們需要做到首尾呼應(yīng)?!痹谠O(shè)計(jì)編程語言時(shí),首先我們會(huì)承諾某些細(xì)節(jié),例如我們想要使用的關(guān)鍵字,我們想要遵循的編碼風(fēng)格等等。但是,無論我們做了何種決定,都必須堅(jiān)持到底,將來我們需要像J·K·羅琳一樣,找到使用這些細(xì)節(jié)的新方式。

他補(bǔ)充說道:“一方面,在設(shè)計(jì)編程語言的工作中,最開始你要做出一系列的選擇,為你的故事發(fā)展埋下伏筆。另一方面,設(shè)計(jì)編程語言的藝術(shù)在于,你需要不斷回顧你的故事,并展開奇思妙想,以你始料未及的方式推進(jìn)故事發(fā)展?!?/p>

當(dāng)談?wù)摰絁ames Gosling創(chuàng)建Java的過程,以及他所遵循的設(shè)計(jì)原則時(shí),他只是淡淡地說:“Java的出現(xiàn)并不像個(gè)人熱愛的項(xiàng)目那樣。其實(shí)我們只是想試著建立一個(gè)原型?!碑?dāng)時(shí),James Gosling和他的團(tuán)隊(duì)開展了一個(gè)涉及嵌入式系統(tǒng)領(lǐng)域的項(xiàng)目。為此,他們與許多為嵌入式系統(tǒng)構(gòu)建軟件的開發(fā)人員進(jìn)行了交談,并了解了他們的工作流程。

該項(xiàng)目大約有十幾個(gè)人,Gosling負(fù)責(zé)從編程語言的角度來盡量簡化項(xiàng)目。他補(bǔ)充說:“最初我們只想做比C更好的東西,但是后來就失去了控制,最終項(xiàng)目的其余部分只是提供了素材?!彼摇癑ava”從該項(xiàng)目中活了下來?;旧显摼幊陶Z言就是為了解決身居數(shù)據(jù)中心之外的人的問題,這些人常常為網(wǎng)絡(luò)、安全性和可靠性等問題困擾。

Larry Wall覺得自己更像“語言學(xué)家”,而不是計(jì)算機(jī)科學(xué)家。他想創(chuàng)造一種更接近自然語言的編程語言。他舉了一個(gè)例子:“就好像我們不必讓每個(gè)人都走進(jìn)大學(xué)校園才能決定他們各自的去向,我們可以觀察人們想去哪里,然后設(shè)置通向這些地方的捷徑?!盤erl創(chuàng)建背后的一項(xiàng)基本原則是通過API提供一切功能。這種編程語言的目標(biāo)不僅是建立一種優(yōu)秀的文本處理語言,而且也想成為一種膠水語言。

Wall進(jìn)一步說,雖然在90年代Perl非常穩(wěn)定,但也確實(shí)存在一些問題。因此,2000年的時(shí)候,Perl團(tuán)隊(duì)決定打破一切,并提出了一套全新的設(shè)計(jì)原則。而且,他們還根據(jù)這些原則,重新設(shè)計(jì)出了Perl 6。其中一些原則做出了正確的選擇——保守地使用括號(hào),否則算上Unicode的括號(hào)也不夠用;無需蹩腳地重新發(fā)明面向?qū)ο蟮鹊取?/p>

他補(bǔ)充說,

“大量的重新設(shè)計(jì)就像是說,我們該用哪根柱子支撐一切?新的設(shè)計(jì)是面向?qū)ο蟮膯幔渴窃谠~法作用域內(nèi)重新設(shè)計(jì),還是在更大的范圍內(nèi)?每片信息的正確的支柱是什么?如果我們根本沒有支柱的話,該如何創(chuàng)建?”

Anders Hejlsberg表示,他遵循了他所接觸過的所有編程語言的共同原則,即“做某件事情的方法只有一種?!彼J(rèn)為,如果開發(fā)人員有四種不同的方法,那么最終很有可能會(huì)選擇錯(cuò)誤的道路,而且要過很久才能在開發(fā)中意識(shí)到這個(gè)錯(cuò)誤。根據(jù)Hejlsberg的說法,這就是為什么開發(fā)人員總是會(huì)創(chuàng)建一種名為“簡單的復(fù)雜”的東西,也就是說拿到一些復(fù)雜的東西后,通過簡單的打包來掩蓋復(fù)雜性。

與Guido van Rossum的觀點(diǎn)相似,他進(jìn)一步補(bǔ)充說,在設(shè)計(jì)一種編程語言的時(shí)候,無論你做出怎樣的決定,都必須堅(jiān)持到底。在設(shè)計(jì)編程語言的時(shí)候,你需要謹(jǐn)慎地決定“不”將哪些東西引入到這種編程語言中。通常,人們會(huì)向你提出他們的建議,但你無法真正改變編程語言的本質(zhì)。雖然你無法真正改變語言的基本性質(zhì),但是你可以進(jìn)行擴(kuò)展?;旧夏阌袃蓚€(gè)選擇:要么堅(jiān)持語言的本質(zhì),要么開發(fā)一個(gè)新的編程語言。

編程語言的類型系統(tǒng)
在談?wù)摰絇ython決定類型的方法時(shí),Guido van Rossum分享了Python首次推出時(shí)的一個(gè)故事。起初,int不是一個(gè)類,實(shí)際上它是一個(gè)轉(zhuǎn)換函數(shù)。后來,Guido意識(shí)到這是一個(gè)錯(cuò)誤?!拔覀冇泻芏噙@樣的功能,我們意識(shí)到我們犯了一個(gè)錯(cuò)誤,我們向用戶提供了與內(nèi)置對(duì)象類型不同的類?!?/p>

于是,Python團(tuán)隊(duì)決定重新構(gòu)建Python的整個(gè)類型,并進(jìn)行了大量的清理。因此,他們將函數(shù)int更改為類int的指定符。現(xiàn)在,調(diào)用這個(gè)類意味著構(gòu)造該類的實(shí)例。

James Gosling表示一直以來他都很注重性能,而提高性能的一個(gè)因素是類型系統(tǒng)。在構(gòu)建優(yōu)化編譯器和提前檢查正確性等方面,類型系統(tǒng)非常實(shí)用。擁有類型系統(tǒng)也有助于為小型設(shè)備構(gòu)建系統(tǒng)的情況。他說:“為了能在有限的空間內(nèi)工作,你必須了解設(shè)備提供的每一種可能性,而且你知道得越早,就越有可能出色地完成工作。”

Anders Hejlsberg將類型系統(tǒng)視為一種工具。開發(fā)人員喜歡他們的IDE,他們習(xí)慣于使用語句的自動(dòng)補(bǔ)齊、重構(gòu)和代碼導(dǎo)航等。這些功能是通過代碼的語義知識(shí)而實(shí)現(xiàn)的,而這種語義知識(shí)正是由類型系統(tǒng)的編譯器提供的。Hejlsberg認(rèn)為,添加類型可以大大提高開發(fā)人員的生產(chǎn)力,雖然這與我們的直覺相反。

他補(bǔ)充說:“我們以為動(dòng)態(tài)語言更容易掌握,因?yàn)槟銛[脫了類型的束縛。然而,事實(shí)證明,如果你以非侵入的方式添加類型,同時(shí)努力做好類型推斷等,那么就可以提高效率?!?/p>

談到Perl中的類型系統(tǒng)時(shí),Wall表示Perl 5和Perl 6有不同類型的系統(tǒng)。在Perl 5中,所有類型都會(huì)被視為字符串,即便是數(shù)字或浮點(diǎn)類型。該團(tuán)隊(duì)希望在重新設(shè)計(jì)Perl 6的時(shí)候依然保留這個(gè)功能,然而他們意識(shí)到:“如果新用戶對(duì)可互換性感到困惑,那還好;但如果連計(jì)算機(jī)都感到困惑,那就不妙了。”

于是,在Perl 6中,Wall和他的團(tuán)隊(duì)希望將其打造成更好的面向?qū)ο笠约案玫暮瘮?shù)式編程語言。為了實(shí)現(xiàn)這一目標(biāo),他們需要一個(gè)非常合理的類型系統(tǒng),并在底層建立一個(gè)非常合理的元對(duì)象模型。此外,你還需要非常重視“一切都是對(duì)象,一切都是閉環(huán)”的口號(hào)。

影響編程語言維護(hù)性的因素有哪些?
Guido van Rossum認(rèn)為,如果想加強(qiáng)編程語言的維護(hù)性,那么就需要在靈活性和規(guī)范性之間取得恰當(dāng)?shù)钠胶?,這一點(diǎn)非常重要。雖然對(duì)于小型程序來說,動(dòng)態(tài)類型更好用,但大型程序則需要采用嚴(yán)格的方法。而且,最好能夠通過編程語言本身實(shí)現(xiàn)規(guī)則,不要給用戶留下太多自由發(fā)揮的空間。出于這個(gè)原因,Guido打算在Python中添加類似TypeScript的技術(shù)。他補(bǔ)充說:

“實(shí)際上,TypeScript非常實(shí)用,因此我們也想在Python中添加類似的概念。當(dāng)然我們的添加方式會(huì)略有不同,因?yàn)槲覀兊恼Z言環(huán)境不同?!?/p>

除了類型系統(tǒng)以外,事實(shí)證明重構(gòu)引擎也非常有用。有了重構(gòu)引擎后,就可以一次執(zhí)行數(shù)百萬行代碼的大規(guī)模重構(gòu)了。通常,人們不會(huì)重命名方法,因?yàn)槟愫茈y認(rèn)真看完一段代碼,然后正確地給每一個(gè)變量重命名。如果你有一個(gè)重構(gòu)引擎,那么只需點(diǎn)下幾個(gè)按鈕,輸入新名稱,然后30秒內(nèi)就可以完成重構(gòu)。

Anders Hejlsberg表示,TypeScript項(xiàng)目源自一些龐大的JavaScript代碼庫。隨著這些代碼庫變得越來越大,維護(hù)工作變得異常艱難。后來基本上這些代碼庫變成了“只寫的代碼”。他補(bǔ)充說,因此我們需要理解代碼的語義,而這個(gè)過程也降低了重構(gòu)工作的難度。他表示:“這種語義的理解需要一個(gè)類型系統(tǒng),而且在你開始添加類型系統(tǒng)時(shí),你還可以添加代碼的文檔。”Wall也支持“良好的詞法作用域有助于重構(gòu)”的觀點(diǎn)。

編程語言設(shè)計(jì)的未來
在談?wù)摰骄幊陶Z言設(shè)計(jì)的未來時(shí),James Gosling分享了編程中一個(gè)未充分探索的領(lǐng)域——編寫使用GPU的代碼。他強(qiáng)調(diào)說,目前我們的編程語言都無法直接利用GPU,我們應(yīng)該加大這個(gè)領(lǐng)域的發(fā)展。

Anders Hejlsberg表示,編程語言不會(huì)像硬件或所有其他技術(shù)那樣快速地變化。就發(fā)展速度而論,編程語言更像是數(shù)學(xué)和人腦。他說:“我們?nèi)匀辉谑褂?0年前發(fā)明的語言進(jìn)行編程,所有的函數(shù)式編程原理都是50多年前的研究成果?!?/p>

但是,他也相信,如今的編程語言趨于多范式,不會(huì)嚴(yán)格區(qū)分面向?qū)ο缶幊袒蚝瘮?shù)式編程等類別。

“語言正在走向多范式。我覺得我們不應(yīng)該再說我只喜歡面向?qū)ο蟮木幊?、命令式編程或函?shù)式編程語言。”

如今,更重要的是我們需要了解最新的研究、新思維和新范式,并優(yōu)雅地將這些新思想融入到我們的編程風(fēng)格中。

讀者福利:Java架構(gòu)師進(jìn)階學(xué)習(xí)指南

如果你是Java程序員,對(duì)于上訴所說的技術(shù)提升很感興趣,可以加QQ群:867923845點(diǎn)擊立即加入免費(fèi)獲取筆者整理的適合1~5年的Java工程師學(xué)習(xí)參考的資源。還有大量面試題以及解析。歡迎各位工程師加入,合理利用自己每一分每一秒的時(shí)間來學(xué)習(xí)提升自己,不要再用"沒有時(shí)間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個(gè)交代!

還有更多你不知道的面試題資料哦(含答案)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:四大編程語言之父聚首六合網(wǎng)站架設(shè),編程語言要變天?-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article24/ddheje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站排名網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、自適應(yīng)網(wǎng)站品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)