日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编程语言之父谈语言设计,龟叔大赞TypeScript

發(fā)布時間:2023/12/4 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程语言之父谈语言设计,龟叔大赞TypeScript 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

爭論哪門編程語言孰優(yōu)孰劣,長期以來都是程序員樂此不疲的“娛樂活動”。之所以說是娛樂活動,因為這些爭論到最后往往只是各自在發(fā)泄情緒,再則就是,脫離使用場景去討論所謂哪門語言更好并沒意義。

但如果讓編程語言作者坐在一起討論編程語言會產(chǎn)生怎樣的反應(yīng),水平是否會比我們高到不知哪里去?

本月初由西雅圖 Python 開發(fā)者舉辦的首屆年度慈善活動(Puget Sound Programming Python, PuPPy)邀請到了 Java, Python, TypeScript 和 Perl 創(chuàng)始人共同討論編程語言設(shè)計的過去和未來。

PuPPy 活動旨在為 Computer Science for All (CSforALL) 籌集資金,該組織致力于使計算機(jī)課程成為教育中不可或缺的一部分。

參與本次討論的嘉賓為四位編程語言創(chuàng)始人,分別是:

  • Guido van Rossum,Python 作者

  • James Gosling,Java 作者和首席設(shè)計師

  • Anders Hejlsberg,Turbo Pascal 編譯器的主要作者,Delphi、C# 和 TypeScript 開發(fā)者

  • Larry Wall,Perl 作者

活動中這四位編程語言之父的談?wù)撝黝}包括設(shè)計編程語言的主要原則、編程語言的類型系統(tǒng)、編程語言的可維護(hù)性和編程語言設(shè)計的未來

下面不妨看看這些開山鼻祖級別的大牛,對編程語言設(shè)計有怎樣的看法。

設(shè)計編程語言的主要原則

在討論這個話題時,Python 之父 Guido van Rossum 認(rèn)為,設(shè)計編程語言與 JK羅琳寫《哈利波特》有許多共通之處,羅琳為整部小說打造的架構(gòu)是天才的操作,她在第一本書中描寫的某些細(xì)節(jié)在第六和第七本中成了重要的情節(jié)。這和設(shè)計編程語言一樣 —— 需要關(guān)注某些細(xì)節(jié),比如關(guān)鍵字和編碼風(fēng)格但無論決定什么都必須保證在未來找到使用這些細(xì)節(jié)的新方法,就像JK羅琳一樣。

Java 作者 James Gosling 被問到 Java 遵守的設(shè)計原則時表示,Java 并不是由個人熱情驅(qū)動的項目,最初只是計劃構(gòu)建一個原型(當(dāng)時 Gosling 和他的團(tuán)隊正在進(jìn)行一個涉及嵌入式系統(tǒng)領(lǐng)域的項目,Gosling 負(fù)責(zé)從編程語言的角度來簡化工作),一開始只是希望要做得比 C 語言更好,然而后來失控了,項目的其它部分變成了某種背景,最終只留下 Java。它基本上是為了幫助開發(fā)者解決關(guān)于數(shù)據(jù)的問題,這些問題往往是因較差的網(wǎng)絡(luò)、安全性和可靠性而導(dǎo)致。

Perl 作者 Larry Wall 稱自己是“語言學(xué)家”而不是計算機(jī)科學(xué)家,他希望創(chuàng)造出類似自然語言的語言。對此,Larry Wall 舉了一個例子進(jìn)行解釋,與其讓人們進(jìn)入大學(xué)校園去決定他們走向何處,倒不如通過觀察他們想走的路,然后在這些地方鋪設(shè)捷徑Perl 的基本設(shè)計原則是為所有事物都提供 API,目標(biāo)是成為出色的文本處理語言,同時也是膠水語言。

Anders Hejlsberg 表示他參與開發(fā)編程語言的過程中都會遵守一個原則:「一個方法只做一件事」。Hejlsberg 認(rèn)為過多的方法很可能會導(dǎo)致誤入歧途,并在開發(fā)后期才會意識到問題。與 Guido 的觀點類似,Hejlsberg 也認(rèn)為在設(shè)計編程語言時,所做的任何決定都必須進(jìn)行全局考慮,與之共存的理念理應(yīng)貫穿整個開發(fā)過程。

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

Java 之父 Gosling 表示在打造 Java 的雛形時就已重點關(guān)注性能問題,而提高性能的一個關(guān)鍵因素就是類型系統(tǒng),這對構(gòu)建優(yōu)化編譯器和提前進(jìn)行正確性檢查等問題非常有用。

Hejlsberg 將類型系統(tǒng)視為“工具性”的功能,開發(fā)者喜歡 IDE 提供的代碼補(bǔ)全、重構(gòu)和代碼導(dǎo)航這些功能,而這背后都離不開具有類型系統(tǒng)的編譯器。Hejlsberg 也不認(rèn)為編程語言添加了類型系統(tǒng)就能提升開發(fā)者的生產(chǎn)力,他覺得開發(fā)者使用動態(tài)語言,然后以非侵入性方式來添加類型特性反而能提高開發(fā)效率。

編程語言的可維護(hù)性

Guido 認(rèn)為,如果希望編程語言具有可維護(hù)性,在靈活和規(guī)范的方法之間保持平衡非常重要。動態(tài)語言對于開發(fā)小型項目非常有用,但大型項目需要采用嚴(yán)格的類型檢查,因此如果編程語言本身能夠?qū)崿F(xiàn)這種平衡就最好不過了。這就是為什么 Guido 計劃在 Python 中添加類似 TypeScript 的技術(shù)。

除了類型系統(tǒng),重構(gòu)引擎對編程語言的可維護(hù)性也至關(guān)重要,通過它可以更容易地同時執(zhí)行數(shù)百萬行代碼的大規(guī)模重構(gòu)。Hejlsberg 表示 TypeScript 的起源正是日益龐大的 JavaScript 代碼庫,代碼庫越大,維護(hù)它們就變得越加困難,這些代碼逐漸成了 “write-only code”。為了易于重構(gòu),需要對代碼進(jìn)行語義理解,而這些語義理解的工作恰好需要一個類型系統(tǒng)。

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

當(dāng)被問及編程設(shè)計的未來時,James Gosling 分享了一個尚未充分探索的領(lǐng)域 ——?為 GPU 編寫代碼他特別指出目前尚沒有任何編程語言可以像 GPU 那樣工作,而在該領(lǐng)域有很大的發(fā)展空間。

TypeScript 核心開發(fā)者 Anders Hejlsberg 表示,編程語言的發(fā)展速度不會像硬件或其他技術(shù)一樣快,在演進(jìn)方面,編程語言更像是數(shù)學(xué)和大腦。因為直到今天,我們還在用 50 年前發(fā)明的語言在編程,而函數(shù)式編程的原則幾乎也都是在 50 年前提出的。另外,Hejlsberg 也認(rèn)為不能將簡單地把語言分為面向?qū)ο蠡蚝瘮?shù)式編程這樣的單獨(dú)類別,因為現(xiàn)代編程語言正逐漸成為多范式編程語言。

總結(jié)

以上是生活随笔為你收集整理的编程语言之父谈语言设计,龟叔大赞TypeScript的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。