前回は、不揮発メインメモリ登場したことで、プログラミングに大きな変化が起きそうと書きました。
不揮発メインメモリ登場で、5年後のプログラミングの教科書はすべて書き換わっている
最後の最後に、
ま、もっとも安直な発想はOSからなにからまるっとXMLデータベースにしてしまうことで、それであっさり解決するのかもしれませんが。と書いたのですが、なんかとりあえずこれでつじつまが合いそうなので、この方向性なら今後どうなるかシナリオを書いてみます。これから、なんかこんな感じのことが起こるのです。
もう今日にも始まっているかもしれませんが、不揮発メインメモリが登場するというニュースを見て、腕のある人がXMLデータベースを元にしたOSを作ってみようと思い立ちます。
コンピュータの上ではいろんなプロセスが走っていますが、今はそれが終わったりクラッシュしてしまうと、そのプロセスが使っていたメモリは意味を失ってしまいます。そこには本来何か意味のあるデータがあったにもかかわらず。貴重なデータがあったとしてもゴミとして破棄し、他のプロセスのために再利用するしかありません。
でも、もうメモリは電源切っても消えないのですから、それはあまりにももったいないです。ですから、プロセスにしかその中身がわからないようにメモリを与えるのではなく、まずデータベースを動かし、そこにデータを作り、それからプロセスを動かすようにするのです。
したがって、OSそのものもデータベースの上に動かしちゃえということになります。将来は電源切ってもデータベースのデータがそのままメモリに残りますから、電源入れた瞬間あっという間にデータベースを復帰させることができます。ですから、そこを起点にコンピュータを動かし始めるのが効率いいです。
腕のある人なら、数日もあればこの新しいOSのプロトタイプを作ることができるでしょう。今はSSDにあるプログラムをXMLデータベースに登録して、それを起動するように変えるくらいで、それっぽいものはできてしまいます。今は電源を入れた時、まずそのデータベースを起動するのに時間がかかってしまいますから、その恩恵を楽しむことはできませんが、不揮発メインメモリ搭載PCを手にいれる将来が楽しみです。
次にプログラミング言語の方に細工を始めます。最初はそのプログラムに対応したデータベースオブジェクトを自動生成して、 "myDB" みたいなシンボルで参照できるだけからでも始められます。その "myDB" の中身には、そのプログラム自身も登録されているし、OSはそれを起動することでこのプログラムを起動するのです。
それだけだと、プログラマが明示的にデータベースを使用しなければ、今までのプログラミングとまったく変わることはありません。しかし、今でもいつ通信やアプリが落ちてもいいように状態をこまめに記録するのは普通ですから、その記録先として "myDB" を活用したプログラミングは現在のプログラマにとっても苦にはなりません。
そんなスタイルが一般的になれば、それら一連の手間を簡潔にできるようにプログラムが拡張されていくことでしょう。普通に変数を宣言すれば、それはデータベース上に場所を確保されるようになったりするでしょうし、データベースの中身それぞれと、いわゆるプログラムで使われる「オブジェクト」とがシームレスにつながるようになるでしょう。
そういった手法が取られた時に、データの整合性が崩れないかとか、複数のプログラムで同じデータベースを扱った時に問題にならないかというのは、データベースの世界で散々やってきているわけですから、その資産をすべて生かせます。
すぐにこの「データベース指向」とも呼ぶべきプログラミングが広がることでしょう。「オブジェクト指向」の次の波です。
iPhone のアプリとか、しょっちゅう停止させられりして、事実上アプリがいつ止まろうとデータは保持しておく必要ありますから、もう「データベース指向」プログラミングは普通に行われていると言っても構いません。
そんな需要にようやくハードウェアが追いついてきた、そんな状況なのではないでしょうか。
《ワンポイントミライ》(?)
ミライ: とりあえず、熱くて仕方ない iPhone がぬるくなりそうですよね。
フツクロウ: ホッホ。ひっきりなしに電源がOFFになれるからの。