成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python、Java、C#、Perl 創(chuàng)始人聚首暢談編程語言的未來

開發(fā) 后端
4 月初,在 Puget Sound Programming Python(簡稱 PuPPy)舉辦的第一屆年度慈善活動中,四位傳奇的編程語言創(chuàng)始人聚集在一起就編程語言設(shè)計的過去和未來展開了熱烈的討論。此次活動旨在為面向所有人的計算機科學(xué)教育籌集資金。

Python、Java、C#、Perl 創(chuàng)始人聚首暢談編程語言的未來

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

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

  • Guido van Rossum:Python 的創(chuàng)始人;
  • James Gosling:Java 編程語言的創(chuàng)始人兼***設(shè)計師;
  • Anders Hejlsberg:Turbo Pascal 的原作者,他也致力于 C# 和 TypeScript 的開發(fā);
  • Larry Wall:Perl 的創(chuàng)始人。

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

編程語言設(shè)計的關(guān)鍵原則

小組成員提出的***個問題是:“編程語言設(shè)計的原理是什么?”

Guido van Rossum 認為:

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

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

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

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

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

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

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

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

他補充說,

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

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

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

編程語言的類型系統(tǒng)

在談?wù)摰?Python 決定類型的方法時,Guido van Rossum 分享了 Python ***推出時的一個故事。起初,int 不是一個類,實際上它是一個轉(zhuǎn)換函數(shù)。后來,Guido 意識到這是一個錯誤。“我們有很多這樣的功能,我們意識到我們犯了一個錯誤,我們向用戶提供了與內(nèi)置對象類型不同的類。”

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

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

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

他補充說:“我們以為動態(tài)語言更容易掌握,因為你擺脫了類型的束縛。然而,事實證明,如果你以非侵入的方式添加類型,同時努力做好類型推斷等,那么就可以提高效率。”

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

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

影響編程語言維護性的因素有哪些?

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

“實際上,TypeScript 非常實用,因此我們也想在 Python 中添加類似的概念。當(dāng)然我們的添加方式會略有不同,因為我們的語言環(huán)境不同。”

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

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

編程語言設(shè)計的未來

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

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

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

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

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

會談視頻

完整的近三個小時的會談視頻如下: 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2010-03-15 14:36:07

Python編程語言

2010-10-11 10:21:49

Flipboard移動開發(fā)

2015-05-18 14:39:23

MySQL開源OpenStack

2015-05-19 14:34:17

程序員編程語言

2009-05-20 09:41:10

2024-04-26 10:44:39

云計算平臺

2020-04-01 14:51:03

語言RubyJava

2011-10-17 09:22:24

蘋果iPhone 4S沃茲尼亞克

2009-07-02 08:59:56

ubuntuLinux開源

2022-07-19 11:14:27

前端開發(fā)

2016-06-16 17:13:59

Hadoop

2012-08-06 09:31:06

蘋果云計算

2010-05-04 16:22:45

Unix系統(tǒng)

2010-07-27 08:45:35

Perl 6Larry Wall

2009-06-19 16:44:56

SpringJava EE

2013-08-05 10:57:21

編程學(xué)習(xí)

2019-11-01 10:59:15

Python開發(fā)書箱

2009-12-22 02:48:23

COBOL語言Grace Hoppe編譯語言

2009-12-03 10:59:17

AndroidChrome

2012-06-21 10:36:29

Ubuntu免費系統(tǒng)
點贊
收藏

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

主站蜘蛛池模板: 蜜桃一区 | 成人亚洲一区 | 国产成人99久久亚洲综合精品 | 色婷婷国产精品综合在线观看 | 一区二区三区欧美大片 | 亚洲国产欧美日韩 | 亚洲成人精品一区 | 日韩精品在线播放 | 五月激情综合网 | 日韩久久久久久久 | 草草视频在线观看 | 国产一区二区三区久久久久久久久 | 国产日韩一区二区三免费高清 | 91久久精品一区二区二区 | 亚洲天堂av在线 | 国产欧美精品一区二区 | 国产一级一级毛片 | 中文成人无字幕乱码精品 | 日韩欧美中文 | 日韩中文字幕免费在线观看 | 日韩人体在线 | 日韩视频专区 | 在线一区观看 | 高清一区二区三区 | 亚洲精品一区二区在线观看 | 成人午夜精品 | 久久久久久久久久爱 | 国外成人免费视频 | 欧美日韩精品免费观看 | 亚洲少妇综合网 | 美女操网站 | 自拍偷拍中文字幕 | 日韩免费激情视频 | 久久99精品国产 | 日韩中文一区二区 | 一区2区 | 欧洲免费毛片 | 看片wwwwwwwwwww | 亚洲国产二区 | 成人网在线观看 | 在线视频91|