Luna Labs
Luna Labs
プログラマーの日

ロシアの国営通信社イタル・タスの9月12日付記事によれば、ロシアのメドベージェフ大統領が、9月13日(閏年は9月12日)を「プログラマーの日」とする法令にサインしたという。9月13日がプログラマーの日とされる理由は、1年の間で256番目の日にあたるからである。1ビットで0か1かの2通りを表現できることから、メモリ領域の単位である1バイト=8ビットでは、2の8乗で、256通りの表現ができる。また、現在主に利用されている32ビットCPUや64ビットCPUは、一度に計算できるデータの単位が32ビットであったり64ビットであったりするCPUで、256という数字は32や64の倍数として何かと便利である。そのため、アセンブリやC/C++で、コンピューターの(レジスタやキャッシュを含む)記憶領域を効率的に利用してプログラミングしようとすると、この256という数字に何度も遭遇することになる。

これに対して、近年主に用いられているプログラミング言語を使ってプログラムを作成するかぎりでは、256という数字が意味を持つことは概して少ない、というよりほぼ無い。たとえばJavaしかり、Rubyしかり、JavaScriptしかり。これらの言語では、プログラマーが直接メモリを操作できない(C#のunsafe、PHPでの共有メモリ操作、java.nioなど、原則の例外はあるにせよ)。だから、「コンピューターの日」として256番目の日を選ぶことには意味があるとしても、「プログラマーの日」として同日を選ぶことの今日的な意義は薄いというのが実情である。

一方で、コンピューターの保持しているハードウェアリソースは、メモリ領域だけではない。近年では、プロセッサーもマルチコア化し、個々のプロセッシング・エレメントや、あるいはマシン単位で、操作可能なリソース単位として存在するようになっている。それらのリソースが、2の乗数以外の数で用意されていることは、滅多にない。直近の例では、リリースが近いWindows 7と、そのカーネルを用いたWindows Server 2008 R2が、最大256の論理プロセッサをサポートしている。こうした構成が、5年後にパーソナルセグメントに下りてきていても何ら不思議ではないだろう。現在主流のプログラミング言語は、新たに顕在化しつつあるこれらのリソースを活かすようには作られていない。そこで、今後5年の動向によっては、再び256という数字が一般のプログラマーの間に浸透してくる可能性も無いわけではない、かもしれない。


Posted 2009/9/14 18:12 by RyuK
Copyright Lunascape Corporation. All rights reserved.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems