10 種最具影響力的程式語言

2020-12-05 InfoQ技術實驗室

前幾天,我讀了這篇「 20 種有史以來最重要的程式語言」,這是一張「我剛剛編出來的荒謬的表格」。它之所以荒謬,是因為他列出的「最重要的」語言中包含了 Go,但沒有包含 ALGOL、Smalltalk 或 ML。他也沒有提到 Pascal,因為它「基本上已經消亡了」。荒謬!這完全違背了「有史以來最重要」的含義。

那麼,讓我們來討論一下那些「幾乎已經消亡」的語言,以及它們如此重要的原因。

免責聲明:是的,不是所有這些都已經消亡了,也不是所有這些都被遺忘了。就像大多數人一樣,是聽說過 Smalltalk 的,對吧?此外,這可能還會出現上億個錯誤,因為當你對 60 年的計算機歷史進行調查時,你總會犯一些錯誤。如果你發現什麼錯誤,可隨時大聲指責我!

免責聲明 2:是的,我知道其中一些是「首個發明」的,而另一些是「首個普及」的。歷史很複雜!

探測影響力

在開始之前,先簡單介紹一下如何尋找影響力。僅僅知道 X 是首個具有 Z 特性的語言並不意味著 X 實際上影響了 Z。雖然 Absys 可以說是首個邏輯程式語言,但幾乎所有的邏輯編程實際上都是源於 Prolog 了,後者是獨立開發的。最終,只有一種方法可以確定 X 影響了 Y:引用。這意味著:

Y 在其參考手冊中引用了 X;Y 引用了的論文中引用了 X;Y 的作者說過「我們受到了 X 的影響」。引用是可傳遞的。有時,Q 語言的手冊會列出激勵性文獻 R,其中 R 引用了論文 S 作為靈感,並提到 S 的靈感是從語言 T 那裡得到的。那麼,我們就知道 T 影響了 Q,即使這個鏈條有好幾個步驟。這意味著需要通過多種途徑尋找信源。為了加快速度,我們使用啟發式的方法來決定在哪裡查找。

一種有效的啟發式方法是程式語言的同根詞。對於語言來說,獨立地提出相同的語法是非常罕見的。因此,如果兩種語言某種語法相同,則其中一種可能會影響另一種。例如:即使沒有閱讀 Matz 的設計決策,我們也知道 Ruby 受到了 Smalltalk 的影響,因為它們都使用 select 方法過濾列表。這不是確鑿的證據。也許它是 Matz 獨立開發出來的,也許 Ruby 和 Smalltalk 都受到共同祖先的影響。但這給了我們一個開始尋找的方向。

語言

COBOL

背景:CODASYL,1960 年。COBOL 是由計算領域的商業 / 科學分裂形成的。那時,高級工業語言要麼用於工程計算,要麼用於管理數據。工程師們都支持 FORTRAN,而商業世界卻是一團亂碼,充斥著諸如 COMTRAN、FLOW-MATIC 等語言,因此,國防部成立了一個委員會,共同制定了一種通用的商業語言。那就是 COBOL。

COBOL 與 ALGOL、FORTRAN 和 LISP 一起構成了四種「母」語。今天,雖然我們認為它是小語種,但它曾經是世界上最流行的語言。我們的許多遺留商業系統仍然在其上運行著。

重要意義:就語法和語義而言,我們在現代計算中很少看到 COBOL 了。 COBOL 最重要的附加功能是提出了記錄數據的概念。在 FORTRAN 和 ALGOL 中,唯一的數據結構是靜態數組。但是,在 COBOL 中,我們可以讀取包含分層數據的結構化文件,它會自動將這些文件解構為代表變量。它是現代結構體的先驅。

消亡原因:這裡有兩個因素。一:COBOL 與其他 PLT 所做的工作沒有重疊。很少有人會基於 COBOL 進行構建。這意味著,建立在祖先教訓之上的第二代或第三代語言幾乎沒有 COBOL 基因了。這不是 COBOL 的本質問題,更多的是因為學術界對 COBOL 的創建過程不屑一顧。CODASYL 是一個商業團體,顯然它不值得關注(1)。即使是對於今天的語言來說,COBOL 也是非常複雜的。這意味著 COBOL 編譯器在微型計算機和微型電腦上落後於同時代的編譯器,為其他語言的繁榮並最終超越它提供了空間。

