Macsyma — система компьютерной алгебры, разработка которой велась с 1968 года в MIT в лаборатории Project MAC. Это была первая всеобъемлющая система символьной математики и одна из ранних систем, основанных на знаниях. Целиком написана на языке программирования Лисп (диалект MacLisp), для своего времени была одной из самых больших написанных на Лиспе программ. Перенос этой системы на новые компьютерные платформы послужил стимулом для создания нескольких Лисп-машин в 1970-е — 1980-е годы.
С 1982 года система распространялась на коммерческой основе, в 1999 году её развитие было прекращено.
Многие из идей, появившихся в Macsyma, впоследствии были заимствованы такими системами как Mathematica, Maple, и другими. Является предком свободной системы компьютерной алгебры Maxima.
Проект был инициирован в июле 1968 года Карлом Энгельманом (англ. Carl Engelman), Вильямом Мартином (англ. William A. Martin) (интерфейс пользователя, отображение выражений, арифметика полиномов) и Джоэлем Мозесом (англ. Joel Moses) (механизм упрощения выражений, неопределённые интегралы: эвристики/Алгоритм Риша). Бил Мартин был руководителем проекта до 1971 года, а Мозес следующие десять лет. Энгельман и его команда покинули проект в 1969 и вернулись в MITRE Corporation. Впоследствии, основными участниками разработки математического ядра программы были:
Macsyma была написана на языке программирования MacLisp, разработанном в проекте MAC диалекте Лиспа. Потребности Macsyma повлияли на особенности данного диалекта, развивавшегося одновременно, в частности, на добавление более развитых средств числовых расчётов и реализацию высокоэффективного компилятора. Исходно MacLisp и Macsyma работали на компьютерах PDP-6 и PDP-10 под управлением операционных систем ITS и TOPS-10/TOPS-20, позже - на компьютере GE-600 под управлением ОС Multics, а также и на Лисп-машинах. В то время Macsyma была одной из самых больших, если не самой большой программой на Лиспе. Потребности переноса Macsyma на другие аппаратные платформы привели к появлению нескольких новых диалектов Лиспа, в частности, Franz Lisp.
В 1981, Мозес и Ричард Павелль (также сотрудник MIT и сторонник применения Macsyma в науке и технике) предложили создать компанию для коммерциализации Macsyma. Однако им не разрешили это сделать, сославшись на правила, запрещающие работникам получать доход от разработок, выполненных в MIT. В начале 1982 MIT лицензировал Macsyma компании ADL («Arthur D. Little, Inc.»), которая стала посредником в продажах Macsyma и вскоре (в конце 1982 года), в свою очередь, лицензировала её компании Symbolics.
В том же 1982 году под давлением участника проекта Ричарда Фейтмана, в то время работавшего в Калифорнийском университете в Беркли, MIT лицензировал Macsyma Департаменту энергетики США, одному из главных спонсоров разработки системы. Эта версия называлась DOE Macsyma. В результате Symbolics Macsyma столкнулась с потерей правительственного рынка, который приносил значительную долю доходов от системы. Эта ситуация привела к разногласиям в правительстве США относительно того, имеет ли право университет лицензировать третьим лицам технологию, разработанную в университете и финансируемую федеральным правительством. Этот вопрос был решён положительно в 1986 году исполнительным приказом президента Рейгана.
Разработка Macsyma продолжалась в Symbolics. Первоначально система продавалась успешно, но уже в 1985-86 годах выручка от неё упала, хотя рынок рос и продажи конкурентов за тот же период выросли. Главной слабостью Macsyma стал численный анализ, который был критичен для инженерных и простейших научных расчётов: арифметика с плавающей запятой в Macsyma для PC была примерно в шесть раз медленнее, чем на Фортране, а неэффективная реализация матриц снижала скорость ключевых алгоритмов ещё в 5-10 раз. Macsyma не реализовывала многих базовых алгоритмов численной линейной алгебры, таких как LU-разложение, а алгоритм Грёбнера, разработанный в 1970-х в MIT, не был встроен в продававшуюся версию вплоть до 1987.
Несмотря на сопротивление многих в Symbolics, Macsyma была выпущена для компьютеров DEC VAX-11 и рабочих станций Sun Microsystems в 1986 и 1987 годах, для чего на этих платформах был реализован Franz Lisp.
Во второй половине 1986 Павелля на посту руководителя направления сменил Ричард Петти. Был сокращён персонал, расширен отдел продаж и маркетинга, разработчики были ориентированы на добавление в систему тех возможностей, которые требовались покупателям, в итоге в 1987 году доходы от Macsyma удвоились. Был улучшен интерфейс пользователя, документация и система помощи были реорганизованы и расширены, имена некоторых команд были изменены на более легко запоминающиеся. Петти пытался убедить руководство, что Macsyma должна быть стратегическим направлением компании и финансироваться, исходя из собственных достижений и потенциала, но после начала резкого роста продаж Symbolics урезала персонал Macsyma. Фактически, компания попыталась использовать Macsyma, чтобы компенсировать потери от бизнеса рабочих станций, который был в 30 раз больше.
В 1987-88 годах группа Macsyma пыталась перенести систему на PC, но потерпела неудачу. Ранее Symbolics закрыла собственный проект создания компилятора Lisp для стандартных компьютеров, чтобы не конкурировать с продажами Лисп-машин, и отказалась сотрудничать в реализации Лиспа с Sun по той же причине. Gold Hill Lisp, который был выбран для переноса системы на PC, оказался слишком нестабильным, а его слабая архитектура сделала невозможным устранение ошибок. Эта неудача лишила Macsyma рынка персональных компьютеров, в то время как Mathematica тогда же появилась на компьютерах Apple. Версия Macsyma для Windows, использующая CLOE Lisp от Symbolics, всё же вышла в августе 1989 года, но штат разработчиков был слишком мал, чтобы реализовать графику, интерфейс и численные возможности, подобные Mathematica.
К 1989 году стало очевидно, что Symbolics находится в кризисе. Несмотря на высокий уровень производимого ПО, оно оказалось неконкурентоспособно из-за зависимости от дорогого оборудования, развитие которого не было согласовано с потребностями рынка (в середине 1980‑х Symbolics перешла на аппаратную платформу с 40-битным словом вместо 36‐битного, не проведя экономического обоснования этого очень дорогого изменения). Петти пытался убедить руководство изменить стратегию, но четвёртый по счёту президент компании за четыре года не хотел ничего слышать об этом. Из-за отсутствия взаимодействия с MIT не удалось собрать группу для выкупа прав на разработку Macsyma. Судьба Macsyma оставалась неопределённой, в 1990 Петти покинул Symbolics, чтобы создать свою собственную компанию.
Macsyma Inc. была основана в 1992 году Расселом Нофтскером (англ. Russell Noftsker) (председателем совета директоров, сооснователем Symbolics) и Ричардом Петти. Она выкупила права на Macsyma у Symbolics. К этому моменту Macsyma уже потеряла рынок: за 5 лет с 1987 до 1992 её рыночная доля упала с 70 % до 1 %, и к началу 1993, когда рост рынка замедлился, фактическим стандартом стали Mathematica и Maple. К тому же с 1992 года Mathsoft начала по низким ценам распространять свой Mathcad, занявший большую часть оставшейся рыночной ниши.
На Macsyma Inc. работали разработчики мирового класса, включая Джефа Голдена (англ. Jeff Golden) (который сделал большую часть символьной математики), Била Госпера (англ. Bill Gosper) (специальные функции, суммирование и другие элементы), Говарда Кэннона (вице-президент по разработке всего ПО), и Билла Дубьюка (интегрирование и решение уравнений). Другие разработчики сделали важный вклад в численный анализ, графику, и систему помощи. В начале 1995 вышла Macsyma 2.0.5, со следующими улучшениями:
Несмотря на успешное развитие системы, доля рынка её так и не выросла выше 2 %: к моменту выхода Macsyma 2.0.5 новых пользователей почти не появлялось, а имеющийся рынок был уже поделен между конкурентами. К тому же группы разработчиков у конкурентов были в 4-8 раз больше, чем в Macsyma Inc., и долго конкурировать с ними было невозможно.
В 1999, Macsyma была куплена Tenedos LLC, холдинговой компанией, которая ранее купила Symbolics. Tenedos не стала снова выпускать или перепродавать Macsyma. На этом история оригинальной системы завершилась.
Профессор Уильям Шелтер (Bill Schelter) из Техасского университета в Остине продолжал поддержку и улучшение версии DOE Macsyma с 1982 года, в частности, он выполнил перенос системы на Common Lisp. В 1998 году Шелтер с разрешения Министерства энергетики США опубликовал исходный код DOE Macsyma под лицензией GNU General Public License, а в 2000 году создал проект Maxima на SourceForge.net для поддержания и дальнейшего развития этой системы как свободного ПО. После смерти Шелтера в 2001 году проект продолжает развиваться силами сложившегося сообщества разработчиков.
Maxima находится в активной разработке, может быть скомпилирована под несколько различных реализаций Common Lisp, доступны готовые сборки для GNU/Linux, Microsoft Windows, Mac OS X и других систем. Доступен в нескольких вариантах графический интерфейс пользователя. Maxima содержит много внесённых после отделения от оригинала изменений и не включает ничего из многочисленных улучшений, сделанных в коммерческой версии Macsyma между 1982—1999 годами. Из‑за этого могут потребоваться значительные усилия, чтобы перенести код с Macsyma в Maxima. Благодаря открытости системы она является основой для ряда производных разработок, например, системы Stack, предназначенной для автоматизированной проверки правильности математических выражений[1][2][3].