Macsyma(Project MAC’s SYmbolic MAnipulator)は、1968年から1982年にかけてMITのProject MACで開発された
数式処理システムです。世界初の
数式処理システムの一つであり、初期の
エキスパートシステムとしても知られています。その革新的なアイデアは、後の
Mathematicaや
Mapleといったシステムに大きな影響を与えました。
開発の経緯
1968年7月、カール・エンゲルマン、ウィリアム・A・マーティン、ジョエル・モーゼスを中心にプロジェクトが開始されました。マーティンはフロントエンド、数式表示、多項式算術を担当し、モーゼスは簡約化、不定積分、ヒューリスティックスを担当しました。1971年まではマーティンがプロジェクトの責任者を務め、その後10年間はモーゼスがその役割を引き継ぎました。使用言語はMaclispで、Macsymaの開発はMaclispを数値計算向きに改良する大きな動機となりました。MaclispはPDP-6やPDP-10といったプラットフォームで動作しましたが、Multics
オペレーティングシステムやLISPマシンアーキテクチャでも動作しました。当時としては大規模なLISPプログラムの一つでした。
商用化への道
1979年、
カリフォルニア大学バークレー校(UCB)のリチャード・フェイトマン教授の要望により、MITはMacsymaのコードを一時的にライセンス供与しました。フェイトマンの研究室では、Maclispから派生したFranz Lispを用いて、
VAX-11/780上に移植しました。MITは当初、
VAX版Macsymaを約50の大学に配布することを許可しましたが、シンボリックスとの契約成立後はライセンスが破棄されました。シンボリックスは
VAX版Macsymaのライセンス提供を渋り、5年間提供しませんでした。UCBはその後、サンのワークステーションなどMC68000を使ったシステムにもMacsymaを移植しました。
1982年、
アメリカ合衆国エネルギー省(DoE)は、MITに対してNational Energy Software Center(NESC)ライブラリにコピーをリリースさせる代わりに、高い価格設定と再配布禁止というライセンス条件を設定することを許可しました。これはシンボリックスへの技術移転を保護するための措置でした。このDOE Macsymaは、MITが
Common Lispの前身であるNILで書き直したもので、
VAX/VMS上で動作しました。DOE Macsymaは、後のオープンソースのMaximaの基礎となりました。
1981年、モーゼスとリチャード・パヴェルはMacsymaを商用化するための会社を創業しようとしましたが、MITはMITの人間がMITでの開発で直接利益を得るべきではないと判断しました。1982年初め、MITはMacsymaをアーサー・D・リトル(ADL)にライセンス供与し、ADLが仲介役となり、その後シンボリックスにライセンス供与しました。シンボリックスはMacsymaを独占することにはあまり関心がなく、競合するLISPマシン企業LMIにもライセンス供与しました。
衰退と復活
他社のコンピュータ向けにもMacsymaが販売されるようになると、Macsymaを搭載したシンボリックスのLISPマシンの売り上げが低下していきました。1986年上半期のMacsymaの売り上げは、1985年上半期よりも減少しました。スティーブン・ウルフラムのSMPや
ウォータールー大学の
Mapleといった競合製品が台頭してきたことも影響しました。
1992年、シンボリックスの創業者の1人であるラッセル・ノフツカー会長とリチャード・ペッティ社長がMacsyma, Inc.を創業し、シンボリックスからMacsymaの権利を買い取りました。しかし、Macsymaの市場シェアは急速に低下し、1992年にはわずか1%となりました。1990年代を通して、Macsyma, Inc.の開発要員は競合他社の4分の1から8分の1にとどまりました。
1999年、Macsyma, Inc.はTenedos LLCに買収されました。この企業がMacsymaを販売することはありませんでしたが、シンボリックスは引き続きWindows XP以前のWindows向けにMacsymaの販売を継続していました。
Maximaへ
Maximaは、1982年版のDOE MacsymaをベースとしたGPLライセンス版であり、ビル・シェルターによって
Common Lispで書き直され、機能強化が図られました。現在も活発に開発が続けられており、GNU/Linux、Windows、macOSなどのシステム向けのGUIを備えた実行ファイル版がダウンロード可能です。商用版Macsymaでの強化はほとんど含まれていませんが、オープンソースであるため様々な機能が追加されています。MacsymaとMaximaには非互換性があるものの、Macsymaの代数言語で書かれたものはほぼ変更なく両方のシステムで実行可能です。
外部リンク
Richard Petti's summary of the history of commercial Macsyma
The Macsyma Saga
*
Symbolics Macsyma