ALGOL

背景:ALGOL 委員會,1960 年。ALGOL-58 早在兩年前就問世了,但很快就被取代了,因此我將它們組裝在一起。該委員會想為算法研究提供一種良好的語言。換句話說,ALGOL 是一種形式化的「偽代碼」。

在四種母語中,ALGOL 是最早「消亡」的語言。大家仍然知道 LISP(2),COBOL 仍然為大量的遺留系統提供支持,並且大多數科學軟體包仍然具有 FORTRAN。但是我見過很多程式設計師,他們甚至都沒有聽說過 ALGOL。你可能會認為它是最不重要的母語了,但事實恰恰相反。在這四種母語中,只有 LISP 可以與 ALGOL 的普遍重要性相提並論。

重要意義:讓我們來看一下:詞法作用域、結構化編程、嵌套函數、形式化語言規範、按名稱調用語義、BNF 語法、塊注釋……今天的每一種現代語言都深受 ALGOL 的影響。

消亡原因:ALGOL 是一種研究語言,而不是商業語言。它是專為算法研究而設計的。規範沒有定義任何 I/O,這使得它在實踐中無法使用。當然,你可以編寫一個編譯器擴展,但是你還需要添加更多其他的東西。

人們就是這麼做的。 1960 年,有 70 人通過用 I/O 和額外的數據結構來擴展 ALGOL,開發了大量的類似 ALGOL 的語言。這包括 JOVIAL、SIMULA、CLU 和 CPL。後來的語言都是基於這些類 ALGOL 語言而不是直接基於 ALGOL 進行擴展的。我們稱 C 為「類 ALGOL(ALGOL-like)」,但實際上它是「類 BCPL(BCPL-like)」,也就是「類 CPL(CPL-like)「,即為類 ALGOL。 ALGOL 的孩子們把它埋沒了。

最終,ALGOL 人試圖將其擴展到 ALGOL-68,而 ALGOL-68 完全脫離了 ALGOL-60,但它並沒有獲得那麼大的影響力。 ALGOL-60 的血統通過 Nikolaus Wirth 的 Pascal 仍在延續。

APL

背景:Ken Iverson,1962 年。最初它是一種用於數組數學的手寫表示法,後來 IBM 將其作為程式語言使用。作為一種語言,APL 專注於數組處理:它能夠精確地處理大數字塊。

如果你以前曾聽說過 APL,則可能知道它是「那種奇怪的符號語言」。最臭名昭著的代碼片段之一就是這個「生命遊戲(the Game of Life)」的實現:

life←{↑1 ∨.∧3 4=+/,1 0 1.1 0 1.}必須使用專用的鍵盤來編寫它,就像這樣:

APL 鍵盤(來源)

儘管如此,APL 因其內存需求低而在大型機上廣受歡迎。

重要意義:數組處理。每次將兩個數字列表相加就意味著需要一個映射或一個循環,APL 引入了同時操作整個數組的概念。例如:

1 + 1 2 3 42 3 4 5 1 2 3 4 + 1 2 3 42 4 6 8 2 4 81 2 3 45 6 7 8 1 2 3 4 +[2] 2 4 82 4 6 86 8 10 12

這在科學界確實是一件大事。如此多的應用數學都可歸結為對大型矩陣的大規模運算。當你可以把外部產品 .f ,外部產品就很容易拿到了!

通過這一創新,APL 引出了 R、numpy、pandas、Matlab 等。APL 的直系後代還包括:J、Dyalog、K、Q。它們雖然沒有那麼成功,但在金融領域仍然有大量的應用。

消亡原因:很明顯,問題在於鍵盤。如果你無法使用 ASCII 進行編寫,那麼你就不能編寫太多的內容。Iverson 用 J 修復了該問題,J 使用了有向圖來代替不同的符號。編寫~:,而不是≠。不過,那是在 1990 年,要普及一種完全不同的編程風格還是為時已晚了。

