virtualを「仮想」と訳していいものか


私は「virtual」を「仮想」と訳すのにすごく抵抗がある。


「virtual」って英語本来の意味は、「実質上の」「実際上の」というような意味だ。「表面的にはそうではないが実質的にはこれなんだ」というような時に使う。


「virtual memory」を「仮想記憶」と訳すと「実際は存在しないメモリ」であるかのように思える。現実的に存在しないのなら無くても構わないようにすら思える。確かに物理的には存在しないから実在はしないんだけど、かと言って不要というわけでもなく、「virtual memory」本来の意味は「(ユーザーアプリなどが)実際に使うときのメモリ」みたいなニュアンスで「無くても構わないメモリ」とは、ちょうど真逆の意味だ。


「仮想」という言葉が、「存在しない」という否定っぽい語感なのに対して、「virtual」本来の意味は「実質上(は、これだ)」という肯定っぽい意味だからどうもギャップがある。


virtual reality」にしても、これを「仮想現実」と訳すと、「現実とは違う嘘の空間」のように思えてしまうが、「virtual reality」本来の意味としては「現実そのものではないが実質上は現実とみなせる空間」だ。


C++の「virtual function」を「仮想関数」と訳すと、C++を知らない人が聞くと、ありもしない、実際には呼び出されないような関数なのかなと思ってしまう。でも知っての通り、virtual functionは呼び出されたときに、派生クラス側の関数が実行される。たぶんこの名前をつけた人は「普通の関数とはずいぶん挙動が違うんだけど、普通に呼び出して使えるわけだし、実質的に関数だよねー」みたいな気持ちでvirtualと名付けたのではなかろうか。(知らんけど)


ともかく「virtual」を「仮想」と訳すといろいろな誤解が生じて理解の妨げになる。でもコンピュータ用語としてはすでに「仮想」という訳語が定着しているのでいまさら変えるわけにもいかない。ならば、「仮想」という訳語を見るごとに「実質上の」と頭のなかで変換するとスムーズに理解できるのではないかと思ったりするのだが。