天天看點

改變世界的 5 位程式員!

緻敬那些為軟體開發奠定堅實基礎的計算機科學先驅。

從 1 和 0 開始,程式設計經曆了很長一段路,才達到了現在的抽象狀态。過去的程式員用偉大的發明,為現代程式員輕松地完成工作奠定了堅實的基礎。如果我們研究某個軟體,也許,它是在若幹個庫的幫助下編寫的,而這些庫又有另一套多年前建立的依賴關系。

當我們再往前追溯,最終會發現,在計算機軟體進化史上,有一位傑出的程式員做出了一項偉大的發明。

例如,Anaconda 資料科學環境是用 Python 編寫的。而 Python 是用 C 程式設計語言編寫的,C 程式設計語言是一個龐大的項目,推動了數以百萬計的項目。類似的,Android 系統所使用的 Linux 核心也是一個由傑出程式員完成的一個大型項目。

下面這些程式員是計算機科學的先驅,他們通過完成一些令人難忘的項目,為軟體開發奠定了堅實的基礎。

1、Linus Torvalds

改變世界的 5 位程式員!

Linux 核心賦予了很多作業系統:主要是 Linux 發行版和其他基于 Linux 核心的作業系統,如 Android。另外,網際網路上的大多數網絡伺服器運作的作業系統都是 Linux。

Linus 最初是在大學期間實作了 Linux 核心,因為他想為當時個人電腦非常昂貴的 Unix 創造一個免費的替代方案。此外,他那時使用的 Minix 作業系統通常是為了學術目的而實作的,它在授權模式和硬體支援方面存在一些缺陷。Linux 核心最早是在 Minix 内使用 GNU C 編譯器進行程式設計的。

此外,他還建立了 Git 源代碼管理工具,專門用于管理 Linux 核心的開發工作流程。Git 是由于他們之前用于源代碼管理的 BitKeeper 工具出現了問題。這兩個項目都是作為他的個人項目開始的。但現在,數以百萬計的人在大量使用它們。在所有為開源做貢獻的程式員中,我喜歡 Linus 的性格。

2、Richard Stallman

改變世界的 5 位程式員!

Linux 項目本身隻是一個核心。當 Linus 在研究 Linux 項目的時候,與此同時,Richard 也在試圖和社群合作,建立一個自由和開源的 Unix 克隆,并取了一個好聽的項目名字 GNU(GNU's Not Unix 的遞歸縮寫)。他建立并整合了作業系統所需的所有自由軟體,除了核心這一塊之外,所有計算機使用者都可以自由使用。

最終,Linux 核心填補了 GNU 項目的最後一塊缺失,而他的概念性作業系統的名字也因給數百萬使用者以自由而變成現實世界的 GNU/Linux。他還開發了 GNU 項目的幾個子產品,如 GNU 編譯器集合和 GNU Emacs 文本編輯器。

除了 GNU 項目外,他還創立了 FSF(Free Software Foundation,自由軟體基金會),該基金會鼓勵每個人都能使用自由軟體,而不會被專利軟體公司所控制。此外,由 Richard 發起的自由軟體運動也讓人們對現代專利軟體和作業系統下的使用者隐私和使用者權利有了更深刻的思考。在他的公開演講中,他總是這樣提到自由軟體:

“對于軟體來說,隻有兩種可能:要麼使用者控制程式,要麼程式控制使用者。如果程式控制了使用者,開發者控制了程式,那麼程式就是一種不公正的權力工具。”

3、Dennis Ritchie

改變世界的 5 位程式員!

幾乎所有的計算機技術都以 C 語言為基礎。C++ 語言就像是添加到 C 語言的一個擴充,它支援現代通用語言的特性,比如基于類的面向對象程式設計概念。

C 語言程式設計語言被廣泛用于建立作業系統和嵌入式系統。Dennis 創造了 C 程式設計語言,取代了他的同僚 Ken Thompson 創造的 B 程式設計語言。他的老同僚 Brian Kernighan 曾經說過:

“Dennis 制造的工具,還有它們的直接後代,幾乎運作着今天的一切。”

除此之外,他還和 Ken Thompson 一起在貝爾實驗室(Bell Labs)為 Unix 作業系統的開發做出了貢獻,并為 C 程式設計語言撰寫了著名的手冊《C 程式設計語言》(The C Programming Language)。

4、James Gosling

改變世界的 5 位程式員!

Java installer 所說的是真的;有超過 30 億台裝置運作 Java。Java 程式設計語言為 Web 伺服器、行動電話、電視等各種元件提供了強大的功能,Java 在較短的時間内就吸引了人們的注意,因為用 Java 編寫 / 編譯的程式可以在任何機器上執行。

畢竟,程式中包含的原子指令将在名為 Java 虛拟機(JVM)的虛拟硬體裝置中執行。由于 Java 具有虛拟機和完整的通路控制集,是以,它是一種安全的程式設計語言。Gosling 用 C/C++ 風格的文法建立了 Java。

它可以用于非常複雜的項目,這要歸功于 Java 的、有吸引力的跨平台支援和純面向對象的行為。另外,他還在 Sun Microsystems 開發了諸如 neWS 視窗系統等多個項目。

5、Ken Thompson

改變世界的 5 位程式員!

Unix 就像是世界上所有流行的作業系統的鼻祖。即便是 Minix 和 Linux 等獨立項目,他們也會受到 Unix 的影響。Ken 與 Denis Ritchie 一起在貝爾實驗室設計并實作了 Unix 的原始版本。Ken 建立了 B 程式設計語言,并為 Denis 建立 C 程式設計語言提供了途徑。

此外,他對計算機世界的傑出貢獻還包括他在正規表達式和 UTF-8 編碼方面的研究。正規表達式的概念已經存在。而他寫了自己版本的 QED 文本編輯器,用計算機程式設計的正規表達式來查找文本。從那以後,正規表達式随着計算機技術開始了它的旅程。

事實上,創造一種具有平衡抽象的程式設計語言無疑是很困難的。換句話說,要創造一種既接近硬體又接近程式員的程式設計語言是很難的。但是,他與 Google 共同發明了 Go 程式設計語言,并且獲得了成功。