更微妙的問題在於,APL 和 J 僅適用於同構數據的處理。不能將字符串和數字都存儲在同一個數據結構中(除非你使用 box,這是一個完整的「蠕蟲罐頭」),並且處理字符串通常是一場噩夢。因此沒有數據幀,這就將許多現代數據科學排除在外了。

擴展閱讀:作為思想工具的符號。

BASIC

背景:John Kemeny,1964 年。最初它是一種簡化了的類 FORTRAN 語言,旨在幫助工程技術以外的人們使用計算機。

BASIC 的真正騰飛是在微型計算機時代。最初的微型計算機沒有足夠的內存來編譯「真正的」程式語言,而我們可以把 BASIC 編譯器精簡到大約 2 KB。 BASIC 成為了早期程式設計師的通用語言。在 20 世紀 70 年代,如果你在家編程,那麼你可能是在微型計算機上編寫 BASIC。

10 PRINT "Hello, World!"20 END重要意義:其最大的技術影響力在於運行時解釋器。 BASIC 是首個具有實時解釋器( the Dartmouth Time Sharing System,達特茅斯時間共享系統)的語言,領先了 APL 一年。而且 APL 系統僅面向 IBM 客戶,因此,在很長一段時間內,實時解釋器就是 BASIC 的,或是不存在的。(3)

BASIC 有更大的社會影響力。它為家庭,尤其是孩子們帶來了編程。 在 80 年代和 90 年代,許多有影響力的程式設計師首先學習的都是如何使用 BASIC 編程。許多企業程序也是用 BASIC 編寫的,這可能加速了 Cobol 的衰落。

BASIC 還有一個妙招:Office 工具!微軟最終將 BASIC 變成了 Visual Basic,並將其用作 Office 的宏語言。之後,將它擴展到了 OpenOffice 和 LibreOffice,從而鞏固了 BASIC 在特定利基市場的地位。最近,它已被 JavaScript 取代,現在成為了一種遺留的宏語言。

消亡原因:人們認為 BASIC 是一種「次要」的語言。如果你是個小孩或小企業主,你可能會使用它,但是真正的程式設計師使用的是真正的語言。一旦製造商可以廉價地製造出具有超過 16k 內存的微型計算機時,他們就開始會為了 Pascal 和 C 而貶低 BASIC 了。

BASIC 作為一種遺留的語言教學方式在孩子們的生活中延續了一段時間,但似乎也已經消失在這個利基市場之外了。

PL/I

** 背景:IBM,1966 年。IBM 的業務被分成兩種語言:科學家使用 FORTRAN,商業人士使用 COMTRAN。面對來自 COBOL 的競爭,為了簡化系統,他們試圖開發一種對工程和商業都有用的語言。它看起來像是兩種語言的超集,在頂部還添加了許多附加功能。(4)** 現在每個人都可以使用相同的語言了,並且 IBM 可以賺很多錢!耶!

重要意義:ALGOL-68 的作者嘲笑 PL/I,將其稱為過時的語言。但是 ALGOL-68 所做的每件事情,PL/I 都能做得更快更好。雖然 COBOL 是首個提出結構化數據的,但 PL/I 是首個將其作為類型實現的語言。在 COBOL 中,使用名稱讀取用戶會用到兩個全局變量:user 和 name。在 PL/I 中,可以使用一個帶有 user.name 欄位的變量。 PL/I 還是首個使用了指針操作直接內存、使用了常量和函數重載的高級語言。(5)

這些概念中有許多是通過 C 進入主流編程的,C 是 BCPL 和 PL/I 的結合體。 C 甚至使用了 PL/I 的注釋語法。

消亡原因:所有的 FORTRAN 程式設計師都認為它太像 COBOL 了,而所有的 COBOL 程式設計師都認為它太像 FORTRAN 了。 IBM 曾試圖用一種語言來處理這兩種既定的語言,但這種語言要複雜得多。他們是唯一使用編譯器的團隊,但這也無濟於事,這意味著其他所有人都不信任廠商鎖定。當 IBM 能夠在這兩個問題上取得進展時,更廣闊的計算世界已經進入到了微型計算機時代,在那裡 PL/I 被 BASIC 淘汰了。

