Macsyma - Macsyma

Macsyma ( / м æ к s ɪ м ə / , «Проект Символического манипулятор MAC в») является одним из старейших общего назначения систем компьютерной алгебры до сих пор широко используются. Первоначально он разрабатывался с 1968 по 1982 год в MIT 's Project MAC .

В 1982 году Macsyma получила лицензию от Symbolics и стала коммерческим продуктом. В 1992 году Symbolics Macsyma была выделена в MACSYMA, Inc., которая продолжала развиваться Macsyma до 1999 года Эта версия все еще доступна для Microsoft «s Windows XP операционной системы.

Версия MIT Macsyma 1982 года оставалась доступной для ученых и правительственных агентств США, и она распространяется Министерством энергетики США (DOE). Эту версию, DOE Macsyma, поддерживал Билл Шелтер . Под названием Maxima он был выпущен под лицензией GPL в 1999 году и остается на активной поддержке.

Разработка

Проект был инициирован в июле 1968 года Карлом Энгельманом , Уильямом А. Мартином (интерфейс, отображение выражений, полиномиальная арифметика) и Джоэлом Мозесом (упрощение, неопределенная интеграция : эвристика / Риш). Мартин руководил проектом до 1971 года, а Моисей руководил им в течение следующего десятилетия. Энгельман и его сотрудники уехали в 1969 году, чтобы вернуться в корпорацию MITER . Некоторый код взят из более ранних работ, в частности, упрощитель Кнута Корсволда. Позже основными участниками ядра математической машины были: Яннис Августис ( специальные функции ), Дэвид Бартон (решение алгебраических систем уравнений ), Ричард Боген ( специальные функции ), Билл Дубюк ( неопределенное интегрирование , пределы, степенные ряды, теория чисел , специальные функции. , функциональные уравнения, сопоставление с образцом , знаковые запросы, Грёбнер , TriangSys), Ричард Фатман ( рациональные функции , сопоставление с образцом , произвольная точность с плавающей точкой ), Майкл Генесрает (сравнение, база знаний), Джефф Золотой (рационализатор, язык, система), RW Gosper (определенное суммирование , специальные функции , упрощение, теория чисел ), Карл Хоффман (общий упрощитель, макросы, некоммутативный упрощитель , порты на Multics и LispM , система, визуальный редактор уравнений ), Чарльз Карни (построение графиков), Джон Кулп, Эд Лафферти ( решение ОДУ , специальные функции ), Ставрос Макракис ( действительные / мнимые части , компилятор, система), Ричард Павел (указательное тензорное исчисление , пакет общей теории относительности) , обыкновенные и дифференциальные уравнения в частных производных ), Дэвид А. Спир ( Грёбнер ), Барри Трагер (алгебраическое интегрирование, факторинг , Грёбнер ), Пол С. Ван (полиномиальная факторизация и НОД , комплексные числа , пределы, определенное интегрирование , генерация кода Fortran и LaTeX ), Дэвид Ю.Ю. Юн (полиномиальные НОД ), Гейл Захариас ( Грёбнер ) и Рич Зиппель ( степенные ряды , полиномиальная факторизация , теория чисел , комбинаторика ).

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

Коммерциализация

В 1979 году в ответ на запрос Ричарда Фейтмана, тогда профессора Калифорнийского университета в Беркли , Массачусетский технологический институт предоставил временную лицензию на код Macsyma. Это было почти сразу же реализовано на новом компьютере VAX-11/780 с использованием диалекта Maclisp, Franz Lisp , написанного группой Fateman. Массачусетский технологический институт неохотно лицензировал версии VAX Macsyma из Беркли примерно 50 университетам, начиная с Калифорнийского технологического института, при условии, что лицензии будут отозваны после завершения переговоров о надлежащей лицензии. Действительно, это произошло, когда переговоры с Symbolics (см. Ниже) были завершены. Symbolics не хотела лицензировать продукт VAX, так как VAX составлял конкурентоспособное оборудование для их собственных машин Lisp и поэтому подавлял программное обеспечение VAX в течение пяти лет. Калифорнийский университет в Беркли также представил копии Macsyma на системах на базе Motorola 68000 , в первую очередь на рабочих станциях Sun. Символика подавляла и их. В то же время Fateman работал над изменением (теперь отозванной) временной лицензии Macsyma на более постоянную.

В конечном итоге Министерство энергетики США наложило на MIT требование о выпуске копии в библиотеку Национального центра программного обеспечения для энергетики (NESC) в 1982 году, разрешив при этом MIT устанавливать ограничения с точки зрения высокой цены и запрета на распространение. Это было сделано для защиты передачи технологии Symbolics. (Такие ограничения были сняты с 2002 года или около того.) Эта так называемая Macsyma DOE была переписана в Массачусетском технологическом институте на диалекте, предшествовавшем Common Lisp, под названием NIL lisp , не полностью реализованном в VAX / VMS , непопулярной системе в академических кругах, где Berkeley VAX Unix был обычным явлением. DOE Macsyma легла в основу гораздо более поздней системы Maxima с открытым исходным кодом .

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

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

Павел руководил подразделением Macsyma в Symbolics до начала 1986 года. Во второй половине 1986 года Ричард Петти стал менеджером бизнеса Macsyma, чтобы сократить продажи и избежать конфликтов с сотрудниками в Symbolics. Macsyma сократила штат, но расширила свои продажи и маркетинг, а также сосредоточила внимание разработчиков на функциях, которые просили клиенты. (Например, базовый алгоритм Спира-Захариаса ( Грёбнера ), реализованный в 1970-х годах в Массачусетском технологическом институте, не был установлен в поставляемой Macsyma до 1987 года.) В 1987 году годовые доходы Macsyma примерно удвоились. MACSYMA стала более удобной для пользователя: документация и он-лайн справка были реорганизованы и расширены; некоторые имена команд были изменены, чтобы стать более мнемоническими. Система была перенесена на Common Lisp ( Кент М. Питман ). Петти заявил руководству Symbolics, что Macsyma - это «стратегическая бизнес-единица», которую следует финансировать на основе ее производительности и потенциала, а не на основе перспектив основного бизнеса по производству рабочих станций. Однако Symbolics сократила численность персонала Macsyma после этого периода резкого роста; Symbolics пыталась использовать Macsyma как крошечную дойную корову, чтобы покрыть убытки бизнеса рабочих станций, которые в 30 раз превышали его размер.

