在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

四位技術大拿相聚西雅圖,共同探討編程語言的設計與未來發展

Linux愛好者 ? 來源:lq ? 2019-05-05 17:18 ? 次閱讀

編程語言的優劣,一直眾說紛紜。倘若編程語言的創造者們相聚一起共談自己所設計的語言,是否又會掀起一番“腥風血雨”?

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

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

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

Guido van Rossum:Python的創始人;

James Gosling:Java編程語言的創始人兼首席設計師;

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

Larry Wall:Perl的創始人。

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

編程語言設計的關鍵原則

小組成員提出的第一個問題是:“編程語言設計的原理是什么?”

Guido van Rossum認為:

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

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

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

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

當談論到James Gosling創建Java的過程,以及他所遵循的設計原則時,他只是淡淡地說:“Java的出現并不像個人熱愛的項目那樣。其實我們只是想試著建立一個原型。”當時,James Gosling和他的團隊開展了一個涉及嵌入式系統領域的項目。為此,他們與許多為嵌入式系統構建軟件的開發人員進行了交談,并了解了他們的工作流程。

該項目大約有十幾個人,Gosling負責從編程語言的角度來盡量簡化項目。他補充說:“最初我們只想做比C更好的東西,但是后來就失去了控制,最終項目的其余部分只是提供了素材?!彼摇癑ava”從該項目中活了下來。基本上該編程語言就是為了解決身居數據中心之外的人的問題,這些人常常為網絡、安全性和可靠性等問題困擾。

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

Wall進一步說,雖然在90年代Perl非常穩定,但也確實存在一些問題。因此,2000年的時候,Perl團隊決定打破一切,并提出了一套全新的設計原則。而且,他們還根據這些原則,重新設計出了Perl 6。其中一些原則做出了正確的選擇——保守地使用括號,否則算上Unicode的括號也不夠用;無需蹩腳地重新發明面向對象等等。

他補充說,

“大量的重新設計就像是說,我們該用哪根柱子支撐一切?新的設計是面向對象的嗎?是在詞法作用域內重新設計,還是在更大的范圍內?每片信息的正確的支柱是什么?如果我們根本沒有支柱的話,該如何創建?”

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

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

編程語言的類型系統

在談論到Python決定類型的方法時,Guido van Rossum分享了Python首次推出時的一個故事。起初,int不是一個類,實際上它是一個轉換函數。后來,Guido意識到這是一個錯誤?!拔覀冇泻芏噙@樣的功能,我們意識到我們犯了一個錯誤,我們向用戶提供了與內置對象類型不同的類?!?/p>

于是,Python團隊決定重新構建Python的整個類型,并進行了大量的清理。因此,他們將函數int更改為類int的指定符?,F在,調用這個類意味著構造該類的實例。

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

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

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

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

于是,在Perl 6中,Wall和他的團隊希望將其打造成更好的面向對象以及更好的函數式編程語言。為了實現這一目標,他們需要一個非常合理的類型系統,并在底層建立一個非常合理的元對象模型。此外,你還需要非常重視“一切都是對象,一切都是閉環”的口號。

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

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

“實際上,TypeScript非常實用,因此我們也想在Python中添加類似的概念。當然我們的添加方式會略有不同,因為我們的語言環境不同?!?/p>

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

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

編程語言設計的未來

在談論到編程語言設計的未來時,James Gosling分享了編程中一個未充分探索的領域——編寫使用GPU的代碼。他強調說,目前我們的編程語言都無法直接利用GPU,我們應該加大這個領域的發展。

Anders Hejlsberg表示,編程語言不會像硬件或所有其他技術那樣快速地變化。就發展速度而論,編程語言更像是數學和人腦。他說:“我們仍然在使用50年前發明的語言進行編程,所有的函數式編程原理都是50多年前的研究成果。”

但是,他也相信,如今的編程語言趨于多范式,不會嚴格區分面向對象編程或函數式編程等類別。

“語言正在走向多范式。我覺得我們不應該再說我只喜歡面向對象的編程、命令式編程或函數式編程語言?!?/p>

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1947

    瀏覽量

    34848
  • 代碼
    +關注

    關注

    30

    文章

    4808

    瀏覽量

    68812
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84861

原文標題:四大編程語言之父聚首,編程語言要變天?

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用
    的頭像 發表于 11-01 11:51 ?925次閱讀

    MEMS產業火熱!未來怎么發展?四位院士解讀

    MEMS集微傳感器、微執行器和微能源等形成獨立智能系統,融合微電子技術和微機械技術,演化而成新興產業。MEMS制造技術廣泛應用于航空航天、汽車、生物醫療、消費電子等領域,對我國關鍵產業、經濟
    的頭像 發表于 10-24 16:13 ?369次閱讀

    高燃回顧|第三屆OpenHarmony技術大會精彩瞬間

    第三屆OpenHarmony技術大會圓滿落幕 全球開源精英齊聚 共同展示OpenHarmony技術、生態、人才的最新進展 見證OpenHarmony南北向生態繁榮 共繪開源生態發展藍圖
    發表于 10-16 18:47

    請回答OpenHarmony | 關于開源生態的未來想象,我們現場回答

    第三屆OpenHarmony技術大會即將啟幕 今年相聚,OpenHarmony又迎來了怎樣的突破與發展? 在萬物智聯的時代,如何通過技術創新引領智能
    發表于 10-12 00:09

    紅外熱成像技術將迎來新的發展機遇

    日前,由中國光學工程學會紅外技術及應用專業委員會聯合成員單位舉辦的“第五屆紅外技術及其應用大會”在上海隆重舉行。各大高校院所、行業專家、企業技術代表相聚一堂,
    的頭像 發表于 09-03 09:57 ?514次閱讀

    創投專家共聚西井科技,探討AI技術未來發展

    為進一步助力“上海硅巷”高質量發展,日前,一場主題為“垂類‘AI+’如火如荼 見證范式革命”的創投沙龍活動在西井科技舉行,來自垂直人工智能領域勇于創新的專家、投資機構以及企業代表共聚一堂,共同探討AI
    的頭像 發表于 08-13 10:17 ?474次閱讀

    倉頡語言書籍申請

    這兩個語言一些性能優缺點之后,我發現倉頡語言未來的趨勢,倉頡語言的高效編程、輕松并發、全場景應用開發的特點我特別感興趣。 作為華為自主研
    發表于 08-06 08:37

    半和四位半萬用表的區別

    半和四位半萬用表是電子測量領域中常用的兩種數字萬用表,它們在測量精度、顯示方式、應用范圍等方面存在一定的差異。本文將從多個方面詳細分析這兩種萬用表的區別。 一、基本概念 三半萬用表 三
    的頭像 發表于 07-14 14:23 ?6132次閱讀

    自然語言處理技術的原理的應用

    ,NLP技術在搜索引擎、機器翻譯、情感分析、語音識別等多個領域得到了廣泛應用。本文將深入探討NLP技術的原理、技術方法、應用場景以及未來
    的頭像 發表于 07-02 12:50 ?591次閱讀

    PLC的編程方式及編程語言

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強大的控制功能和靈活的編程方式而得到了廣泛應用。PLC的編程方式和編程
    的頭像 發表于 06-27 14:08 ?847次閱讀

    PLC編程語言和C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發表于 06-14 17:11 ?3052次閱讀

    【大語言模型:原理與工程實踐】探索《大語言模型原理與工程實踐》

    未來發展方向進行了展望,包括跨領域、跨模態和自動提示生成能力方向,為讀者提供了對未來技術發展的深刻見解。《大語言模型原理與工程實踐》是一本內容豐富、深入淺出的
    發表于 04-30 15:35

    具有可配置電壓轉換和三態輸出的 SN74AXC4T245四位總線收發器數據表

    電子發燒友網站提供《具有可配置電壓轉換和三態輸出的 SN74AXC4T245四位總線收發器數據表 .pdf》資料免費下載
    發表于 04-28 11:07 ?0次下載
    具有可配置電壓轉換和三態輸出的 SN74AXC4T245<b class='flag-5'>四位</b>總線收發器數據表

    verilog與其他編程語言的接口機制

    語言的接口機制,并深入探討其原理和應用。 Verilog語言概述 Verilog是由美國專業電子設計自動化公司Cadence設計系統有限公司(前身是Gateway Design Automation公司)開發的一種硬件描述
    的頭像 發表于 02-23 10:22 ?734次閱讀

    編程語言之間的區別和聯系

    編程語言是一種人與計算機之間進行交流的方式,不同的編程語言有著不同的特點和用途。本文將對種常見的編程
    的頭像 發表于 02-05 14:16 ?1653次閱讀
    主站蜘蛛池模板: 夜夜艹日日干| 欧美freesex10一|3| 国产视频观看| 亚洲羞羞裸色私人影院| 97久久天天综合色天天综合色hd| 欧美日韩国产另类一区二区三区| 婷婷丁香色综合狠狠色| 免费一级在线| 天天做天天爱夜夜大爽完整| 国产成人精品三级| 国模大尺度人体一区| 久久青草免费免费91线频观看| 色多多视频在线观看免费大全| 一色屋成人免费精品网站| 日本一区二区免费看| 一级美女片| caoporn成人免费公开| 操插干| 国产―笫一页―浮力影院xyz | 亚洲国产成人久久77| 麻生希痴汉电车avop130| 国产片一级特黄aa的大片| 精品国产免费人成高清| 免费一日本一级裸片在线观看| 日本三级香港三级人妇 m| 上课被同桌摸下面做羞羞 | 国内自拍2021| 国内啪啪| 91三级视频| 足控免费视频xxav| 资源种子在线观看| 色综合久久综合欧美综合网| 美女一级一级毛片| 久久福利青草精品资源站免费| 噜噜噜 综合 亚洲| 97综合网| 国产精品福利视频手机免费观看| yy4080午夜理论一级毛片| 视频在线一区| 国产成人精品系列在线观看| www色综合|