擴展閱讀:PL/I 的選擇。

SIMULA 67

背景:Ole Dahl 和 Kristen Nygaard,1967 年。他們擴展了 ALGOL 來進行仿真。首先,他們開發了 SIMULA I,它具有專用的仿真器和「活動」語法。 SIMULA I 獲得了一些早期的應用,但是兩人對該語言的「專業化」程度以及在仿真中存在的大量重複代碼感到不滿。他們希望創建一個更通用的框架來表示一般事物,而不僅僅是仿真。

他們的想法是允許用戶使用多態函數解析來定義稱之為「類」的新類型。然後,用戶可以將仿真特性作為對象系統中的一個特例來進行構建,從而用戶就可以輕鬆根據自己的特定需求來定製對應的仿真特性了。

重要意義:雖然 SIMULA 並不是首個「真正的」 OOP 語言,但它是首個具有適當對象的語言,並為其他語言的構建奠定了基礎。這包括類 / 對象的拆分、子類、虛擬方法和受保護的屬性等。 它幾乎啟發了所有 1967 年之後的關於對象的學術研究。CLU 和 ML 都將 SIMULA 作為其主要靈感的來源。 Bjarne Stroustroup 在 SIMULA 上完成了他的博士學位,最終將它的許多思想整合到了 C ++ 中。

消亡原因:在同一份博士論文中,Stroustroup 聲稱 SIMULA 太慢了,無法大規模使用。 「如果你不在大型機上工作,那麼祝你一切順利」。值得一提的是,Smalltalk-80 採用了同樣的思路,甚至更進了一步,它在背後還附加了 13 年的摩爾定律。甚至 Smalltalk 也常常被嘲笑太慢了。每個人都在 SIMULA 中實現了他們可以集成到更快、更簡單的語言中的想法。

擴展閱讀:編譯 SIMULA:技術起源的歷史研究,《SIMULA 的歷史》。

Pascal

背景:Niklaus Wirth,1970 年。在 ALGOL-68 的結構變得過於複雜,而不適合 Wirth 的喜好之後,他抓住了 ALGOL-60 的精髓從而開發了 Pascal。Pascal 最初是作為「 CS 入門」語言而發展起來的,到 80 年代初,它已成為了 Usenet 工作板上第二受歡迎的語言。Wirth 認為整個 Pascal、Modula、Oberon 家族是一個統一的語言概念。

重要意義:Pascal 沒有引入任何全新的觀點。它是一種刻意保守的語言,它試圖挑選出過去十年最好的部分,並以一個統一的包來提供它們。 Pascal 將 ALGOL 語法帶出了學術界,以至於 ALGOL 的賦值語法 := 被稱為「Pascal 風格」。從這一點上來看,大多數看起來像 ALGOL 的語言特性很可能是受 Pascal 啟發的,而不是直接受 ALGOL 本身啟發的。

儘管 Pascal 並不是很有創意,但它的變體卻很有創意。Wirth 還率先提出了「逐步細化」的概念,以作為編寫嚴謹軟體的一種手段。這最終導致了 Modula(推廣了一級軟體模塊)和 Euclid(首個用於生產的形式化驗證語言)的產生。

消亡原因:我在此稱之為「加擊」。與這個列表中的大多數其他語言不同,Pascal 沒有重大的結構化障礙,也沒有強有力的競爭對手。當然,它與 C 存在競爭關係,但在很長一段時間裡,它仍然表現良好。人們通常將其歸因於「為什麼 Pascal 不是我最喜歡的語言」這篇論文,但這個答案太簡潔了,而歷史要複雜得多。另外,Delphi 在 TIOBE 和 PYPA 度量中仍然排名很高,因此它並沒有像 SIMULA 一樣完全消亡了。對 Pascal 隕落的準確分析比本文其餘部分還要長的多。

擴展閱讀:程式語言Pascal , Pascal 及其繼承者。

CLU

背景:Barbara Liskov,1975 年。Liskov 想要處理抽象數據類型。它就這樣產生了。這就是 CLU 的全部原因。

重要意義:CLU 可能是人們從未聽說過的最有影響力的語言。迭代器? CLU。抽象數據類型?CLU。泛型? CLU。異常檢查? CLU。

