也許你會說,我用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就可以一試!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秒的影片。之所以這個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”開始了。10 MODE 2
20 COLOUR RND(7)
30 PRINT "HELLO WORLD"
40 GOTO 20
如果想要進一步探索BBC BASIC,也可以看一些專門的部落格,比如Paul Malin的“Fun with BBC Micro Bot”。https://blog.mousefingers.com/post/bbc/bbc_bbcmicrobot/“發推”程式設計,樂趣無窮,文摘菌推薦大家自己動手一試。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2683597/,如需轉載,請註明出處,否則將追究法律責任。