ソフトウェアには、ほぼ必ずバージョン番号(版数とも)がある。ユーザー側からみれば、最新版を区別するためのものだが、開発者側からみると、さまざまな修正を区別し、作業の経過を示すためには必須のものでもある。
そもそも、“Version”とは、書籍や音楽、映画、舞台作品などで、同一タイトルのバリエーションを区別するための用語だ。日本語の辞書を引くと「版」のことであるといった表記があるが、日本語の「版」には英語のVersionより広い意味がある。Versionに相当する「版」、たとえばテレビ番組をもとに映画を作ったものを「劇場版」と呼ぶこともあれば、書籍の「初版」など、英語の“Edition”に相当する意味もある。Editionは版面がすべて同一のものをさす。誤字を直すなどして版面が異なるものは、別のEditionになる(書誌学的定義)。英語だとVersionとEditionは異なるものだが、日本語ではどちらも「版」である。ソフトウェアのバージョンには、どちらかというと日本語の「版」に近い。
ソフトウェアのバージョンには、さまざまなルールがあり、基本的には開発者まかせだ。広く共有されているのは、数字が大きいほうが新しいということぐらいだ。しかし、単純な整数だけのバージョン番号はほとんどなく、よく見かけるのは、複数の非負の整数をピリオドなどでつなげたバージョン番号だ。この場合、ソフトウェアのバージョンでは、数値を個別に比較することが多い。バージョン番号では1.10は1.9よりも大きく、後のバージョンを示す。
明確な定義や原則はないが、比較的広く受け入れられているルールとして「セマンティック・バージョニング」がある。これは、ソフトウェアの依存関係を示すためのバージョン番号についての基本的なルールを文書化したものだ。最初のv1.0.0-betaが公開されたのは2011年(GitHubのタグの日付から)で、いまから12年前である。これ以前、個々のソフトウェアやシステムでのバージョンに関するルールはあったものの、広く一般を対象にした定義ではなく「ウチではこんなふうにやってます」的なものだった。オープンソースの普及により、相互のバージョンの管理が重要になってきた。
このセマンティック・バージョニングでは、「メジャーバージョン」、「マイナーバージョン」、「パッチ」の3つの数字でバージョンを表わす。最近では、多くの言語や開発ツールで、自身のバージョン番号の付け方がセマンティックバージョンに準拠していると表記するようになった。
セマンティック・バージョニングには含まれないが、ソフトウェアでは、バージョンに類似の用語として「リリース」(Release)や「リビジョン」(Revision)を使うこともある。リリースとは、おもにソフトウェアの公開や配布を基準にした番号だ。ソフトウェアでは、日々改良が続くが、必ずしもすべてのバージョンを公開するわけではない。しかし、サポートなどを考えると、どのバージョンを公開したのかという区別は必要になる。リリース番号で著名なものは、UNIX SVR4.1の表記だ。これは「System V(ローマ数字の5) Release 4.1」の略である。
これに対してリビジョン(改訂)は、どちらかというと開発者の側からみた書き換えを区別するための表記である。バージョンの一部になることもあれば、バージョンの同義語になることもある。
Windowsの.NETでは、「メジャーバージョン」、「マイナーバージョン」、「ビルド」、「リビジョン」の4つの数字を使う。
ビルドとは、ソースコードなどから配布用の「ソフトウェア生成物」(パッケージなど)を作るための一連の作業を指す。ビルド作業を区別できる番号を付けパッケージに付与しておくことで、ビルドからビルド作業を特定でき、そのときのソースコードなどの状態を特定することができる。Windows 10以来、Windows自体のバージョン表記にビルドが入るようになった。
マイクロソフトだけでなく、最近では「再現性のあるビルド」あるいは「決定論的なビルド」といった手法が使われる。これは、同一のソースコードからは必ず同一のバイナリが作れるようにすることだ。この点からすると、特定のバイナリを指し示すビルド番号は重要なものになってきた。
Windowsで実行ファイルのバージョン番号を調べるには、
gci -Recurse -Filter *.exe | select @{Name="Ver"; Expression={$_.VersionInfo.FileVersion}},FullName
とする(写真01)。もちろんエクスプローラーのプロパティでも見ることができる。
今回のタイトルネタは、スタニワフ・レムの「完全な真空」である。この本は「完全な真空」という本の書評で始まり、その冒頭「実在しない書物の書評」と「ネタバレ」させている。「真にせまった架空」は、かなり危険だ。エイプリルフールのジョーク記事に「ジョークです」と書かざるを得ないほど、作品を公開する者にとって危険なシロモノである。オーソン・ウェルズの「宇宙戦争」とまでは行かないまでも、ジョークを真に受けたあと、怒り出す人が世の中には少なくない。それゆえ、作品の出来が良ければ、良いほど、この表記を欠かせば、それは非難の嵐、今風に言えば「炎上」を引き起こす。