GitHubで、ちょっと信じられない表示を見つけた。
「49 years ago」。
いやいや、GitHubで「49年前」って何ごと? Git自体がそんな昔から存在したわけじゃないでしょw
気になって調べてみると、Microsoftが公開した1978年のBASICインタプリタのソースコードだった。しかも、単なるレトロプログラムではなく、パソコンの歴史に深く関わる代物だ。
正体は「Microsoft BASIC for 6502」
リポジトリの名前は microsoft/BASIC-M6502。公開されているのは、6502系の8ビットCPU向けに作られたMicrosoft BASIC Version 1.1のアセンブリ言語ソースだ。
Microsoft BASICの出発点は、1975年のAltair 8800向けBASIC。6502向けへの移植は1976年にビル・ゲイツとリック・ウェイランドによって行われたという。
その後の系列は、Commodore PETやVIC-20、Commodore 64のBASIC、Apple IIのApplesoft BASICなど、初期のパソコン文化につながっていく。ただし、これらすべてに今回公開されたソースがそのまま搭載されていた、という意味ではない。機種ごとに改造・発展した仲間たちだ。
今でこそパソコンでプログラムを動かすのは当たり前だけど、当時はBASICの画面から直接プログラムを入力すること自体が、コンピューターとの重要な接点だった。
1978年にGitでコミット……したわけではない
ここが一番面白いところ。
このリポジトリの履歴を見ると、古い方のコミットには1978年7月27日という日付が付いている。
でも、Gitが誕生したのは2005年。だから1978年当時にGitへコミットしたわけではない。後年作られたGitの履歴に、当時を示す日付を設定していると考えるのが正しい。
実際、初期コミットには現代のVisual Studio向けの .gitignore も含まれている。これは1978年にGitリポジトリそのものが存在したわけではないことを示す、わかりやすい手がかりだ。
さらに、2025年9月3日には touch というコミットもある。つまり履歴には1978年と2025年のコミットが並んでいる。時間旅行みたいな見た目になっているわけだw
ちなみに、画面には「49 years ago」と表示されていたけど、1978年7月27日からこの記事を書いている2026年11月までは暦の上では約48年3か月。相対日付の表示を厳密な経過年数として扱わず、実際の日付を見るのが確実だ。
約7,000行のアセンブリに詰まったパソコン史
中心となるファイルは m6502.asm。約6,955行のソースには、BASICの命令解釈、浮動小数点演算、文字列処理、配列、メモリ管理などが収められている。
8KB規模の限られたメモリを前提とした世界で、これだけのことを実現していたのはすごい。今のアプリなら画像一枚にも満たない容量だ。
1978年のVersion 1.1には、Commodore側で発見されたガベージコレクションの問題に対する修正も含まれている。単に古いコードが残っていたというより、当時の試行錯誤まで読める資料なのだ。
2025年、Microsoft自身がオープンソース化
2025年9月3日、MicrosoftはこのコードをMITライセンスで正式に公開した。実はソースの断片や非公式なコピーは以前から知られていたが、権利者自身が明確なライセンスを付けて公開したことに意味がある。
公開当時のMicrosoft公式ブログでは、その歴史やビル・ゲイツらの開発経緯も紹介されている。
GitHubがデジタル博物館になる
普段GitHubを見ていると、コミット履歴は「昨日」「先週」「去年」ぐらいの時間感覚で眺めがちだ。
そこへ突然現れる「49 years ago」。笑ってしまったけど、考えてみればこれはソフトウェア史の展示物を、普段使っている開発環境から直接読めるということでもある。
半世紀近く前のBASICを、今のエディタで開いて、差分を見て、必要なら自分で動かすことも研究することもできる。昔の技術を単なる思い出で終わらせず、現在の学びにつなげられるのがオープンソースの面白さだと思う。
「49 years ago」には笑った。でも、中身を見るとちゃんと歴史の重みがある。
