[画像のクリックで拡大表示]
 数式処理/数値計算アプリケーション「Mathematica」で有名な米Wolfram ResearchのDirector of Strategic & International Development(国際企画開発部ディレクタ)のConrad Wolfram氏が来日。Wolfram Research日本法人で,日経ソフトウエア誌の記者のインタビューに応じた。発言要旨は以下の通り。

問:Mathematicaの特徴について教えてほしい。

 計算エンジン,プログラム言語,ドキュメントなどを一つにまとめた技術者のための完全な数式処理/数値計算システムだ。Mathematicaで扱える式,グラフィックス,プログラムなどすべてが,記号式(symbolic)という一つの方式で表現されていることに特徴がある。これによってほかのソフトにはない柔軟性と直感性を有している。

問:Mathematicaではどのようにプログラミングを行うのか。

 Mathematicaは,手続き型,関数型,パターン・マッチング,オブジェクト指向のすべてのスタイルでのプログラミングが可能なマルチパラダイムのプログラミング言語を備えている。これで1行のプログラムを書いて電卓のように対話的に使うこともできるし,10万行を超えるプログラムを書くこともできる。プログラミング言語の学習者は,Mathematicaの言語を最初に習得すれば,すべてのプログラミング・パラダイムの言語を学ぶ際の基盤になり得る。

 Mathematicaのプログラミングは様々なパラダイムをサポートしているが,ユーザーがプログラムを書く際に,すべてのパラダイムを知っている必要はない。最初は,手続き型など自分がよく知っている方法を使ってプログラムを記述し,次第にいろいろな方式を使いこなせるようになっていけば良い。まったくプログラミングの経験がない人は,わかりやすいパターン・マッチングのパラダイムに沿った方法で始めれば良いだろう。慣れてくると,パラダイムを使い分けることで,大きなタスクを,小さなプログラムとして記述できるようになる。

 Mathematicaは,問題を解くためのアルゴリズムの集まりと言うこともできる。プログラミングの経験が少なくても,内蔵の関数を使うことで複雑な問題を解くことができる。その際に,どんなアルゴリズムや関数を使って問題を解くかをMathematicaが自動的に選んでくれるので,ユーザーが指定する必要はない。自動車が誕生した当初は,運転をする人は自動車の機械的な仕組みを理解しておく必要があったが,最近では自動化が進んでほとんど意識する必要がなくなった。それと同じことだ。Mathematicaは,いつも自動的により良い結果(better result)を導いてくれる。

 J/Linkや .NET/Linkという機能を利用することによって,MathematicaのパッケージをJavaや .NETアプリケーションに組み込んで利用することもできる。ほかに,データベースとの連携,Webサービス,XML形式でのデータのインポート/エクスポートなども可能だ。

問:今後,どのような方向に機能を強化させていくのか。

 現在,200万人くらいいるMathematicaのユーザーには,計算能力に魅かれている人と,プログラミング言語として魅かれている人がいる。そこで現在,ほかの言語を使っているプログラマがMathematicaの機能を容易に利用できるようにするためのワークベンチ(workbench)を開発している。このワークベンチは,Mathematicaとは別の製品としてリリースするかもしれない。さらに先の話になるが,Mathematicaの言語部分だけを切り出して,「Wolfram言語」とでもして,アプリケーション開発者が自由に使ったり,開発したプログラムを自由に実行できるようにすることも考えている。

 数値計算機能の強化や自動化もさらに進める。11月14日に,四つのCPUコアを備えたコンピュータでグリッド・コンピューティングを可能にする「Mathematica Personal Grid Edition」を発表した。Mathematicaのプログラムを,異なる四つのコアに自動的に分散してパラレルに実行する仕組みだ。これによってパーソナル・スーパーコンピューティングが可能になる。従来からサポートしているグリッド・コンピューティングについても,今後,より効率の良い割り振りを自動的に行えるように強化していく。もちろん,シングル・コアのマシンでのパフォーマンス向上も,併せて実現していく。

 さらに,Mathematicaが備えるユーザー・インタフェースのインタラクティビティを高めて,より使いやすいシステムを提供していく。