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

2020-12-27 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元迷你書!

相關焦點

  • 黑客入門須知的最基礎的幾種程式語言對比
    那麼最基礎的程式語言有哪些呢?常見的幾種計算機語言主要有C語言、C++和Java語言。每一種計算機語言都有各自的優缺點,下面我們一起細數和比較一下。(1)C語言優點:運行效率高和接近機器語言。缺點:在編程過程中,你不得不花很多時間,考慮與你要解決的問題完全無關且非常複雜的硬體資源管理問題。(2)C++C++在20世紀80年代中期推出,支持面向對象編程,原意是作為C語言的取代者。缺點:1)它也沒有解決內存管理問題,雖然比C有所改善;2)標準化不成功。
  • 世界上最好玩的6種表情符號程式語言
    誰能想到我們最喜歡的表情符號可以用來設計新的程式語言?聰明有才華的人已經想像並開發出了成熟的程式語言,我們可以用它來編寫表情符號和表情符號。這些基於表情符號的語言大多是深奧的程式語言( esoteric programming language),稱為esolang。然而,這些語言相對來說比其他語言更容易理解。
  • 薪資最高的15種程式語言及在線學習資源
    對此刻在家隔離或最近失去工作的人來說,現在是開始學習編程的好時機,這大概是2020年最受歡迎的技能之一了。國外某知名招聘網站最近發表了最受歡迎職業榜單,它基於三個因素:平均工資,過去三年該職位招聘廣告的增長情況,和網站每1百萬條信息裡針對該職位的求職帖數量。
  • 大數據開發中最常用的程式語言
    在本文中,我跟大家來分享一下大數據開發中最常用的5種程式語言。大數據倉庫ScalaScala是面向對象和函數式編程範例的完美結合,它既快速又健壯,並且是許多大數據專業人士常用的語言選擇。>快速而強大;適用於使用Apache Spark等大數據框架進行分布式大數據處理;運行於JVM,可在基於Java的生態系統中使用;Python根據最近幾年Stack Overflow上開發人員調查結果顯示,Python已被宣布為近幾年增長最快的程式語言之一
  • 12 種主流程式語言輸出「 Hello World 」,你真的都會了嗎?
    作為一名程式設計師,在初步學習編程想必都繞不開一個最為基礎的入門級示例「Hello World」,那麼,你真的了解各個語言「Hello World」的正確寫法嗎?作者 | Fatos Morina譯者 | 彎月,責編 | 屠敏以下為譯文:Hello world!
  • 單片機的程式語言:彙編語言、C語言、PL/M和BASIC語言
    單片機的程式語言很多,目前常見的程式語言有4種,即彙編語言、C語言、PL/M和BASIC語言。下面我們來介紹一下吧:一、BASIC程式語言BASIC是一種高級語言,它的英文含義是「初學者通用符號指令代碼」,是在1965年5月,由美國科學家託馬斯•庫爾茲研製出來的。10多年後,微軟公司把它移植到微型機上。
  • 程式語言學哪個比較好?2019年最實用的程式語言
    學習編程關鍵是要找到一種合適的語言,那麼程式語言那麼多,該如何選擇?下面萬古網校小編為大家分享一篇關於程式語言選擇的文章,希望能給你帶來幫助!第一大類語言包括Java、C、Python和C++。這類語言都是非常通用的語言,它們並不局限於特定的編程平臺或用途。
  • 多面程式語言Scala
    如Scala官網宣稱的:「Object-OrientedMeetsFunctional」,這一句當屬對Scala最抽象的精準描述,它把近二十年間大行其道的面向對象編程與舊而有之的函數式編程有機結合起來
  • IEEE Spectrum 2018 年度程式語言排行榜,Python 衛冕
    IEEE Spectrum 程式語言排行榜一年發布一次,今年是其發布的第五年。IEEE Spectrum 對 48 種語言進行排行,其排序綜合 9 個重要線上數據源的 11 個指標而成(今年去掉了 Dice,因為其關閉了 API),例如 Stack Overflow、Twitter、Reddit、IEEE Xplore、GitHub、CareerBuilder 等。
  • keil C語言與彙編語言混合編程
    不同類型的數據及其傳遞參數的寄存器如下表所示: 在C和彙編混合編程的時候,存在C語言和彙編語言的變量以及函數的接口問題。在C程序中定義的變量,編譯為.asm文件後,都被放進了.bss區,而且變量名的前面都帶了一個下劃線。
  • 2019年10月程式語言和資料庫排名: 前8名的語言多年較穩定
    程式語言排名從來都是備受爭議的話題。《西遊記》我覺得豬八戒第一,孫悟空第二,沙和尚第三,唐僧第四。豬八戒最可愛接地氣,有人性;孫悟空鬧天宮及之前是完美的反叛者,之後失敗;沙和尚。之所以打這個比方,是希望大家拿平常心去看待所謂「排行榜」。時間不同,角度不同,結果都不同。況且,程式語言Top 10 基本趨於穩定,短時期不會發生較大變動。
  • 9大實驗室5種語言 騰訊扣叮打造更安全、高效、專業的自研編程平臺
    編程作為人工智慧時代「人機對話」的語言,其重要性正在與日俱增。國務院《新一代人工智慧發展規劃》、教育部《2019年教育信息化和網絡安全工作要點》等文件中都明確指出,要推動在中小學階段設置人工智慧相關課程,逐步推廣編程教育。
  • 單片機程式語言的比較
    由於單片機的種種優點和特性,其應用領域極其廣泛。單片機系統同樣也由硬體系統和軟體系統構成,因此涉及到程序的編寫問題。單片機的程式語言很多,大致分成三類:機器語言、彙編語言、高級語言。機器語言由於繁瑣容易出錯,一般用戶已經不再使用。下面分別對彙編語言和最常用的高級語言進行分析。
  • 2020年頂級大數據程式語言有哪些?
    目前全世界的開發人員,編碼人員和軟體工程師都使用許多程式語言。根據一項調查,計算機語言的總數總計達9000種。但是,如今,其中只有50種程式語言是首選。程式語言會根據大數據和AI等行業而有所不同。科技市場由大數據主導,因此,如果作為大數據專業人士,必須學習最重要的程式語言。大數據中最喜歡的程式語言:PythonPython在全球擁有500萬用戶,目前被其視為開發人員最常用的程式語言之一。
  • 程式語言中的快樂天使——Ruby
    在編程世界,竟然存在一種程式語言肆無忌憚地公然挑戰程式設計師這個終極問題:「編碼的時候,你快樂嗎?」而這門語言有一個很好聽的名字叫 Ruby。當你聽到Ruby這個名字你第一個想到誰?是她?還是她?(開個玩笑啦)其實說到程式語言,程序世界裡有著種類繁多的語言。這些語言誕生的緣由多種多樣,有的是為了編寫運行速度快的程序,有的是為了可以在短時間內編寫程序,有的是為了讓程序只需編寫一次就可以在任何環境中運行,有的是為了使小孩也能進行簡單編程,等等。但是,似乎並沒有哪個語言積極地宣稱其目的是快樂編程。這可能是由於各個語言的設計者並沒有認真考慮過讓任何人都可以編程吧。
  • TIOBE:2019年1月全球程式語言榜單 C 獲得「2019 年度程式語言」稱號
    TIOBE 公布了 2020 年最新一期的程式語言排行榜。上個月我們預測 Java, C, Python 和 C# 將有機會獲得「年度程式語言」稱號,現在結果已公布,相信出乎很多人意料 —— 古老的 C 語言了榮獲 2019 年度程式語言稱號。
  • 2021年比較適合用於Web開發的7種程式語言
    程式語言就是一種用人類可讀的方式,告訴計算機該怎麼做一件事情。任何語言都是使用一系列符號來表示計算機的精確指令,這些指令的組合可以創建一個程序。在這個世界上,有成千上萬的程式語言,也有新語言在不斷被創建。構建網站也是這樣,我們可以通過許多可能的方式來構建,問題是,我們該怎麼做出正確的選擇?
  • 邏輯式程式語言極簡實現(使用C#) - 1. 邏輯式程式語言介紹
    相信很多朋友對於邏輯式程式語言,都有一種最熟悉的陌生人的感覺。一方面,平時在書籍、在資訊網站,偶爾能看到一些吹噓邏輯式編程的話語。
  • Julia程式語言:地球物理研究的新選擇
    Julia是一種新的程式語言,一種函數式程式語言,一種面向科學技術計算的高性能動態高級程序設計語言。近年來,Julia 語言成為全球熱度上升最快的程式語言之一,截止2019年2月27日下載量已超過 400 萬次,下載者包括谷歌、Facebook、FAA 和美國能源部等部門的開發者,Julia社區已經註冊了數千個軟體包。Julia開發環境已經支持Windows、MacOS 、Linux、FreeBSD等多種作業系統平臺。
  • PPT,世界上最牛逼的程式語言?
    去年,新東方的年會火了,全都是因為一首改編的歌曲《沙漠駱駝》,隨之火的還有一種勝過任何開發語言的新秀