作者:Bill Gates
機器之心編輯部
1975 年 4 月 4 日,比爾・蓋茨和保羅・艾倫在美國新墨西哥州阿爾伯克基市創立了微軟公司。到今天,半個世紀過去了,微軟早已成長為一家超級科技巨頭。
近日,比爾・蓋茨親自撰文回憶了微軟的誕生和他們的第一筆業務,同時還透過一份 157 頁的 PDF 檔案分享了他們為這項業務編寫的 Altair BASIC 原始碼。
順帶一提,比爾・蓋茨這篇部落格的風格相當炫酷,值得訪問原文一觀。

-
部落格地址:https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code
-
原始碼:https://images.gatesnotes.com/12514eb8-7b51-008e-41a9-512542cf683b/34d561c8-cf5c-4e69-af47-3782ea11482e/Original-Microsoft-Source-Code.pdf
1975 年,保羅・艾倫(Paul Allen)和我創造了微軟,因為我們相信我們的願景:每張辦公桌和每個家庭都應該有一臺計算機。

現在,已經過去了五十年,微軟仍在繼續創新,讓生活更輕鬆、工作更高效。微軟成立 50 週年是一個巨大的成就,而這一切都離不開史蒂夫・鮑爾默(Steve Ballmer)和薩蒂亞・納德拉(Satya Nadella)等傑出的領導者,以及多年來在微軟工作的許多人。雖然我很高興慶祝這個週年紀念日,但達到這個里程碑卻讓人感到苦樂參半。我總是喜歡回顧微軟的歷史,夢想它的未來。但也很難相信,我生命中如此重要的一部分已經存在了半個世紀!
我和保羅在哈佛的計算機室裡面彎腰操作 PDP-10 的場景還恍如昨日,那時候我們編寫的程式碼成為了我們新公司的首款產品。

保羅和我還是學生時就已經愛上了計算機
直到今天,那些程式碼依然是我寫過的最酷的程式碼。
微軟的故事始於一本雜誌:《大眾電子(Popular Electronics)》1975 年 1 月刊。當時這本雜誌的封面圖展示了 Altair 8800。

這個雜誌封面改變了我的生活
Altair 8800 來自一家名為 MITS 的小型電子裝置公司,是一款開創性的個人電腦套件,目標是為計算機愛好者帶來計算能力。當保羅和我看到那本雜誌的封面時,我們明白了兩個關鍵:個人計算機(PC)革命即將來臨,我們要參與進去成為基礎。

Altair 8800
當時,PC 幾乎還不存在。保羅和我知道,如果創造可以讓人們程式設計 Altair 的軟體,就可以徹底改變人們與這些機器的互動方式。因此,我們聯絡了 MITS 的創始人 Ed Roberts,並告訴他我們有程式語言 BASIC 的一個版本可用於 Altair 8800 執行的晶片。
但事實是:我們當時還沒有寫出那個軟體。是時候開始工作了。
BASIC 的基礎
BASIC 由達特茅斯學院的兩位教授於 1964 年發明,其目標是讓沒有計算機經驗的人也能輕鬆學習。只需很少的學習或技術能力,人們就可以用 BASIC 編寫自己的軟體 —— 從支票核對程式到井字遊戲。BASIC 是我和保羅學習的第一門語言(至今仍在使用)。

我一直是個數學很好的學生;我發現數學所需的邏輯和解題能力能幫助我學習計算機程式設計。
像 BASIC 這樣的計算機語言與英語或任何其他語言具有相同的用途。就像你可以用英語在咖啡館點咖啡一樣,你可以用 BASIC 告訴計算機執行程式、解決數學問題或執行其他任務。
轉譯 BASIC
但有一個問題:計算機不會說 BASIC。而它們確實能用的語言又非常複雜且不直觀,因此用它程式設計非常困難。為了填補這一空白,保羅和我開始著手建立一個 BASIC 直譯器(interpreter),它可以在程式執行時逐行將程式碼翻譯成計算機可以理解的指令。
我們考慮建立一個類似的工具,稱為編譯器(compiler),它可以先翻譯整個程式,然後一次性執行。但我們認為直譯器的逐行方法對新手程式設計師很有幫助,因為它會立即對程式碼提供反饋,讓程式設計師能夠隨時修復任何錯誤。

當你發現你的方法有效時,那種感覺棒極了

保羅和我與 Ric Weiland 一起上學,他後來成為微軟的第二名員工。
開始
保羅和我決定分頭行動。
我們沒有 Intel 8080 晶片 —— 這正是 Altair 計算機執行的晶片,所以保羅開始編寫一個在哈佛的 PDP-10 主機上模擬 8080 的程式。這樣我們不需要真正的 Altair,也能測試我們的軟體。
與此同時,我則專注於編寫程式的主要程式碼,而另一位朋友 Monte Davidoff 則負責編寫一個稱為數學包(math package)的部分。我們日夜不停地程式設計了兩個月,才創造出我們之前揚言已經寫好了的軟體。

哈佛的 PDP-10
克服困難
那時候,計算機記憶體很貴。給 Altair 加記憶體的話,很可能記憶體會比這臺計算機本身更貴,所以每個位元組都很重要。我們認為,如果我們能將我們的 BASIC 程式碼壓縮到僅 4 kB,那麼使用 BASIC 的 Altair 使用者仍然會有足夠的記憶體來執行他們編寫的程式(而不必再花更多錢)。
為了滿足這一限制,我使用了多種技術來最佳化記憶體使用,比如緊湊的資料結構和高效的演算法。這是一次有趣的挑戰,儘管保羅和我覺得將 Altair BASIC 儘快交付給 MITS 的壓力很大,但我也非常開心地想出了讓一切都順利進行的方法。
微軟的誕生
最終,許多個不眠之夜之後,我們準備好了,向 MITS 的總裁 Ed Roberts 展示了我們的 BASIC 直譯器。
我們的演示非常成功,MITS 同意購買該軟體的授權。這對保羅和我來說是一個關鍵時刻。Altair BASIC 成為我們新公司的第一個產品,而我們決定將公司命名為 Micro-Soft。(我們後來去掉了連字元。)
你可以在我的回憶錄《原始碼(Source Code)》中閱讀更多 Altair BASIC 的起源故事,包括保羅在飛往阿爾伯克基的航班上完成部分程式碼的經歷。

一想到這些程式碼正是微軟半個世紀創新的起點,就感覺振奮不已。這些原始碼誕生在 Office、Windows 95、Xbox 或 AI 出現之前,即使這麼多年過去了,我仍然很高興看到它。

© THE END
轉載請聯絡本公眾號獲得授權
投稿或尋求報道:[email protected]