探索 Mini Micro:一款用於學習程式設計的「新復古」幻想電腦
家用電腦革命的時代——機器直接啟動進入 BASIC 提示符的時代——為程式設計師與硬體之間提供了一種獨特且具觸感的關係。對於許多現代開發者來說,這種即時控制感已隨著作業系統層級與複雜的 IDE 而逐漸消失。這時,Mini Micro 登場了,這是一款「新復古」虛擬幻想電腦,旨在重現那種魔力,同時為新進程式設計師提供一個現代且易於入門的切入點。
Mini Micro 並非實體機器,而是一個模擬完整電腦系統的虛擬環境。它結合了專用的程式語言、內建編輯器,以及一套圖形與聲音功能,旨在讓從「使用者」到「創造者」的轉變盡可能地無縫銜接。
技術規格
儘管冠以「mini」之名,該系統仍為建立 2D 遊戲、應用程式與教育演示提供了強大的工具集。規格包括:
- 顯示: 支援像素、精靈(sprite)與圖塊(tile)圖形的 960 x 640 全彩(32-bit)顯示器。
- 文字: 用於命令列介面與文字冒險遊戲的 68 x 26 文字顯示器。
- 音訊: 合成的與數位化的立體聲。
- 輸入: 支援鍵盤、滑鼠與遊戲控制器。
- 工作流程: 互動式 REPL(read-eval-print loop)與內建程式碼編輯器,可進行即時迭代。
由 MiniScript 提供動力
Mini Micro 的核心是 MiniScript,這是一種專為易於學習而設計的簡潔、現代語言。其設計理念反映在其易用性上;該語言是 IEEE 論文的主題,重點探討其在 STEM 教育中的應用。
從技術層面上看,MiniScript 是一種基於原型(prototype-based)的語言。正如社群成員在分析該語言的快速參考指南時所指出的,類別(classes)與物件(objects)本質上是具有特殊 __isa 條目的 map,該條目指向父層。這種方法允許靈活的物件導向程式設計,而無需傳統基於類別的語言中常見的僵化樣板程式碼。
該語言支援廣泛的複雜度,從簡單的 "Hello World" 腳本到利用 REST calls 進行網路通訊、多層精靈系統,甚至偽 3D 圖形的複雜專案。
日益成長的「幻想」軟體生態系
Mini Micro 最吸引人的面向之一是其使用者建立的內容庫。由於該系統是為愛好者設計的,它培育了一個從建立經典模仿作品到實驗性工具的社群:
- 經典致敬: 對 Asteroids、Breakout 與 Space Invaders 的熱愛重現。
- 教育工具: 學習角度與弧度的演示,以及內建的打字練習工具。
- 複雜實作: 完全使用 MiniScript 編寫的完整且複雜的 BASIC 實作(MiniBASIC)。
- 實驗性演示: 2D raycasting、3D 球體渲染,以及 ELIZA 風格的聊天機器人。
社群觀點與評論
雖然該專案因其創意與懷舊吸引力而受到讚揚,但 Hacker News 社群針對其實作方式提出了幾項技術與哲學上的觀點。
「底層硬體」爭議
部分使用者認為虛擬電腦缺乏對硬體控制的內在理解。一位評論者指出:
"對於無法完全控制運算裝置的感覺並不是一個好的起點。我非常幸運,當初是在我的 8kb BASIC 機器上開始學習的。"
其他人則建議,如果能將其移植到如 ESP32 或 Raspberry Pi 等低成本硬體上,該專案將會更有影響力,讓使用者能夠與實體引腳與電路互動。
虛擬 vs. 實體
在虛擬環境的便利性與對實體裝置的需求之間存在著持續的緊張關係。雖然有些使用者感嘆系統「僅限於虛擬」,但其他人則指出,現代網頁技術(WASM, PWAs)使得獨立安裝程式幾乎過時,建議使用瀏覽器端執行環境(runtime)是分發此類工具最有效率的方式。
語言設計
一些開發者對使用縮排來定義範圍(與 Python 類似)的選擇提出了質疑,認為這對於絕對初學者來說,可能比使用大括號等明確的分隔符號更難解釋。此外,有些使用者指出,該系統僅具備高階特性,缺乏底層的機器指令集或可定址記憶體,這使其與 PICO-8 等「幻想主機」不同,後者通常施加更嚴格的類硬體限制。
開始使用
Mini Micro 可在 MacOS、Windows 與 Linux 上免費使用,也可以透過 WebGL 直接在網頁瀏覽器中執行。對於尋求結構化學習路徑的人,創作者提供了一本 54 頁的入門書與一本更全面的 386 頁 MiniScript 程式設計指南。