我分享了開發 yvi 的過程,這是一個用 Yabasic 編寫的極簡 Vi 風格文字編輯器,並從中探索重新發明輪子的樂趣以及復古程式設計的簡潔美學。
本文作者分享了使用 Yabasic(一種擁有二十多年歷史且持續維護的 BASIC 方言)開發名為 yvi 的簡易文字編輯器的過程。作者深受「重新發明輪子」的啟發,試圖在僅約五百行程式碼的規模內,實作 Vim 的核心操作邏輯,包括模式切換、移動指令與基本的編輯功能,並以此工具完成該篇部落格文章的撰寫。
這項計畫在 Hacker News 上引發了關於程式語言選擇與開發動機的熱烈討論。許多留言者對作者選擇 BASIC 感到驚訝甚至不解,認為這是一種自我折磨。有評論者回憶起早期 BASIC 必須手動標註行號的痛苦經歷,認為那種為了插入程式碼而每隔十行編號一次的邏輯簡直是歷史遺毒,並慶幸現代開發環境已擺脫這種束縛。然而,也有資深開發者指出,現代化的 BASIC 變體早已支援結構化編程,不再依賴行號與 GOTO 指令,甚至認為 BASIC 在嵌入式腳本解釋器中仍有其獨特價值。
針對「重新發明輪子」的行為,社群展現了兩極化的看法。部分網友認為在人工智慧輔助編碼的時代,透過提示詞就能輕易實作 Vim 模式,自行撰寫底層邏輯顯得有些多餘。但更多人支持作者的實踐精神,認為親手構建工具是極佳的心理鍛鍊,能幫助開發者跳脫特定語言的框架,從更抽象的層次思考問題。有觀點提到,真正的程式大師應該具備在任何語言中實作任何功能的能力,就像有人能用 VB6 實作 TLS 1.3 協定一樣,這種跨越語言限制的實作力正是技術純熟的體現。
此外,討論中也出現了對經典編程哲學的辯論。有人引用了電腦科學家 Dijkstra 對 BASIC 的著名批評,認為接觸過 BASIC 的學生在思維上已受損且難以挽救。但這類觀點隨即遭到反駁,認為即便是偉大的科學家也會說出偏激的言論,且 BASIC 作為許多人的啟蒙語言,其易於上手的特性在教育史上具有不可磨滅的功績。整體而言,社群對此計畫抱持一種「懷舊且敬佩」的態度,認為在追求效率的現代開發環境中,這種純粹為了樂趣與學習而進行的「低效」開發,反而展現了編程最原始的魅力。
在討論串中,網友分享了幾個有趣的相關專案,包括以 Erlang 實作的「Erlang BASIC」,該系統模擬了早期微型電腦的分時作業環境。另外也有人提到 Vidak 的「The People’s Permacomputer」計畫,以及專注於 1970 年代風格自製電腦的 BASIC 討論論壇。對於想挑戰極限的開發者,留言中也附上了在 VB6 環境下實作 TLS 1.3 協定的技術連結,證明了老舊語言在現代網路安全領域仍有發揮空間。
相關文章
其他收藏 · 0