我們並沒有採用相同的術語,因此它並不是 100%都來自於 CLU,但仍然如此。未來十年的每種語言規範都是對 CLU 進行命名的。 CLU 做了很多。

消亡原因:CLU 是一種展示性語言。Liskov 想讓人們接受她的想法,而不是這種特定的語言。他們做到了:如今幾乎所有的語言都應歸功於 CLU。她一完成 CLU,便轉到了 Argus,該項目本來是為了展示她關於並發的想法。它並沒有採用幾乎相同的方法,而且留下了很多需要挖掘的東西。

擴展閱讀:CLU 的歷史

ML

背景:Robin Milner,1976 年 6 月,Milner 正在構建 LCF 校準器,這是首批校準器助手之一。如果採用正確的格式編寫了一份證明,LCF 可以檢查出它是否正確。為了幫助撰寫證明,Milner 創建了一個基於健全數學形式的元語言,這在當時意味著嚴格的靜態類型和高階函數。最終,ML 被標準化為 Standard ML。

重要意義:ML 可以說是最古老的「代數程式語言」。有很多東西可以歸因於 ML:代數數據類型、模塊、類型化函數式編程。令人驚訝的是,它並不是第一次這樣做的!設計第一個 ML 只是為了配合 LCF 的使用,它並不是一種通用語言,因此缺少了許多這類特性。隨著人們開始更廣泛地使用它,他們從其他研究語言中汲取了一些想法並將其納入 ML。不過,一個非常重要的概念確實源於 ML:類型推斷。 ML 是首個無需鍵入類型的靜態類型語言,因為編譯器會為你找出相應類型。這為類型化 FP 逃離學術界並進入生產應用鋪平了道路。

ML 還極大地影響了現代定理的校驗。 Isabelle、CVC3 和 Coq 的「程序」語言都是基於 ML 的。儘管近年來,FP 的 Haskell 分支變得越來越流行,但很多類型理論都是基於 ML 的。(7)

消亡原因:ML 具有許多有趣的特性,但人們關注它僅是因為它的類型推斷。當時 ML 仍然是一種專用於定理校驗的語言。 SML 與 Haskell 在同一年問世,Haskell 是一種「更純粹」的類型化 FP 語言示例。

Smalltalk

背景:Alan Kay,1972 年、1976 年和 1980 年。這有一個不斷變化的目標。 Smalltalk-72 是首個,Smalltalk-76 將「面向對象編程」的概念引入到了更廣闊的世界,而 Smalltalk-80 則被廣泛採用。

Smalltalk 不是首個使用對象的語言,但它是首個提出「面向對象」的語言。區別在於,Simula 除了具有數字和布爾值等基本類型之外,還具有其他的對象,而在 Smalltalk 中,布爾值也是對象。如果你想了解更多,可以查看我寫在這裡的內容。

重要意義:我們有時認為 Smalltalk 是「真正的」 OOP,而 Java 和 Python 之類的語言並不是「真正的」 OOP,但事實並非如此。就像其他範式一樣,OOP 是一個由許多不同影響所組成的巨大的混合體。但 Smalltalk 無疑是推廣這一概念。如果你翻開 80 年代中期或 90 年代初期的任何一本關於 OOP 基礎理論的書籍,它們都是建立在 Smalltalk 上的。許多人還將 Smalltalk 示例轉換為 C++,少數人將使用另一種語言,但每個人都會使用 Smalltalk。

Smalltalk 還傳播了對象可作為共享數據的概念,從而導致了 CORBA 的出現,並啟發創建了可計算 Actor 模型。

消亡原因:人們普遍認為 Smalltalk 衰落,是因為人們改用了 C++。但這並不是真的。 Smalltalk 確實有一些問題,特別是它很難與其他工具交互,並且運行時性能很差。但是,即使到了 1990 年代,Smalltalk 仍在做著受人尊敬的生意,許多人認為它將成為一種佔主導地位的商業語言。

Java 的發展趨勢:

(來源)

