“作業系統不以 C 開頭和結尾,C 不等於整個世界”

整理 | 張仕影       責編 | 鄭麗媛

出品 | CSDN(ID:CSDNnews)

眾所周知,C 是一種被廣泛使用的語言,從作業系統核心到加密演算法的編寫,到處都在使用 C,它在多個領域發揮著重要作用。不久前,國外一位 Swift 和 Rust 專家 Aria Beingessner 在其文章《 C 不再是一種程式語言》中說,如今 C 不再只是一種程式語言,而成了每一種通用程式語言都需要遵守的協議,它具有絕對的統治地位。

不過近日 The Register 網站的作者 Liam Proven 卻在其發表的關於 C 的文章中表示,古往今來有很多不涉及 C 的程式語言和作業系統都發展得不錯:“並不是所有東西都基於 C。在 C 出現之前,許多當前流行的商業作業系統就已經出現了,還有一些用新舊語言編寫的作業系統,也基本不涉及 C 語言。”

“作業系統不以 C 開頭和結尾,C 不等於整個世界”

ALGOL 語言

ALGOL(ALGOrithmic Language),計算機發展史上首批清晰定義的高階語言,在20世紀60年代,ALGOL 影響力巨大,是大多數現代指令性語言的鼻祖。

美國 Burroughs 公司曾圍繞 ALGOL 高階語言編寫作業系統以及應用程式,開創性地設計了一系列大型機,即 Burroughs 大型系統。其中第一臺大型機 B5000 於 1961 年推出,所使用的作業系統為 Burroughs 公司在 1916 年引入的 MCP(Master Control Program)大型機作業系統。(MCP 最初是於 1961 年用 ESPOL 語言編寫的,而 ESPOL 為 ALGOL 60 的超集。)

在眾多商用作業系統中,MCP 是一款為數不多仍然沿用至今的“古老”作業系統,目前主要應用在 Unisys ClearPath/MCP。ClearPath MCP 當前的版本是 20。0,於2021年5月釋出。

“作業系統不以 C 開頭和結尾,C 不等於整個世界”

PASCAL 語言及其“後裔”

Pascal 語言是由瑞士計算機科學家 Niklaus Wirth 在上世紀六十年代末所設計的。Pascal 語法嚴謹,一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。Pascal 語言是 Apple Lisa(蘋果公司釋出的世界首臺圖形介面計算機)和早期 Mac 開發使用的高階語言,此外最初 Macintosh 作業系統的部分也是從 Pascal 原始碼手工翻譯成 Motorola 68000 組合語言的。

不少人眼中的 Pascal 語言是一種並不流行的語言,但實際上 NOI(全國奧林匹克資訊學競賽)將 Pascal 、C 與 C++ 作為競賽使用的程式設計語言, 同時 IOI(國際資訊學奧林匹克競賽)也將 Pascal 作為三種程式設計語言之一——事實上 Pascal 並沒有大家想的那麼不受歡迎。

20 世紀 80 年代,Wirth 為作業系統和應用程式專門設計了 Modula-2 語言。目前,世界上已經開發了近百個 Modula-2 編譯系統。歐洲、加拿大、澳大利亞等不少大學已經用 Modula-2 代替 Pascal 語言作為計算機科學系本科生的第一門程式設計課。

此外,Wirth 設計的 Oberon 作業系統也具有重要的價值。如今,Oberon 仍有多個專案正在執行中,如 Project Oberon 專案,該專案在基於 FPGA(現場可程式設計邏輯閘陣列)的現代硬體上執行一個現代化的作業系統版本;還有 Native Oberon 專案,在 x86-32 PC 和 QEMU(一款開源的模擬器及虛擬機器監管器)下執行。

“作業系統不以 C 開頭和結尾,C 不等於整個世界”

C 的“後裔”

以上所講的與 C 並無關聯的程式語言還是有些晦澀難懂,下面可以看一看 C 的“後裔”如今發發展如何。

C++

首先是 C++。雖然 Linux 之父曾多次表明自己不喜歡 C++ ,還將其批得一無是處:“C++ 是一門很糟糕的語言”、“很多不合格的程式設計師都在使用它” 、”C++ 最後做出來的就是一堆可怕且難以維護的垃圾”……但 C++ 依舊是目前非常受歡迎的一種語言。由 C 擴充套件升級而產生的 C++,擁有計算機執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式設計語言的問題描述能力。像是曾經輝煌的 Symbian 系統(塞班公司為手機而設計的作業系統)和目前流行的開源資料庫 MySQL 等等,都基於 C++ 語言設計。

C#

C# 則是由 C 和 C++ 衍生出來的一種安全穩定、簡單優雅的面向物件程式語言,在繼承 C 和 C++ 強大功能的同時去掉了一些它們的複雜特性。它憑藉其強大的操作能力以及優雅的語法風格等條件成為 。NET(用於構建多種應用的免費開源開發平臺)開發的首選語言。C# 是兼顧系統開發和應用開發的實用語言,因此被很多人認為其很有可能成為程式語言歷史上的第一個“全能”型語言。

Rust

事實上,近幾年來有關 C 是否會被 Rust 語言取代的話題一直層出不窮,其中被討論最多的應該就是 Rust 能否成為繼 C 語言之後 Linux 核心的第二官方語言。作為上線時間並不是很久的 Rust 語言目前已經受到了足夠的重視,從微軟探索將 Rust 作為 C 和 C++ 的安全替代方案開始,Rust 吸引了越來越多的目光:核心維護者表示願意接受用 Rust 開發 Linux 驅動;AWS(亞馬遜 Web 服務)也伸出橄欖枝,宣佈贊助 Rust……

“作業系統不以 C 開頭和結尾,C 不等於整個世界”

“C 不等於整個世界”

雖然 C 的世界是吸引人的,但同時 C 以外的世界也很精彩,作者 Liam Proven 在其文章的最後表示:“我希望這些例子可以說明一點:作業系統不以 C 開頭和結尾,C 也不等於整個世界。”

不少閱讀完 Liam Proven 文章的網友都表達了自己的一些看法,一部分網友對 Liam Proven 的觀點表示贊同:

網友@Jonathan Knight:“我認為,以 C 語言為中心的作業系統觀點真的只對年輕人有效。”

網友@bazza:“上世紀60、70年代,在眾多作業系統/語言的競爭中必須要有一種獲得勝利,只是碰巧它是 C 和 UNIX 。”

也有一部分網友對 Liam Proven 的觀點表

示懷疑,認為如今再提 ALGOL 和 Pascal 已沒有意義:

網友@R Soul:“這篇文章就相當於在鼠疫時代,一個推著手推車的人到處說‘把你的死人帶出來,把你的死人帶出來’。”

那麼,你對於非 C 作業系統之外的世界有什麼看法呢?

參考連結:https://www。theregister。com/2022/03/29/non_c_operating_systems/

反彈行情下的專屬投資禮包!投資VIP權益、188元現金紅包,100%中獎>>

開啟App看更多精彩內容

頂部