相關文章

D23f402d0f69231a13dbeb4f5f2f4d0b 現在的程式開發人員穿著總是一派輕鬆,手邊不乏提神飲料,大尺寸螢幕永遠開著多組 code 視窗,並伴隨著喀搭喀搭的鍵盤敲擊聲。但在 1985 年,當時的開發人員需要先在紙張上寫下程式,經過手工轉譯為程式語言後,才會輸入至電腦內。對照目前環境,30 年不到的時光裡,差異宛如隔世。

程式設計師 John Graham-Cumming(以下簡稱 John)在自己網站中發表了一篇「How I coded in 1985」的文章,述說當時在紙上手寫 code 的那段往日時光,並展示當時的親筆手稿。

當年某間專門生產自動化貼標籤機器的公司,面臨機電、輸送帶等自動化工程整合,需要有人撰寫控制程式而找上了 John 就讀的學校。當時 John 負責在 KIM-1 單板電腦上編撰程式語言,KIM-1MOS 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 學到了一生受用的兩件事:

  1. Get it right the first time(第一次就做到最好)
  2. Run code in my own head(腦內預先檢視程式流程)

 

即便不從事程式開發工作,相信這兩條原則放諸四海而皆準。 John Graham-Cumming 的經驗也讓人再次讚歎,短短不到30年的科技發展是如此迅速;而未來又會如何發展呢?讓我們繼續看下去~

資料、圖片來源:blog.jgc.org

 

延伸閱讀:

T客邦技術部門法寶、工作流程大公開

巨星殞落!人工智慧之父、LISP 語言發明人 John McCarthy 去世

使用 Facebook 留言

firetw
6.  firetw (發表於 2014年3月24日 16:21)
比對本譯文與台灣當時的時空環境, 1985年是民國74年, 我當兵前1983/民國72年, 當時台灣已外銷APPLE II clone版數百萬台了. 我畢業專題即在 APPLE II 上製作 add-on 介面卡, 它的CPU 就是 6502, 都早就是用鍵盤敲程式的.

原文作者是那一國的(共黨鐵幕?), 還在手寫是有點誇張!

發表回應

謹慎發言,尊重彼此。按此展開留言規則