復(fù)活80年代的游戲代碼,它們出自第一本售出百萬冊(cè)的計(jì)算機(jī)書籍
今兒我在 GitHub 看到了一個(gè)很眼熟的名字和頭像,但是第一時(shí)間沒想起來他是誰。算了先看看是個(gè)什么神仙開源項(xiàng)目,竟然能登上今天的 GitHub 趨勢(shì)榜首。
該項(xiàng)目是把《BASIC Computer Games》一書中的 BASIC 代碼,采用比如:Java、Python、C#、JavaScript 等 8 種流行的編程語言重寫一遍。
隨著對(duì)項(xiàng)目了解得深入,我發(fā)現(xiàn)這些游戲都是命令行文字游戲,沒有任何好玩的地方,簡(jiǎn)直就是浪費(fèi)時(shí)間!
搞不懂為什么這個(gè)創(chuàng)建僅一年的項(xiàng)目會(huì)有 100+ 多人貢獻(xiàn)代碼?他們?yōu)槭裁炊枷胍皬?fù)活”這些一點(diǎn)也不好玩、還是 80 年代的古董游戲代碼呢?
接下來就讓我們一起來看看,這個(gè)開源項(xiàng)目的“前世今生”!
前世
開源項(xiàng)目 basic-computer-games 源于上個(gè)世紀(jì) 80 年代發(fā)行的《BASIC Computer Games》,這是一本記錄了許多 BASIC 游戲完整代碼的書,說到這里就不得不聊一下 BASIC 語言了。
BASIC(Beginners' All-purpose Symbolic Instruction Code)編程語言的首字母縮寫就是“basic”(基礎(chǔ))單詞,它是專為計(jì)算機(jī)初學(xué)者設(shè)計(jì)的高級(jí)編程語言。在 1964 年出生在大學(xué)校園,主要是為了讓當(dāng)時(shí)的大學(xué)生更容易使用計(jì)算機(jī)。
后來隨著微型計(jì)算機(jī)的蓬勃發(fā)展,以及 1975 比爾·蓋茨創(chuàng)立 Microsoft 把 BASIC 語言的編譯器移植到 PC 上,許多微型計(jì)算機(jī)出廠自帶 BASIC 語言,這也讓 BASIC 語言走出了校園。
隨著 BASIC 語言的熱度提升,出現(xiàn)了一些刊登了用 BASIC 語言寫的游戲完整代碼的雜志,比如:《Creative Computing》。書中的游戲雖然只是文字類游戲,但完整且簡(jiǎn)單再加上運(yùn)行 BASIC 代碼十分簡(jiǎn)單,讀者僅需花上幾分鐘就可以把代碼抄完并運(yùn)行起來。
而后面推出的《BASIC Computer Games》一書售出數(shù)量比當(dāng)時(shí)的個(gè)人電腦都多,后來更是成為了第一本銷售了百萬冊(cè)的計(jì)算機(jī)書籍!
買雜志抄代碼的年代你經(jīng)歷過嗎?是不是和如今用開源項(xiàng)目一個(gè)樣。
今生
后來《BASIC Computer Games》這本書成為了許多人的編程啟蒙讀物,但隨著編程技術(shù)的更新?lián)Q代和層出不窮的高級(jí)編程語言,讓 BASIC 逐漸退出了主流編程語言的舞臺(tái),成為了一代程序員的回憶。
今天介紹的 basic-computer-games 開源項(xiàng)目發(fā)起者杰夫·阿特伍德(Jeff Atwood)就是那一代程序員。我說看他的頭像這么眼熟,原來那個(gè)是 Coding Horror 博客的 LOGO,我看過他的書。
他在博客中寫道:做個(gè)項(xiàng)目是為了讓更多人看到《BASIC Computer Games》書中的代碼,但是 BASIC 語言比較古老,很難被現(xiàn)在的程序員接受。所以他征求完原書作者的同意后,想把這些代碼用現(xiàn)在流行的編程語言重寫,但一個(gè)人很難完成這些工作,所以他想借助開源的力量完成這件事情。
他想完成這件事情不是因?yàn)檫@些 BASIC 代碼有多精妙或是游戲有多好玩,只是不想讓這段歷史、這本書被遺忘。 把代碼變成老照片保存,而不是僅剩圖書封面。
如果你也有關(guān)于 BASIC 的回憶,那就動(dòng)動(dòng)手指給 basic-computer-games 提個(gè) PR 留下了你和 BASIC 最后的印記。
就像《泰坦尼克號(hào)》的故事開始于一張滿是淤泥的素描畫,或許多年以后雙鬢泛白的你也會(huì)指著某個(gè)開源項(xiàng)目,給后輩講述你的故事。
結(jié)尾
歷史的車輪滾滾向前,時(shí)代的腳步永不停歇。我雖然沒經(jīng)歷過 BASIC 語言的時(shí)代,但我在查資料寫這篇文章時(shí)隱約看到了 BASIC 輝煌的光。
帶領(lǐng)一代人進(jìn)入編程領(lǐng)域的 BASIC 語言落下了帷幕,不知道這篇文章勾起了多少人關(guān)于 BASIC 的回憶,歡迎留言和我們分享你和 BASIC 的故事。