Macsyma

Macsyma（Project MAC’s  SYmbolic MAnipulator）は、1968年から1982年までMITのProject MACの一環として開発された数式処理システムであり、その後商用化された。世界初の数式処理システムで、初期のエキスパートシステムの1つであり、その様々なアイデアが後のMathematicaやMapleといったシステムに影響を与えた。

 開発 
1968年7月、カール・エンゲルマン、（フロントエンド、数式表示、多項式算術）、ジョエル・モーゼス（簡約化、不定積分、ヒューリスティックス）によりプロジェクトが始まった。1971年までのプロジェクト責任者はマーティンで、モーゼスがその後10年間責任者を務めた。エンゲルマンと彼のスタッフは1969年に MITRE Corporation に戻っている. See also 。その後、様々な人々が開発に関与した。

使用言語はMaclispで、Maclispを数値計算向きに改良する主な動機となった。MaclispはPDP-6およびPDP-10が主なプラットフォームだったが、MulticsオペレーティングシステムやLISPマシンアーキテクチャでも動作した。Macsymaは当時としては大規模なLISPプログラムの1つだった。

 商用化 
1979年、当時カリフォルニア大学バークレー校（UCB）の教授だったリチャード・フェイトマンの要望で、MITはMacsymaのコードの一時的ライセンスを提供した。これを使い、フェイトマンの研究室でMaclispから派生させたを使い、上にすぐさま移植した。MITは、適切なライセンス条件の交渉が完了した際には現状の一時的ライセンスは破棄されるという条件で、UCBがVAX版Macsymaをカリフォルニア工科大学など約50の大学に配布することをしぶしぶ許可した。実際、後述するシンボリックスとの契約が成立した際に従来のライセンスは破棄された。するとシンボリックスはVAX製品が同社のLISPマシンと性能的に競合することからVAX版Macsymaのライセンス提供を渋り、結局5年間VAX版のライセンスを提供しなかった。UCBはさらにサンのワークステーションなどMC68000を使ったシステムにもMacsymaを移植した。同じころフェイトマンは、破棄された当初のライセンスを恒久化すべく働きかけていた。

最終的に1982年、アメリカ合衆国エネルギー省（DoE）はMITに対してNational Energy Software Center（NESC）ライブラリにコピーをリリースさせるという条件と引き換えに、高い価格設定と再配布禁止というライセンス条件をMITが設定することを許可した。これはシンボリックスへの技術移転を保護することを意図したものだった（そのような制限は2002年ごろ撤廃された）。このいわゆるDOE MacsymaはMITがCommon Lispの前身であるNILで書き直したもので、当時学界で主流だったBerkeley VAX Unixではなく、人気のないVAX/VMS で動作した。DOE Macsymaは後のオープンソースのMaximaの基礎となった。

1981年、モーゼスとリチャード・パヴェル（MIT職員で、Macsymaを工学や科学に適用することを提案した）はMacsymaを商用化するための会社を創業しようとした。パヴェルはMacsymaを使った科学的論文を多数書いていた。そうした論文を手に、パヴェルとモーゼスは出資に興味を示したいくつかのベンチャーキャピタルを訪れた。契約が成立しそうになったころ、MITはMITの人間がMITでの開発で直接利益を得るべきではないと決定した。1982年初め、MITはMacsymaをアーサー・D・リトル（ADL）にライセンス供与し、同社がMacsymaの仲買人となり、1982年後半にはMacsymaをシンボリックスにライセンス供与した。この間にADLによってモーゼスが締め出され、パヴェルがシンボリックスのMacsyma部門のトップに就任することになった。シンボリックスはMacsymaを独占することにはそれほど興味がなく、競合するLISPマシン企業もライセンス供与を受けている。シンボリックスとADLの契約では、Macsymaの売り上げの15%をロイヤリティとしてADLに支払うことになっていた。この法外なロイヤリティは、Macsyma が絶対に売れるとMITとADLが考えていたことの表れである。シンボリックスではLISPマシンを売るのが本業と考えていたが、Macsyma の開発も継続していた。Macsymaおよびそれを搭載したLISPマシンの売り上げは2年以内にシンボリックスの売り上げ全体の10%を占めるようになっていった。シンボリックス社内からは多くの抵抗があったが、1980年代初めから中ごろに Macsyma をバークレーのFranz Lispで書いたものがDECのVAXやサンのワークステーション向けにリリースされた。

他社のコンピュータ向けにもMacsymaが販売されるようになると、Macsymaを搭載したシンボリックスのLISPマシンの売り上げが低下していった。市場自体は成長しているにも関わらず、1986年上半期のMacsymaの売り上げは、1985年上半期の売り上げより低下した。数式処理という点では明らかにMacsymaの方が優れていたが、そのころスティーブン・ウルフラムのやウォータールー大学のMapleが売り上げを伸ばしていた。