Самым большим недостатком Macsyma был численный анализ. Освоение символической математики было титанической задачей; но числовые возможности были критически важны для выхода на гораздо более крупные инженерные и более мелкие научные рынки. В Массачусетском технологическом институте у Macsyma была ссылка на числовые библиотеки IMSL (теперь продукт Perforce Software ), но эта ссылка была разорвана, когда Macsyma перешла на Symbolics. Разработчики Lisp в Symbolics в целом полагали, что численный анализ - это старая технология, которая не важна для приложений Lisp, поэтому они отказались инвестировать в нее. Арифметика двойной точности в Macsyma (в версии для ПК ) была примерно в шесть раз медленнее, чем Fortran. Также матрицы Macsyma были реализованы в виде списков списков, что стоило еще одного фактора, возможно, в 5–10 раз для скорости ключевых алгоритмов. У Macsyma не было многих основных алгоритмов числовой линейной алгебры, таких как LU-разложение .

В 1987-88 годах группа Macsyma пыталась создать Macsyma для ПК с Gold Hill Lisp . (Ранее Symbolics закрыла свой собственный проект по созданию компилятора Lisp для стандартных компьютеров, чтобы избежать конкуренции с продажами машин Lisp. Это был спорный шаг, который, по некоторым сведениям, был предпринят без одобрения высшего руководства. Symbolics также отказалась сотрудничать с Sun сделала Lisp доступным на рабочих станциях Sun по той же причине.) Gold Hill Lisp был слишком нестабильным, а его слабая архитектура не позволяла Gold Hill устранять ошибки. Это был серьезный провал Macsyma. Это означало, что Macsyma не могла отвечать на ПК, когда Mathematica появилась на компьютерах Apple в середине 1988 года. Macsyma появилась на ПК с Windows в августе 1989 года с использованием CLOE Lisp от Symbolics. Однако персонал Macsyma был слишком мал и не обладал набором навыков, необходимых для добавления графики, интерфейса ноутбука и улучшенных числовых данных, которые были у Mathematica .

К 1989 году Петти стало ясно, что Symbolics рухнет из-за плохой стратегии продукта и что Macsyma унесет с собой. (Некоторые проблемы с продуктом: (1) программное обеспечение Symbolics было разработано для разработчиков программного обеспечения класса MIT без достаточных уступок другим. (2) Программное обеспечение мирового класса Symbolics теряло долю на рынке из-за зависимости от очень дорогостоящего оборудования. (3) При переходе на оборудование СБИС в середине 1980-х, Symbolics перешла с 36-битного размера слова на 40-битный, без оправдания со стороны рынка огромных затрат на разработку этого изменения.) Macsyma не смогла собрать закупочную единицу. наша команда из-за отсутствия сотрудничества с MIT. После того, как с 1986 года в достаточной мере умалчивал о проблемах, связанных с продуктом, Петти в конце 1988 года попытался убедить Symbolics принять стратегию, касающуюся только программного обеспечения или уровня платы; но четвертый президент через четыре года ничего об этом не услышит. В 1990 году Петти покинул Symbolics и устроился на стартап.

Macsyma, Inc.

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

В начале 1995 года компания выпустила Macsyma 2.0.5 со многими улучшениями: в большом тесте Вестера по символьной математике Macsyma 2.0.5 набрала на 10% больше баллов, чем Maple, и на 15% лучше, чем Mathematica. Хотя Macsyma 2.0.5 все еще была очень медленной в вычислениях, в ней был значительно усилен портфель программ численного анализа и линейной алгебры. (В 1996 году Macsyma добавила LAPACK, который значительно увеличил скорость большинства числовой линейной алгебры.)

В команду разработчиков в это время входили Джефф Голден (язык, компилятор и т. Д.), Билл Госпер (специальные функции, суммирование), Говард Кэннон (пользовательский интерфейс, оптимизация) и несколько консультантов. Билл Дубюк работал над интеграцией, решением уравнений, базой данных и оптимизацией. Кристофер Стейси и Дэвид Х. Вуд добавили в MATLAB функциональность языка и матрицы. Другие разработчики внесли большой вклад в численный анализ, графику и справочные системы.

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

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

Доступные версии

Существует также версия под лицензией GPL под названием Maxima , основанная на версии DOE Macsyma 1982 года, впоследствии адаптированная для Common Lisp и усовершенствованная Уильямом Шелтером . Он находится в стадии активной разработки и может быть скомпилирован под несколько систем Common Lisp . Доступны загружаемые исполняемые файлы для Linux , Microsoft Windows , Mac OS X и других систем, включая графический пользовательский интерфейс . Maxima не включает многие из многочисленных функций, добавленных в период коммерческой разработки между 1982–1999 гг., Но представляет собой текущую бесплатную открытую кодовую базу, которая включает в себя множество дополнительных функций, несколько альтернативных интерфейсов и работает с рядом движков Common Lisp. . Хотя это привело к некоторой несовместимости между Macsyma и Maxima, программы, написанные на алгебраическом языке Macsyma, часто можно запускать с небольшими изменениями в любой системе.

Рекомендации

Внешние ссылки