Macsyma

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

Macsymaсистема компьютерной алгебры, первая версия которой была разработана с 1968 по 1982 год в MIT в лаборатории Project MAC, а впоследствии распространялась на коммерческой основе. Это была первая всеобъемлющая система символьной математики и одна из ранних систем, основанных на знаниях. Многие из идей, появившихся в Macsyma впоследствии были заимствованы такими системами как Mathematica, Maple, и другими.

Разработка[править | править вики-текст]

Проект был инициирован в июле 1968 года Карлом Энгельманом (англ. Carl Engelman), Вильямом Мартином (англ. William A. Martin) (интерфейс пользователя, отображение выражений, арифметика полиномов) и Джоэлем Мозесом (англ. Joel Moses) (механизм упрощения выражений, неопределённые интегралы: эвристики/алгоритм Риша). Бил Мартин был руководителем проекта до 1971 года, а Мозес следующие десять лет. Энгельман и его команда покинули проект в 1969 и вернулись в MITRE Corporation. Впоследствии, основными участниками разработки математического ядра программы были:

Macsyma была написана на языке программирования Maclisp, и являлась, в некоторых случаях, ключевым мотиватором для улучшения этого диалекта Лиспа в области числовых вычислений, эффективной компиляции, и дизайна самого языка. Maclisp работал в основном на компьютерах PDP-6 и PDP-10, а кроме того под операционной системой Multics и на Лисп-машинах. В то время Macsyma была одной из самых больших, если не самой большой программой на лиспе.

Коммерциализация[править | править вики-текст]

В 1981, Мозес и Ричард Павелль — сотрудник MIT и сторонник применения Macsyma в науке и технике — предложили создать компанию для коммерциализации Macsyma. Однако MIT применила ранее не применявшуюся политику, предотвращающую персонал от получения выгоды от разработок сделанных в MIT. В начале 1982, MIT лицензировал Macsyma компании «Arthur D. Little, Inc.», которая стала посредником в продажах Macsyma и вскоре (в конце 1982 года) лицензировала её компании Symbolics, которая таким образом предотвратила Macsyma от попадания в каталог программной продукции её соперника в деле производства Лисп-машин — компании LMI. Деловое соглашение между Symbolics и Arthur D. Little требовало отчислений в пользу ADL в размере 15 % с выручки от продаж Macsyma. Это привело к появлению сомнений в желании MIT и ADL видеть как MACSYMA процветает. Разработка Macsyma продолжалась в Symbolics несмотря на факт, что это выглядело как отступление от продаж Лисп-машин, которые Symbolics считали своим главным делом. Продажи Macsyma и возросшие благодаря ей продажи Лисп-машин в течение двух лет достигли 10 % общего объёма продаж в Symbolics. Несмотря на сопротивления многих в Symbolics, MACSYMA была выпущена для компьютеров DEC VAX-11 и рабочих станций Sun Microsystems с помощью Berkeley Franz Lisp в 1986 и 1987.

Однако, проблемы в Symbolics и в самой группе MACSYMA привели к закату Macsyma. В первой половине 1986 года, выручка от MACSYMA была ниже чем в первой половине 1985, и это на фоне растущей индустрии. В это время программы SMP фирмы Wolfram и Waterloo Maple росли, хотя MACSYMA легко превосходила эти другие пакеты в символьной математике.

В 1982 году, под давлением участника проекта Ричарда Фейтмана, в то время работавшего в Калифорнийском университете в Беркли, MIT лицензировал копию Macsyma Департаменту энергетики США, одному из главных спонсоров разработки Macsyma. Эта версия называлась DOE Macsyma. Symbolics MACSYMA столкнулась с потерей правительственного рынка в пользу версии DOE, что было солидной долей. Этот 'раскол' способствовал разногласиям в правительстве о том имел ли право какой-либо университет лицензировать третьим лицам технологию разработанную в университете и финансируемую федеральным правительством. Этот вопрос был решён положительно исполнительным приказом президента Рейгана примерно в 1986 году (приблизительно) в попытке улучшить национальную технологическую конкурентоспособность.

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

Главной слабостью MACSYMA был численный анализ. Выполнение символьной математики было геркулесовой задачей, но численные возможности были критичными для получения доли на гораздо большем рынке инженерных и простейших научных расчётов. В MIT MACSYMA использовались численные библиотеки IMSL (сегодня Visual Numerics), но эта связь была разорвана, когда MACSYMA перешла к Symbolics. Лисп-программисты в Symbolics как правило считали, что численный анализ был устаревшей технологией, которая была не важна для приложений на Лисп, так что они отказались вкладывать в неё средства. Арифметика с плавающей запятой двойной точности в MACSYMA (в PC версии) была примерно в шесть раз медленнее чем на FORTRAN. Также матрицы в MACSYMA были реализованы как списки списков, что стоило ещё вероятно коэффициент 5-10 в скорости для ключевых алгоритмов. MACSYMA не имела многих базовых алгоритмов численной линейной алгебры, таких как LU-разложение.

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

К 1989 году Петти стало ясно, что Symbolics разрушится из‑за слабой стратегии развития продуктов, и что она утянет MACSYMA с собой:

  1. Программное обеспечение Symbolics было разработано для MIT-class software developers без достаточных уступок другим.
  2. Программное обеспечение Symbolics было высочайшего уровня, но теряло свою долю рынка из‑за зависимости от очень дорогостоящего оборудования.
  3. Перейдя в середине 1980‑х на VLSI hardware, Symbolics перешла с 36‐битного слова на 40‐битное, без рыночного обоснования огромной стоимости разработки этого изменения.

Из-за отсутствия взаимодействия с MIT Macsyma не могла собрать команду, заинтересованную в выкупе прав на её дальнейшую разработку. После вынужденного безмолвия о судьбе продукта с 1986 года, в конце 1988 года Петти попытался убедить Symbolics изменить стратегию на software-only или board-level strategy; но четвёртый по счёту президент компании за четыре года не хотел ничего слышать об этом. В 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, который значительно увеличил скорость работы большинства числовых вычислений линейной алгебры.

Ссылки[править | править вики-текст]