Macsyma

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Macsyma — система компьютерной алгебры, разработка которой велась с 1968 года в MIT в лаборатории Project MAC. Это была первая всеобъемлющая система символьной математики и одна из ранних систем, основанных на знаниях. Целиком написана на языке программирования Лисп (диалект MacLisp), для своего времени была одной из самых больших написанных на Лиспе программ.

С 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/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, хотя данный проект отвлекал ресурсы от направления Лисп-машин, которое в Symbolics считали главным. Продажи Macsyma и возросшие благодаря ей продажи Лисп-машин в течение двух лет достигли 10 % общего объёма продаж в Symbolics. Несмотря на сопротивления многих в Symbolics, MACSYMA была выпущена для компьютеров DEC VAX-11 и рабочих станций Sun Microsystems в 1986 и 1987 годах, для чего на этих платформах был реализован Berkeley Franz Lisp.

Развитие Macsyma в Symbolics столкнулось с проблемами как в компании в целом, так и в самой группе разработки. Наличие проблем стало ясно в первой половине 1986 года, когда выручка от системы оказалась ниже того же периода 1985 года, хотя рынок за это время вырос и потребность в математических системах росла. Можно заметить, что за тот же период продажи систем SMP фирмы Wolfram и Waterloo Maple выросли, хотя Macsyma превосходила эти и другие пакеты в символьной математике. Главной её слабостью был численный анализ, в то время как численные возможности были критичными для получения доли на рынке инженерных и простейших научных расчётов. В MIT Macsyma использовала численные библиотеки IMSL (сегодня Visual Numerics), но они не были лицензированы Symbolics. Разработчики Symbolics считали, что численный анализ является устаревшей технологией, которая не важна для приложений на Лисп, и не желали вкладывать в неё ресурсы. В результате, например, арифметика с плавающей запятой двойной точности в PC версии Macsyma была примерно в шесть раз медленнее чем на Фортране. Матрицы в Macsyma были реализованы как списки списков, что приводило к снижению скорости ключевых алгоритмов ещё приблизительно в 5-10 раз. Macsyma не реализовывала многих базовых алгоритмов численной линейной алгебры, таких как LU-разложение.

Павелль руководил подразделением MACSYMA в Symbolics вплоть до начала 1986 года. Во второй половине 1986 руководителем направления стал Ричард Петти. Подразделение урезало персонал, но расширило отдел продаж и маркетинга; разработчики были ориентированы на добавление в систему тех возможностей, которые требовались покупателям. (Например, алгоритм Грёбнера, разработанный в 1970-х в MIT, не был встроен в продававшуюся версию MACSYMA вплоть до 1987.) В 1987 году ежегодные доходы от Macsyma приблизительно удвоились. Система получила более дружественный интерфейс пользователя, документация и онлайновая помощь были реорганизованы и расширены, имена некоторых команд были изменены на более легко запоминающиеся. Петти убеждал руководство Symbolics в том, что MACSYMA является 'стратегическим подразделением' которое должно финансироваться, отталкиваясь от его достижений и потенциала, а не от перспектив продаж рабочих станций. Однако после начала резкого роста продаж Symbolics урезала персонал MACSYMA. Фактически, компания попыталась использовать MACSYMA, чтобы компенсировать потери от бизнеса рабочих станций, который был в 30 раз больше.

В 1987-88 годах группа Macsyma пыталась перенести Macsyma на PC с помощью Gold Hill Lisp[1]. Gold Hill Lisp был слишком нестабильным, и его слабая архитектура сделала невозможным для Gold Hill устранить ошибки. Это была решающей неудачей для Macsyma, так как лишила её рынка персональных компьютеров, тогда как Mathematica появилась на компьютерах Apple в середине 1988. Версия MACSYMA для Windows, использующая CLOE Lisp от Symbolics, вышла в августе 1989 года, но штат разработчиков был слишком мал, чтобы реализовать добавление того типа графики, интерфейса пользователя и численных возможностей, которые были в Mathematica.

К 1989 году Петти стало ясно, что Symbolics находится в кризисе из‑за слабой стратегии развития продуктов, и что в результате своего краха она утянет MACSYMA с собой. Основными проблемами он считал следующие:

  1. Архитектура ПО Symbolics была спроектирована в расчёте на разработчиков MIT без кооперации с другими заинтересованными сторонами.
  2. Несмотря на то , что ПО Symbolics было высочайшего уровня, но оказалось неконкурентоспособным из‑за зависимости от дорогостоящего оборудования.
  3. В середине 1980‑х Symbolics перешла на аппаратную платформу с 40-битным словом вместо 36‐битного, не проведя экономического обоснования этого очень дорогого изменения.