Smalltalk 並不是「Javapocalypse」的唯一受害者:Java 還邊緣化了 Eiffel、Ada95 以及 OOP 世界幾乎所有的其他語言。一個有趣的問題不是「為什麼 Smalltalk 會消亡」,而是「為什麼 C++ 能夠生存」。我認為這是因為 C++ 具有更好的 C 互操作性,因此能更容易地擴展到遺留系統中。

總結

這只是已消亡的重要語言中的一小部分。我沒有涵蓋 ALPHARD、ALTRAN、Argus、Automath、BCPL、COMTRAN、CPL、Eiffel、FLOW-MATIC、HOPE、Hypercard、ISWIM、JOVIAL、MacSyma、Mesa、Miranda、Multics Shell、PLANNER、SMP、Sketchpad 或 SNOBOL 。它們都以自己的方式為現代編程領域做出了貢獻。歷史是複雜的。

最具影響力的語言從未成為主流。很少有人會使用它們中的任何一個。但是每一種語言都鼓舞了人們,也鼓舞了其他人,因此這些被遺忘的語言的基因在它們被遺忘了幾十年後才顯現出來。但也有不計其數的語言沒有把它們的想法表達出來。 《程式語言百科全書》列出了 8,000 多種程式語言。它們中的許多想法從未消失。想想如果沒有人聽說過 SIMULA,或者 Liskov 從未分享過 CLU,我們將會損失多少東西。

這就是我喜歡研究歷史的原因之一。去了解我們丟失了什麼並重新將其找回來。

這篇文章的初稿最初是在我的時事通訊上分享的。如果你覺得它很有趣,為什麼不訂閱它呢?

感謝 Miikka Koskinen 、 Kevlin Henney 、Eric Fischer 和 Levi Pearson 對本文更正和反饋。

備註

這很諷刺。不管怎樣,人們都知道 Lisplikes,足夠接近了。究竟是 BASIC 還是 JOSS 是首個尚存爭議,因為它們幾乎是在同一時間開發的,而且都分階段推出的。但是 JOSS 只有幾百個用戶,對現代語言幾乎沒有影響。請注意,PL/I 讀作「Programming Language One」,而不是「Programming Language Eye」。I 應該是羅馬數字。PL/I 實際上將這些稱為「泛型函數」,但其實現與重載相同。PL/I 沒有任何抽象數據類型的概念,而這種抽象數據類型出現是十年之後的事情了。這裡的時間軸有點奇怪。人們說它是在 1972-73 年出版的,但他們在 1977 年時提交 POPL 論文時,聲稱它時在「兩年前」可用的。Haskell 從 HOPE 和 Miranda 那裡獲得的收益比 ML 還要多。關注我並轉發此篇文章,私信我「領取資料」,即可免費獲得InfoQ價值4999元迷你書!

