現在的程式開發人員穿著總是一派輕鬆,手邊不乏提神飲料,大尺寸螢幕永遠開著多組 code 視窗,並伴隨著喀搭喀搭的鍵盤敲擊聲。但在 1985 年,當時的開發人員需要先在紙張上寫下程式,經過手工轉譯為程式語言後,才會輸入至電腦內。對照目前環境,30 年不到的時光裡,差異宛如隔世。
程式設計師 John Graham-Cumming(以下簡稱 John)在自己網站中發表了一篇「How I coded in 1985」的文章,述說當時在紙上手寫 code 的那段往日時光,並展示當時的親筆手稿。
當年某間專門生產自動化貼標籤機器的公司,面臨機電、輸送帶等自動化工程整合,需要有人撰寫控制程式而找上了 John 就讀的學校。當時 John 負責在 KIM-1 單板電腦上編撰程式語言,KIM-1 以 MOS 6502 處理器為基礎,使用的程式語言為 Tiny Basic。
▲KIM-1 具備計算機般的輸入裝置,而整個 MOS 6502 也因為價格便宜,成為當時許多嵌入式系統採用的控制核心元件。
由於當時的 KIM-1 缺乏組譯器(Assembler)存在,而 KIM-1 的輸入裝置只有一組如同計算機的 16 進位小鍵盤與 6 碼顯示螢幕,這代表從撰寫程式到輸入機器的流程極為複雜,所有的編碼都只能以手工方式輸入。
John 必須先在紙上寫出 code(藍色文字)後再轉譯為 machine code(紅色文字),並制定每一組指令在記憶體上的絕對與相對位址。而手邊沒有電腦的 John 還要負責所有 code 的 16 位元計算,完成整個程式碼後,才將 machine code 手動輸入至 KIM-1 內部。
▲手寫編碼的過程複雜,在最終版本出現前,應該會浪費一堆紙塗塗改改。
對當時的程式人員來說,整個開發過程實在很辛酸,KIM-1 只具備非常基本的 debug 功能,一旦出錯要修改就不是這麼容易,因此絕大部份的 debug 過程都是在 John 的腦袋中模擬執行。
事實上,KIM-1 在1985年時已經不是頂尖的單板電腦,但諸多嵌入式系統仍會採用這種低價的解決方案。這也讓 John 學到了一生受用的兩件事:
- Get it right the first time(第一次就做到最好)
- Run code in my own head(腦內預先檢視程式流程)
即便不從事程式開發工作,相信這兩條原則放諸四海而皆準。 John Graham-Cumming 的經驗也讓人再次讚歎,短短不到30年的科技發展是如此迅速;而未來又會如何發展呢?讓我們繼續看下去~
資料、圖片來源:blog.jgc.org