Из-за отсутствия взаимодействия с MIT не удалось собрать группу для выкупа прав на разработку Macsyma. Судьба Macsyma оставалась неопределённой с 1986 по 1988 год. Петти пытался убедить руководство изменить стратегию, но четвёртый по счёту президент компании за четыре года не хотел ничего слышать об этом. В 1990 Петти покинул Symbolics, чтобы создать свою собственную компанию.

Macsyma Inc.[править | править код]

Macsyma Inc., была основана в 1992 году Расселом Нофтскером (англ. Russell Noftsker) (председателем совета директоров, сооснователем Symbolics) и Ричардом Петти наращиванием средств и покупкой права на Macsyma у больной Symbolics. Хотя рынок быстро рос, продажи Macsyma в 1991 и начале 1992 всё ещё быстро падали. Рыночная доля Macsyma в программах символьной математики упала с 70 % в 1987 до 1 % в 1992. К началу 1993, рост рынка замедлился и рынок принял в качестве стандарта Mathematica и Maple. В течение 1990-х конкуренты имели группы разработчиков, которые были в 4-8 раз больше группы в Macsyma Inc.

В начале 1995 компания выпустила Macsyma 2.0.5, с следующими улучшениями:

  1. On Wester’s large test of symbolic math, Macsyma 2.0.5 показала результаты на 10 % лучше, чем Maple и на 15 % лучше, чем Mathematica. Вместо того, чтобы быть очень медленной, она в среднем была быстрее, чем Mathematica и почти такой же быстрой, как и Maple.
  2. Macsyma 2.0.5 имела лучший notebook interface, чем любой из конкурентов, который умел отображать математические формулы, форматированный текст, гиперссылками, и самый лучший научный графический интерфейс в индустрии математического программного обеспечения.
  3. Обозревателями единогласно решено, что Macsyma имела лучшую систему помощи в промышленности (включая гипертекст, демонстрации, примеры, шаблоны функций, and later Mathtips natural language query). Macsyma также значительно улучшила свою бумажную документацию.
  4. Хотя Macsyma 2.0.5 всё ещё была очень медленной при работе с числами, она имела значительно усиленный портфель подпрограмм численного анализа и линейной алгебры[2]. Обзор в PC Magazine восторженно говорил, что «Macsyma является лидером на рынке математических программ.»

Данное достижение было возможным потому что Macsyma Inc. имела значительное число разработчиков мирового класса, включая Джефа Голдена (англ. Jeff Golden) (который сделал большую часть символьной математики), Била Госпера (англ. Bill Gosper) (который сделал специальные функции, summations and other areas), Howard Cannon (вице-президент по разработке всего ПО), и периодические консультации Bill Dubuque (для интегрирования и решения уравнений). Другие разработчики сделали важный вклад в численный анализ, графику, и систему помощи.

Компания не могла бесконечно продолжать соперничество с командами разработчиков в 4-8 раз большими и развернуть рынок на себя. Рыночная доля не выросла выше 2 %, потому что конкуренты укрепились во всех ключевых позициях, переход на новый продукт требует много сил на обучение, а рост рынка замедлился и новых пользователей не появлялось. Также, начиная с 1992 или 1993 года, Mathsoft предприняла Пиррову стратегию, потратив 10 миллионов долларов на прямую почтовую рассылку по очень низким ценам, что позволило ей захватить большую часть оставшегося роста на рынке символьной математики, как раз в тот момент, когда Macsyma Inc. пыталась модернизировать свой продукт мирового класса.

В 1999, Macsyma была куплена Tenedos LLC, холдинговой компанией, которая ранее купила Symbolics. Tenedos не стала снова выпускать или перепродавать Macsyma, однако Symbolics продолжает распространять Macsyma.

Доступные версии[править | править код]

Существует выпущенная под GNU General Public License и основанная на DOE Macsyma 1982 года версия которая называется Maxima, перенесённая впоследствии на Common Lisp и улучшенная В. Шелтером. Она находится в активной разработке, и может быть скомпилирована под несколько различных реализаций Common Lisp. Можно скачать исполняемые файлы для GNU/Linux, Microsoft Windows, Mac OS X и других систем, включая графический интерфейс пользователя. Maxima не включает ничего из многочисленных улучшений сделанных в коммерческой версии Macsyma между 1982—1999 годами. Из‑за этого могут потребоваться значительные усилия чтобы перенести код с Macsyma в Maxima.

Примечания[править | править код]

  1. Ранее Symbolics закрыла собственный проект создания компилятора Lisp для стандартных компьютеров, чтобы не конкурировать с продажами Лисп-машин. Это был спорный шаг, который, по некоторым оценкам, был сделан без санкции высшего руководства. Symbolics также отказалась сотрудничать с Sun, чтобы сделать Лисп доступным на рабочих станциах Sun, по той же причине.
  2. В 1996 Macsyma добавила LAPACK, который значительно увеличил скорость работы большинства числовых вычислений линейной алгебры.

Ссылки[править | править код]