パヴェルはシンボリックスのMacsyma部門を1986年初めごろまで指揮していた。1986年後半にはリチャード・ペッティに引き継がせ、シンボリックス社内の衝突を避けるため、経営陣はMacsymaの販売を減らす方針を採用した。Macsyma部門の従業員数は削減されたが、営業部門は強化し、顧客が求める機能を開発することに集中するようにした。例えば、グレブナー基底を求めるアルゴリズムは1970年代にMITで発展したが、1987年まで製品版Macsymaにそれが搭載されることはなかった。1987年、Macsymaの年間売り上げはほぼ倍増した。マニュアルやオンラインヘルプが改良され、コマンド名をさらに覚えやすくし、Macsymaは格段に使いやすくなっていった。ペッティはシンボリックス経営陣に対して、Macsymaはハードウェア部門の戦略とは切り離して出資されるべき戦略事業単位だと主張した。しかし、シンボリックスはその後もMacsyma部門の人員を削減している。シンボリックスは多大な赤字を出しているハードウェア部門の赤字補填のドル箱としてMacsymaを使おうとした。

Macsymaの最大の弱点は数値解析能力の低さだった。数式処理は難しいタスクだが、数値解析はより大きな科学技術計算市場に参入する際に重要となる。MIT版Macsymaは数値計算ライブラリIMSLとリンクしていたが、LISPマシン向けのIMSLがないためシンボリックス版Macsymaではこのリンクは難しかった。シンボリックスのLISP開発者は数値解析を古い技術だと信じていて、LISPの用途としては重要でないと考えていたため、その方面の強化を怠っていた。PC版Macsymaの倍精度演算は、FORTRANの6倍の時間がかかった。また行列をリストのリストとして実装していたため、重要なアルゴリズムの性能低下の要因となっていた。MacsymaにはLU分解のような数値線形代数の基本アルゴリズムも備わっていなかった。

1987年から1988年にかけて、Gold Hill Lispを使ったPC版Macsymaをリリースしようとした。一般的なコンピュータ向けにLISPコンパイラを開発することはシンボリックスにとって本業であるLISPマシンと競合する相手を作るようなもので、シンボリックス経営陣はそのプロジェクトをやめさせた。しかし、プロジェクトは経営陣には無断で続行された。ところがこのGold Hill Lispは非常に不安定で、アーキテクチャに問題があるためバグ修正も難しかった。これがMacsymaにとっては致命傷となった。1988年中ごろにMathematicaのMacintosh版が登場したとき、PC版Macsymaを対抗してリリースすることができなかった。Windows版Macsymaは、シンボリックスが開発したCLOE Lispを使って1989年8月にリリースされた。しかしそのころMacsyma部門の人員はあまりに少なく、Mathematicaが備えていたグラフィックス描画機能、ノートブック・インタフェース、数値演算機能などに対抗できるものを実装できなかった。

1989年、シンボリックスは製品戦略の失敗から事業を整理統合する必要に迫られた。ペッティはMacsyma部門を独立させようとしたがMITから資金協力を得られなかった。1988年末、ペッティは経営陣にソフトウェア専業への移行を進言したが、受け入れられなかった。そこで新たな企業を創業するためペッティはシンボリックスを退社した。

 Macsyma, Inc. 
1992年、シンボリックスの創業者の1人会長とリチャード・ペッティ社長がMacsyma, Inc.を創業し、シンボリックスからMacsymaの権利を買い取った。市場は急激に成長していたが、Macsymaの売り上げは1991年から1992年初めにかけても急激に落ち込んでいた。数式処理ソフトウェアにおけるMacsymaのシェアは、1987年には70%だったものが、1992年には1%となっている。1993年に市場の成長がおさまったころには、MathematicaとMapleがほとんどを占めるようになっていた。1990年代を通して、Macsyma, Inc.の開発要員は競合他社の4分の1から8分の1だった。

1995年初め、様々な改良を施したMacsyma 2.0.5をリリース。Westerによる数式処理システムの大規模な評価によると、Macsyma 2.0.5 はMapleより10%、Mathematicaより15%性能がよいとされている Wester's 1995 review and 1999 review。Macsyma 2.0.5の数値演算性能は相変わらず低かったが、数値解析および線形代数のルーチンは大幅に強化されていた。1996年にはLAPACKを採用し、数値線形代数の性能も強化された。

しかし開発チームの人員の少なさから、性能上の優位を継続的に維持することはできなかった。市場シェアは2%を越えることはなかった。1999年、Macsyma, Inc.はシンボリックスも買収した企業Tenedos LLCに買収された。この企業がMacsymaを販売することはなかったが、シンボリックスは引き続きWindows XP以前のWindows向けにMacsymaの販売を継続している。

 入手可能なバージョン 
Maximaは1982年版のDOE MacsymaをベースとしたGPLライセンス版であり、後にがCommon Lispで書き直し強化を施していった。今も盛んに開発が続いている。GNU/Linux、Windows、macOS などのシステム向けのGUIも備えた実行ファイル版がダウンロード可能である。1982年以降の商用版Macsymaでの強化をほとんど含んでいないが、オープンソースであるため様々な機能が追加されてきた。そのためMacsymaとMaximaには多少の非互換はあるが、Macsymaの代数言語で書かれたものはほぼ変更なく両方のシステムで実行可能である。

 脚注 

 外部リンク 
 Richard Petti's summary of the history of commercial Macsyma 30 October 2003
 The Macsyma Saga Richard Petti, 2 November 2003
 Symbolics Macsyma

Category:数式処理システム
Category:Linux向け数式処理システム
Category:1968年のソフトウェア
Category:開発が終了したソフトウェア