相關焦點

  • 50 年來最具影響力的十大程式語言!
    「適者生存」的自然法則在應用競爭激烈的程式語言界同樣適用,而在數百種程式語言中,相對而言,哪些最具影響力?哪些才是開發者們最值得關注的?以下10種程式語言對軟體開發領域做出了巨大的貢獻,成為50年來最具影響力的程式語言。程式語言是軟體開發世界中最重要的東西,多年來經常受到人們的評論、爭議和改進,或許有些使用程式語言的人還不知道它背後的歷史。正如大家都知道James Gosling是Java之父,但是誰創建了Perl、Pascal、Lisp、Erlang,並不是每個開發人員都能回答上來的。
  • 近50 年來最具影響力的 10 種程式語言,都是誰發明的?
    軟體世界中有各種各樣的程式語言,每年還會有新的語言出現,最近發布的程式語言就有Scala、Kotlin、Go和Closure,但歷史車輪滾滾向前,浪花淘盡英雄,它們中只有少數才能夠存活下來。程式語言是軟體開發中最重要的東西,多年來伴隨著人們的討論和批評不斷改進,沒有最好的語言,只有更合適的語言。
  • 數據科學家常用的10種程式語言和工具
    【IT168 翻譯】SAP大中華區副總裁劉偉曾經在DTCC大會上說過:「數據科學家是21世紀最性感的職業」。那麼要進入數據科學領域應該掌握哪些技能?如何從一個數據分析師轉變角色成為一個數據科學家?首先你要對數據科學家這份工作做一個研究,例如數據科學家需要掌握哪些數據科學工具和程式語言?一般來說,R和Python是需要重點掌握的。
  • 量子編程取得突破:量子計算機的第一種直觀語言
    目前,蘇黎世聯邦理工學院的計算機科學家已經在程式語言領域取得了重要突破:他們的量子語言是此類語言中的第一種,它與古典計算機語言一樣優雅,簡單且安全。#量子計算機對人類發展的影響#量子計算機的編程變得越來越容易:蘇黎世聯邦理工學院的計算機科學家設計了第一種程式語言,可以像傳統計算機一樣簡單、可靠、安全地對量子計算機進行編程。
  • 機器人10大流行程式語言對比 你掌握了哪種?
    在本文中,我們將會審視在機器人學中最流行的10種程式語言,深入探討它們各自的優缺點以及使用和棄用它們的原因。  這實際上是個很有道理的問題——畢竟,如果你從不付諸實踐,那為什麼要花大量的時間和精力去學習一種新的程式語言呢?如果作為一名機器人學新人,你當然會想學習一種確實對你的職業生涯很有用的程式語言。
  • 最適合兒童的程式語言 - Python
    所以在需要找到Scratch圖形編程到高級語言圖形編程的過渡,Python就是最適合的程式語言。首先讓我們一起聊聊為什麼開始學習Python?學過或者了解Scratch或者Scratch JR圖形編程的同學們,Scratch圖形編程是通過簡單的拖放塊來實現特定的運行邏輯讓目標(小動物)活動起來。對於開展STEAM教育,Scratch圖形編程是最適合的方式之一。低齡的小朋友在接受和掌握一門語言上難度過大,對數理邏輯也是處於認知階段。
  • 連續8年入選「中國最具國際影響力期刊」!
    《人文社科年報》(2020 版)根據國際影響力指數,從兩千多種人文社科期刊中遴選出TOP期刊共計160種,分為"中國最具國際影響力學術期刊"和"中國國際影響力優秀期刊"兩類,各80種。統計顯示,"中國國際影響力TOP期刊"國際他引頻次等各項指標均遠高於其他一般期刊,是我國學術期刊"走出去"的優秀代表,對提升我國的國際學術影響力,助力中國期刊走向國際舞臺、樹立國際學術品牌和文化自信方面發揮了積極的、重要的作用。中國最具國際影響力學術期刊(人文社會科學)影響力指數(CI)是反映期刊在本學科期刊群中的學術影響力水平的重要指標。
  • 最適合人工智慧開發的程式語言優缺點對比
    就像大多數軟體應用程式的開發一樣,開發人員也在使用多種語言來編寫人工智慧項目,但是現在還沒有任何一種完美的程式語言是可以完全速配人工智慧項目的。程式語言的選擇往往取決於對人工智慧應用程式的期望功能。關於最佳人工智慧程式語言的爭論從未停止,所以本文就來比較5種人工智慧項目最常用的程式語言,並列出它們的優缺點。
  • 東南大學年度最具影響力畢業生出爐
    5月22日晚,「東大畢業生,領show影響力」——東南大學2015年最具影響力畢業生現場評選活動在九龍湖校區焦廷標館舉行。東大黨委書記郭廣銀、常務副書記劉京南、黨委副書記兼副校長劉波、副校長鄭家茂等出席,與一千多名東大學子共同見證了年度最具影響力畢業生的誕生。
  • 機器人研發中使用的十大最流行的程式語言詳解
    在本文中,我們將介紹機器人研發中使用的十大最流行的程式語言。我們將討論他們的缺點和優點,以及使用或者不使用它們的理由。世界上有超過1500種程式語言你可以學習。下面列出的是目前機器人中十種最流行的程式語言。每種語言都有不同的優勢,作者根據自身經驗,按照優先級從低到高排序。
  • 世界程式語言排行榜
    請注意這個排行榜只是反映某個程式語言的熱門程度,並不能說明一門程式語言好不好,或者一門語言所編寫的代碼數量多少。本文引用地址:http://www.eepw.com.cn/article/269656.htm  該指數可以用來檢查你的編程技能是否仍然是最新的或作出什麼開始建立一個新的軟體系統時,程式語言應採取的戰略決策。在 TIOBE 指數的定義可以在這裡找到。
  • 十大流行程式語言和它們的創造者
    軟體開發領域裡有許許多多程式語言。在這裡,不斷有新的程式語言在誕生,如Scala、Go、Closure等,也不斷有老的程式語言慢慢消亡。它們中的許多都曾為軟體開發作出了巨大貢獻。作為軟體開發領域中最重要的事物,程式語言從一誕生起就會經歷人們的議論、批評與改進。
  • 假如女人是一種程式語言
    假如女人是一種程式語言,也許每個男人心中都有自己最喜歡的那一個吧?我認為女人可分兩類,「面向過程」和「面向對象」。「面向對象」的女人以尋找終身伴侶為目標,而「面向過程」的,則以經歷難以忘懷的愛情時光為己任。各位程序猿當然也要按需選擇最適合自己的「程式語言」,不要因為時髦而盲目追求「面向對象「,有時候過程可能比結果更重要。
  • 薪資最高的15種程式語言及在線學習資源
    對此刻在家隔離或最近失去工作的人來說,現在是開始學習編程的好時機,這大概是2020年最受歡迎的技能之一了。國外某知名招聘網站最近發表了最受歡迎職業榜單,它基於三個因素:平均工資,過去三年該職位招聘廣告的增長情況,和網站每1百萬條信息裡針對該職位的求職帖數量。
  • 13 種程式語言名稱的來歷
    可能程式設計師們都認為編寫代碼時給變量取名是件煩人的事,不過他們還需要給另外一個東西取名, 那就是新的程式語言。
  • 計算機程式語言的發展簡史,人工智慧與雲計算程式語言!
    學習一兩門計算機程式語言也如當初學習英文一樣的火熱,隨著人工智慧AI和雲計算的不斷發展,Python語言和Scala語言已經成為這兩個領域裡面最為火熱的程式語言了,可以預知未來學習計算機程式語言的人也一樣會如同學習英文一樣的成為一種新常態,並且成為一種穩定的常態。以下筆者將以自己的學習認知,簡單的闡述一下計算機程式語言的發展。
  • 量子計算機算力那麼強,它使用什麼程式語言?
    我們現在用的普通計算機上面的應用程式都是通過特定的程式語言進行開發出來的,那如果量子計算機出現我們應該用什麼編程式設計師進行編程呢?近日,蘇黎世聯邦理工學院的計算機科學家為量子計算機設計了第一種程式語言,可以像傳統計算機那樣簡單、可靠和安全地為量子計算機編程,這種程式語言被命名為Silq。Silq允許程式設計師更好地利用量子計算機的潛力,而且它的代碼更緊湊,更快,更直觀,更容易理解。程式設計師怎麼對它進行編程呢?
  • Go 語言獲得 IEEE Spectrum 2019 年度程式語言 Top 10
    polaris xu註:Go這一年雖然增長挺多,然而,有些語言勢頭更猛,使得 Go 語言相比較去年降了1位。這裡指的一提的是,PHP 直接沒在該榜單中了~歡迎來到 IEEE Spectrum 第六屆頂級程式語言年度互動排名。
  • 2014中國最具國際影響力學術期刊排名發布
    原標題:2014中國最具國際影響力學術期刊排名發布  日前,中國學術期刊光碟版電子雜誌社與清華大學圖書館聯合開展研究,以國際化視野,檢索了6400多種中國學術期刊被1.4萬多種國際學術期刊的引證情況,並且通過計量分析和同行專家評議,研製了2014年中國學術期刊國際影響力引證報告。這是2012年以來第三次發布該引證報告。
  • 量子計算機領域內第一種高級程式語言 Silq 誕生
    近日,蘇黎世聯邦理工學院的計算機科學界人士在程式語言領域取得了重要突破:計算機科學教授 Martin Vechev 與他的團隊設計出了量子計算機領域內第一種高級程式語言 Silq,它能夠像傳統計算機語言一樣簡單、安全又可靠。