Skip to content

Paid Compiler

仕事で初めて触ったSunのサーバーは、Netra T1だった。

VGA出力がない。セットアップにはシリアルケーブルを繋いで、手元のマシンでXサーバーを立てる。CPUはx86ではなくSPARCで、Linux PCでコンパイルしたバイナリはそのままでは動かない。ソースコード互換とバイナリ互換は、似ているようで全然違う概念だということを、あのマシンでいやというほど学んだ。

だから秋葉原の芳林公園の近くの店で、企業のリース落ちらしいNetra T1が無造作に積まれているのを見つけたとき、迷わなかった。のちにシュタインズ・ゲートの舞台になる界隈だが、当時はまだただのジャンク屋街だった。天板にはSunのロゴが大きく入っていた。Solarisに傾倒していたわたしにとって、あのロゴは果てしなくおしゃれだった。仕事で使うのと、自分のマシンとして持つのは違う。

自分のSPARCマシンでソフトウェアをビルドするとなると、コンパイラが必要になる。gccは当然使えた。無料で、どこでも動く、頼りになるやつだ。だがSolaris上でのデファクトはgccではなかった。Sun Studio、そしてその中核であるSun C Compilerだ。

Sun CCはもともと有料だった。コンパイラが有料。当時はそれが普通だった。新規ライセンスで3,000ドル近くした。SPARC向けの最適化はSun CCが最も得意で、gccでビルドしたバイナリとはパフォーマンスに差が出ることがあった。自分のCPUのことを一番よく知っているのは、自分で作ったコンパイラだ。当然といえば当然だ。

そしてgccとSun CCは、コンパイラオプションが違う。最適化フラグも警告の制御も違う。gccの感覚でMakefileを書くとSun CCでこける。逆もまた然りだ。両方に対応しているOSSのMakefileやconfigureスクリプトを見ると、頭が下がった。

そんなSun CCが、無料になった。Solaris 10のオープンソース化と同じ流れで、Sun Studio 11が無料で公開された。2005年のことだ。3,000ドルのコンパイラがタダで手に入る。わたしは迷わずダウンロードした。

Sun Studioのインストーラーはご丁寧にGUIだった。Javaで書かれていて、ウィザード形式で進む。「次へ」を何度もクリックして、プログレスバーが埋まっていくのを眺める。コンパイラのインストールにグラフィカルなウィザードが必要なのかと思った。だがあの時代のSunは、UNIXをデスクトップにしようとしていた。Common Desktop Environmentの上でグラフィカルに開発する未来を、本気で信じていた。

その未来は来なかった。SunはOracleに買収され、SPARCの新規開発は止まり、Sun Studioは名前を変えながらフェードアウトしていった。いまSun CCでバイナリをビルドする機会はない。gccどころかclangの時代だ。コンパイラは無料が当たり前になり、命令セットの違いはクロスコンパイルとコンテナが吸収してくれる。

ただときどき思い出す。あのJavaのインストーラーで「次へ」を押しながら、3,000ドルのコンパイラがタダで使えるという興奮を噛み締めていた自分を。有料だったものが無料になるという体験には、最初から無料だったものとは違う特別感があった。

いまのわたしは無料のコンパイラで、無料のエディタで、無料のOSの上でコードを書いている。すべてが最初から無料の世代には、あの感動は伝わらないかもしれない。

もっとも、あの頃のSunがGUIのインストーラーに込めた未来への確信も、もう誰にも伝わらないのだが。