大家好,我是小程程
1975 年 4 月 4 日,比爾·蓋茨(Bill Gates)和保羅·艾倫(Paul Allen)在新墨西哥州阿爾伯克基(Albuquerque)成立了微軟。
前幾天就是微軟成立 50 週年的日子。為了慶祝和紀念,4 月 2 日蓋茨在個人網站發文回顧了創業歷史,曬出微軟首個產品的原始碼檔案,整整 157 頁。

注:以下是以蓋茨的第一人稱講述。
我寫過的最酷程式碼
1975 年,保羅·艾倫和我建立了微軟,因為我們堅信“讓每張桌子和每個家庭都擁有一臺計算機”的願景。
五十年後,微軟仍在不斷創新,讓生活更便捷、工作更高效。走過半個世紀是巨大的成就,但若沒有鮑爾默、納德拉等傑出領導者,以及多年來在微軟工作的每一位員工,這一切都不可能實現。
儘管對慶祝週年感到興奮,但此刻百感交集。我總愛回顧微軟的歷史並暢想未來,卻也難以相信,我生命中如此重要的一部分已跨越了五十年!
恍如昨日,保羅和我還蜷縮在哈佛大學計算機實驗室的 PDP-10 前,編寫著將成為公司首個產品的程式碼。

保羅和我在湖濱中學讀書時喜歡上了計算機
那段程式碼至今仍是我寫過最酷的程式碼。
微軟的起源故事,竟始於一本雜誌。1975 年 1 月的《大眾電子》封面刊登了由小型電子公司 MITS 製造的 Altair 8800,這臺突破性的個人計算機承諾為愛好者帶來計算能力。

這期《大眾電子》改變了我的生活
當保羅和我看到封面時,我們意識到兩件事:個人計算機革命即將爆發,而我們必須搶佔先機。
當時,個人計算機幾乎不存在。我們知道,開發能讓人們為 Altair 程式設計的軟體,將徹底改變人機互動方式。
於是,我們聯絡了 MITS 創始人埃德·羅伯茨,告訴他我們已開發出能在 Altair 8800 上執行的 BASIC 語言版本。
只有一個問題:我們其實還沒做完。是時候開始幹活了。
BASIC 的基本資訊
BASIC 語言由達特茅斯學院的兩位教授於 1964 年發明,專為沒有計算機經驗的人設計,簡單易學。只需少量學習或技術基礎,人們就能用 BASIC 編寫自己的軟體,從記賬程式到井字遊戲都不在話下。BASIC 是我和保羅學會的第一門程式語言(至今仍在使用)。
像 BASIC 這樣的計算機語言,其作用與英語或其他語言相同。正如你可以用英語在咖啡館點咖啡一樣,你可以用 BASIC 讓計算機執行程式、解決數學問題或執行其他任務。
轉譯 BASIC 語言
不過有個問題:計算機並不懂 BASIC 語言。它們真正使用的語言極其複雜且反直覺,用其程式設計異常困難。為彌合這一鴻溝,我和保羅著手開發了一個 BASIC 直譯器,它能將程式碼逐行翻譯成計算機理解的指令,並在程式執行時即時執行。
我們曾考慮開發另一種叫「編譯器」的工具,它能一次性翻譯整個程式後再統一執行。但最終認為直譯器的逐行執行方式更適合新手程式設計師,因為它能即時反饋程式碼問題,讓程式設計師隨時修正錯誤。

發現方法管用時的那種成就感,簡直無與倫比。

我一直是個數學很好的學生,發現數學所需的邏輯思維和解題能力對我學習計算機程式設計很有幫助。

保羅和我在學校裡認識了瑞克·韋蘭(Ric Weiland),他後來成為了微軟的第二位員工
開始
保羅和我決定分頭行動。我們沒有 Altair 計算機使用的 Intel 8080 晶片,於是保羅著手在哈佛的 PDP-10 大型機上編寫模擬程式。這樣我們就能在沒有實體 Altair 計算機的情況下測試軟體。
與此同時,我負責編寫程式的主程式碼,另一位朋友蒙特·戴維多夫(Monte Davidoff)則開發數學運算模組。
我們夜以繼日地程式設計兩個月,終於做出了那個我們聲稱早已存在的軟體。

哈佛大學的 PDP-10 大型機
克服困難
那時的計算機記憶體非常昂貴。要是給 Altair 再加記憶體,其價格很容易就超過主機本身,因此每個位元組都很重要。
我們想,如果能把 BASIC 程式碼壓縮到僅 4KB,使用 BASIC 的 Altair 使用者就仍有足夠記憶體執行他們編寫的程式(還不用額外花太多錢)。
為滿足這一限制,我採用了多種最佳化記憶體的技術,比如緊湊的資料結構和高效演算法。這是一個有趣的挑戰,雖然保羅和我急著要把 Altair BASIC 儘快交給 MITS,但我很享受解決這些適配問題的過程。
小程程查了一下 1975 年的歷史資訊,大家可以參考:
MITS 生產的 Altair 8800 的標配記憶體為 256 位元組,整機售價為 439 美元(自組裝套件)或 621 美元(已組裝) MITS 在 1975 年 1 月生產的 0.25 KB 記憶體板售價 103 美元 2 月份推出的 1KB 的靜態記憶體板售價 176 美元 4 月份推出的 4KB 的動態記憶體板售價 264 美元
微軟的誕生
在經歷無數不眠之夜後,我們終於準備好向 MITS 總裁埃德·羅伯茨展示 BASIC 直譯器。演示大獲成功,MITS 同意授權該軟體。
這對我和保羅而言是決定性時刻,Altair BASIC 成為我們新公司的首個產品,我們將我們將公司命名為 Micro-Soft。
關於 Altair BASIC 的起源故事(包括保羅如何在飛往阿爾伯克基的航班上完成部分程式碼),可在我的回憶錄《原始碼》中進一步瞭解。
令人驚歎的是,這段程式碼開啟了微軟長達半個世紀的創新曆程。在 Office、Windows 95、Xbox 或 AI 誕生之前,這段原始碼便已存在。即便多年後的今天,重讀它仍令我激動不已。

計算機程式設計在過去 50 年裡已取得巨大進步,回看微軟的原始原始碼,我依然為最終的成果感到無比自豪。
小程程有幾句話
1、蓋茨這篇部落格除內容之外,設計風格也是極為獨特。滑鼠游標所到之處,都會變成特殊字元,然後恢復正常。
2、蓋茨還設計了好幾個 ASCII 動畫。此外,文中配的照片,都做了畫素化處理,滿滿的復古懷舊風。
3、“克服困難”那一段的 ASCII 動畫,小程程刷了好幾次才注意到小人拿旗後有變化,發現 WASD 後立馬想到是可以玩的,蓋茨這老頭有心了。

建議大家可以去看看:
https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code
4、Altair BASIC 的原始碼檔案將近 100 MB,小程程已放網盤了,給我們公號傳送 250407可獲取下載連結。
5、👉🏻 微軟聯合創始人保羅·艾倫,2018 年 10 月因病去世,享年 65 歲(戳連結可回看大佬的一生介紹)。
6、微軟成立的那一年(1975 年),艾倫 22 歲,蓋茨 20 歲。
7、微軟公司的名字(Micro-soft),是保羅·艾倫提議的。
-
"Micro" 取自 Microcomputer(微型計算機),特指當時新興的個人計算機(如 Altair 8800)。
-
"Soft" 代表 Software(軟體),強調公司專注於開發計算機程式。
-
大家沒看錯,Micro 和 Soft 之間是有連線符的,後來在 1976 年去掉了。
– EOF –