開發

一條推特里,用280個字符編程!全球首個云端8位計算機,樹莓派創始人玩得很開心

大數據文摘出品作者:Olivia、曹培信
用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緬懷40年前的極簡編程歲月
之所以這個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語言,沒關系,作者也提供了很好的學習教程。
網站鏈接:https://www.dompajak.com/bbcmicrobot.html
入門教程肯定是從“Hello World”開始了。

如果想要進一步探索BBC BASIC,也可以看一些專門的博客,比如Paul Malin的“Fun with BBC Micro Bot”

博客地址:https://blog.mousefingers.com/post/bbc/bbc_bbcmicrobot/
“發推”編程,樂趣無窮,文摘菌推薦大家自己動手一試。

我還沒有學會寫個人說明!

布局多云及混合云管理,聽聽16位CIO以及8家云服務商怎么說!

上一篇

騰訊數據庫RTO<30s,RPO=0高可用方案首次全景揭秘

下一篇

你也可能喜歡

一條推特里,用280個字符編程!全球首個云端8位計算機,樹莓派創始人玩得很開心

長按儲存圖像,分享給朋友

ITPUB 每周精要將以郵件的形式發放至您的郵箱


微信掃一掃

微信掃一掃
大丰收注册
四川熊猫麻将苹果版 310大赢家比分即时比 篮球技巧 全民娱乐棋牌 浙江20选5中奖 股票融资融券规则 白城麻将吉祥棋牌免费下载 血流麻将 技巧 河北福利彩票排列7走势图 卡五星麻将猜牌技巧 516棋牌游戏下载 贵州十一选五前三组 双色球 3d试机号今天开机号表 篮球比分直播网90v 四人麻将免费打