[実験屋日記] Mathematica v. 6.0
数学系・技術系処理ソフトでは、Mathematicaがv.5あたりから紛れもなく、一頭地を抜いている。その前まではMatlabと比べて、大行列の処理が遅かったが、v.5のあたりからはMathematicaの方が速い。そして、プログラミング言語としてはMathematicaの方が圧倒的に熟慮されており、美しく間違いの少ないプログラムが書ける(v.2のころから既にこれはいえたことで、1990年代前半から既に関数・構文・contract・scope機構はほとんど変わっておらず、第3世代言語の良い点がたくさん先取りされていた)。
また、MatlabがJavaプログラムとなって安定度が激減した(数年前だったか、v.7にて??)のに比べ、Mathematicaはインタフェースと計算カーネルをはっきりと切り離していることもあり、非常に安定である。Mathlinkという外部インタフェースを用意しており(標準のフロントエンドもこのインタフェースを使用)、JavaプログラムであるMatlabよりもJava連携が容易であるほか、Cなど他の言語とも簡単に、全ての機能についてやりとりできる。
ところで本日、待望の新バージョンが発表となった。
ざっとみたところでは、およそ今まで「欲しいな」と思ったことのある機能や、外部プログラム・プラグインに頼っていた機能が全て含まれたようである。
= 出力図形の一次変換
= EPS画像での透明マスク(postscript 3)使用可
= グラフの種類の圧倒的な増加
= リアルタイムで変数を変えられる高度なグラフ機能
= リアルタイムで回転・拡大などが出来る3Dグラフ
= Flashなどのインタラクティブな画像形式でのExport
= 打ちながらコードを分析、関数・変数などを色分けするエディター
= などなど
ここまで来るとはっきりいって、MatlabにできてMathematicaに出来ないことはない(逆は数限りない)。またどちらでも出来るがMatlabの方が容易、または性能が上、という機能もない。もっとはっきりいうと、Matlabは存在意義がない。
なぜここまでMathematicaが成功するかというと、その設計がとても注意深くなされており、拡張が簡単だからである。Matlabのようにあとからとってつけた関数がたくさんあって、同種の関数であっても変数の順序や取り方が違ったり、あるいは綴りの省略法が違ったり、などというばかげたことがないのだ。Matlabを改良しようと思えば、refactoringの嵐となってしまうが、その点、はじめから定義がしっかりしているMathematica言語は改良・増設も容易なのであろう。
速くサイトライセンスで大学のコンピューターセンターから取り寄せられないかなぁ。
0 件のコメント:
コメントを投稿