30 年前的工程師怎麼寫程式?神人開發 8 位元雲端電腦,讓你體驗古早味的 coding 情懷

圖片截至 DOMINC PAJAK BLOG 首頁

【為什麼我們要挑選這篇文章】給你一台 8 位元的電腦,你能寫出怎樣的程式讓它跑?其實這就是 30 年前的程式作業環境。近期有人在 twitter 上建立 BBC Micro Robot,只要寫一段 BBC BASIC 程式,然後發推特 @bbcmicrobot,就能夠運作那個程式,讓你體驗 30 年前的工程師如何寫程式。(責任編輯:郭家宏)

用 280 個字元編寫一個程式,你能寫出什麼?

也許你會說,我用 Python 調個包,什麼功能都能實現。

那可不行,你還得用 BBC BASIC 語言編寫,在 BBC Micro Model B 上運行,是不是聽起來很陌生?

BASIC,一個有著 56 年歷史的直譯式程式語言,是許多工程師大佬的入門語言,BBC BASIC 是由 Acorn Computers 為 BBC 編寫的版本,相比原來的 BASIC 加入了許多額外的結構體關鍵字;BBC Micro Model B 則是 20 世紀 80 年代的 8 位元電腦,是當時風靡一時的微型電腦開發板,也是許多工程師大佬的入門神器。

我們先來看看大神用這兩個古董加上 280 字元的程式能實現什麼?

一個充滿歷史感的 Windows 95 logo,沒錯,這就是用 280 個字元寫出來的 BASIC 程式的輸出結果!當然,如果你也想親手試一下,倒不用去買一台 BBC Micro Model B 古董機,現在只要發條 Twitter 就可以一試!

給你一台 8 位元雲端電腦,你能寫出什麼程式?

Arduino 業務開發副總裁 Dominic Pajak 建立了一個名為「@bbcmicrobot」的推特帳戶,又叫做 BBC Micro Robot。

你只要用編寫一段 BBC BASIC 程式,然後發推特 @bbcmicrobot,機器人就會接收推文,並透過 BBC Micro Model B 的仿真器,運行 Basic 程式來處理推文,再將結果推回仿真器輸出三秒鐘的動圖。

這個功能一經推出,立馬受到了關注,現在已經快被玩壞了。

據統計,這個機器人在最初的幾週內獲得了超過 1000 萬次的瀏覽,並且每週要處理超過 1000 個 Basic 程式。

許多大佬也愛上了這個機器人,包括喜劇演員達拉 · 布萊恩(Dara Ó Briain),科普作家本 · 戈達克(Ben Goldacre),當然,最著名的要數樹莓派創始人埃本 · 厄普頓(Eben Upton)。

厄普頓編寫的是一個 Game of Life(生命的遊戲)程式,我們先來看看輸出結果。

你可能會很疑惑,這是個啥?其實,這是一個經典的細胞自動機,也可以說是一個零玩家遊戲,它的演變是由它的初始狀態決定的,不需要進行後續的輸入,是最一種模擬包括自組織結構在內的複雜現象的一個強有力的方法。

大佬的炫技,我們看不懂。

也有人做了一些大佬做的是一看就知道很厲害的東西,比如這個三維的滾動的小球,作者是遊戲巨頭 Activision 的技術總監 Paul Malin,他使用了一種特殊的程式碼,將 361 個 ASCII 程式碼字元壓縮成了 280 個 Unicode 字元推文。

據 Pajak 介紹,這款 BBC Micro Robot 原本部署在樹莓派 4 上,但此後轉移到了亞馬遜雲伺服器上,大概是是世界上唯一一個雲端的 8 位元電腦了。

BBC Micro Robot 是用 Javascript 編寫的,運行環境是 Node.js,具體來說,當機器人發現一條是 Basic 程式的推文時,它會進行過濾,再將文本輸入模擬的 BBC Micro 緩衝區中,在 30 秒後使用 ffmpeg 創建一個 3 秒的影片。

這台 Twitter 上的 8 位元雲端電腦,代表著 30 年前的極簡編程歲月

之所以這個 BBC Micro Robot 會得到像樹莓派創始人厄普頓這樣的大佬的回應,這背後的原因主要還是情懷。

1988 年,當埃本 · 厄普頓還是一個 10 歲的小孩時,他買了他人生中的第一台電腦——一台二手的 BBC Micro。沒錯,就是 BBC Micro Robot 模擬的那個 8 位元電腦。

電腦一到手,厄普頓就開始用 BBC BASIC 語言開始編寫程式,很快便得心應手。

所以,當厄普頓發現了這個發個 Twitter 就能用 BBC BASIC 編寫一個小程式的時候,他一定想起了 30 多年前的少年時代。

埃本 · 厄普頓和他的樹莓派

其實作者的經歷也是如此,Dominic Pajak 也是成長於 20 世紀 80 年代的英國,在學校裡學會了 BBC Micro 程式。

Pajak 說:「BBC Basic 主要由 Sophie Wilson(就是後來設計 ARM 架構的那個大神)開發,而這是迄今為止最好的 Basic 實現語言,其中一些非常好的特徵允許我們將程式碼最小化。」

受制於當時的技術,老一代的工程師大佬們對於用有限的程式碼實現更多的功能,可謂是樂此不疲,也可以說是那一代人的情懷。

正如 Ableton 創始人羅伯特.亨克(Robert Henke)所說,「當技術在表達方面受到限制時,極簡主義是必要的。」

如果你也想試一試,就發個推特吧!

如果你也想試一試,緬懷一下 30 多年前的編程歲月,很簡單,只要發一個推特 @bbcmicrobot 就可以了。

當然,你的推文內容必須是 BBC BASIC 語言,BASIC(Beginner’s All-purpose Symbolic Instruction Code),意思就是「初學者的全方位符式指令程式碼」,是一種設計給初學者使用的程式設計語言。BASIC 是一種直譯式的程式語言,在完成編寫後不須經由編譯及連結等手續即可運行,但如果需要單獨運行時,仍然需要將其建立成可執行文件。

如果你還不熟悉 BBC BASIC 語言,沒關係,作者也提供了很好的學習課程。

網站 傳送門

入門課程肯定是從「Hello World」開始了。

如果想要進一步探索 BBC BASIC,也可以看一些專門的部落格,比如 Paul Malin 的「Fun with BBC Micro Bot」。

部落格 傳送門

「發推」寫程式,樂趣無窮,文摘菌(本文作者)推薦大家自己動手一試。

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈一条推特里,用 280 个字符编程!全球首个云端 8 位计算机,树莓派创始人玩得很开心 〉。首圖來源:DOMINC PAJAK BLOG 首頁

更多關於寫程式的資訊

【工程師隱身術】200 行 TensorFlow.js 程式碼,讓你從視訊會議的畫面中「消失」
用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!
Python 弱掉了!中國工程師開發「文言文程式語言」,讓你的 coding 充滿文學情懷


全方位掌握消費者數位軌跡

AI 如何有效提升電商業績、降低導入成本?

《領取白皮書》

點關鍵字看更多相關文章: