元Microsoftエンジニアが極小メモ帳を公開
Windows Latestの報道によると、Microsoftの元技術者David W Plummer氏が、わずか2.5KB(正確には2794バイト)のメモ帳アプリ「TinyRetroPad」を開発した。このアプリは、ファイルのオープン、保存、検索と置換、印刷、フォント選択、ワードラップ、未保存の確認といった基本的なメモ帳機能をすべて備えている。
開発の背景と技術的特徴
Plummer氏はWindowsのタスクマネージャー開発に携わった経験を持つ。TinyRetroPadは、Matt Power氏が開発した「Dave's Tiny Editor(DTE)」のフォークプロジェクトであり、元のコードにメモ帳スタイルのメニュー(ファイル、編集、書式、表示、ヘルプ)が追加されている。
開発の歴史は次の通り:
- 初期ビルド(フォーク元と同機能):890バイト
- Courierフォント対応とファイルサイズ上限拡張:981バイト
- ファイルメニュー実装:1375バイト
- 未保存確認機能実装:1622バイト
- 検索と置換実装:2143バイト
- 印刷処理実装:2476バイト
- キーボードアクセラレーター実装:2794バイト
この極小サイズは、Windows標準のリッチテキストコントロール「RICHEDIT50W」を活用することで実現されている。Windowsに元から入っている機能を徹底的に利用し、自前のコードを極限まで減らした。つまり、TinyRetroPadは各APIを呼び出すだけのラッパーアプリと言える。
プログラミング言語にはアセンブリ言語を採用。C++やC#などの高水準言語は使用せず、さらに圧縮リンカーの「Crinkler」を使用することでサイズを限界まで縮小している。
注意点と今後の展望
ただし、Crinklerには互換性の問題があり、以下の不具合が報告されている:
- セキュリティソフトによる誤検知で削除される可能性
- 常に500MB以上のメモリを消費する
- 一部のWindows環境(CPU命令不足)で動作しない
これらの不具合はすべてCrinklerに起因しており、標準のリンカーに切り替えてビルドすると解決することが報告されている。ソースコードとバイナリはGitHub(PlummersSoftwareLLC/TinyRetroPad)で公開されており、高機能化が進む現代のメモ帳に抵抗感のあるユーザーは、コードをビルドし直すことで理想のメモ帳を手に入れられる。



