Macsyma - Macsyma

Macsyma ( / m ć k s ɪ m ə / ; „Projekt symboliczny manipulator Mac”) jest jednym z najstarszych ogólnego zastosowania systemów algebry komputerowej jeszcze w powszechnym użyciu. Był początkowo rozwijany od 1968 do 1982 roku na MIT „s Projektu MAC .

W 1982 roku Macsyma uzyskała licencję na Symbolics i stała się produktem komercyjnym. W 1992 roku Symbolics macsyma została wydzielona do macsyma, Inc., które rozwijały się aż do roku 1999. To macsyma wersja jest nadal dostępny dla Microsoft „s Windows XP system operacyjny.

Wersja MIT Macsyma z 1982 r. pozostała dostępna dla naukowców i amerykańskich agencji rządowych, a jej dystrybucją zajmuje się Departament Energii Stanów Zjednoczonych (DOE). Ta wersja, DOE Macsyma, była zarządzana przez Billa Scheltera . Pod nazwą Maxima została wydana na licencji GPL w 1999 roku i pozostaje pod aktywną konserwacją.

Rozwój

Projekt został zainicjowany w lipcu 1968 roku przez Carla Engelmana , Williama A. Martina (nakładka, ekspresja, arytmetyka wielomianowa) i Joela Mosesa (uproszczenie, całkowanie nieokreślone : heurystyka/Risch). Martin kierował projektem do 1971 roku, a Moses kierował nim przez następną dekadę. Engelman i jego zespół odeszli w 1969 roku, by powrócić do The MITER Corporation . Część kodu pochodzi z wcześniejszych prac, w szczególności z uproszczenia Knuta Korsvolda. Późniejszymi głównymi autorami silnika matematycznego rdzenia byli: Yannis Avgoustis ( funkcje specjalne ), David Barton (rozwiązywanie układów algebraicznych równań ), Richard Bogen ( funkcje specjalne ), Bill Dubuque ( całkowanie nieokreślone , granice, szeregi potęgowe, teoria liczb , funkcje specjalne , równania funkcyjne, dopasowywanie wzorców , zapytania o znak, Gröbner , TriangSys), Richard Fateman ( funkcje wymierne , dopasowywanie wzorców , zmiennoprzecinkowa dowolna precyzja ), Michael Genesereth (porównanie, baza wiedzy), Jeff Golden ( prostownik , język, system), RW Gosper ( sumowanie określone , funkcje specjalne , uproszczenia, teoria liczb ), Carl Hoffman ( prostownik ogólny, makra, nieprzemienny prostownik , porty do Multics i LispM , system, wizualny edytor równań ), Charles Karney (kreślenie), John Kulp, Ed Lafferty ( rozwiązanie ODE , funkcje specjalne ), Stavros Macrakis (części rzeczywiste/urojone , kompilator, system), Richard Pavelle ( indeksowy rachunek tensorowy , pakiet ogólnej teorii względności , równania różniczkowe zwyczajne i cząstkowe ), David A. Spear ( Gröbner ), Barry Trager ( całkowanie algebraiczne, faktoring , Gröbner ), Paul S. Wang ( faktoryzacja wielomianowa i NWD , liczby zespolone , granice, całkowanie oznaczone , generowanie kodu Fortran i LaTeX ), David YY Yun (wielomianowe GCD ), Gail Zacharias ( Gröbner ) i Rich Zippel ( szereg potęgowy , faktoryzacja wielomianowa , teoria liczb , kombinatoryka ).

Macsyma została napisana w Maclisp i była, w niektórych przypadkach, kluczowym motywatorem do ulepszania tego dialektu Lispu w obszarach obliczeń numerycznych, wydajnej kompilacji i projektowania języka. Sam Maclisp działał głównie na komputerach PDP-6 i PDP-10 , ale także na Multics OS i na architekturach Lisp Machine . Macsyma była jednym z największych, jeśli nie największym programem Lisp tamtych czasów.

Komercjalizacja

W 1979 roku, w odpowiedzi na prośbę Richarda Fatemana, ówczesnego profesora na Uniwersytecie Kalifornijskim w Berkeley , MIT dostarczył tymczasową licencję na kod Macsyma. Niemal natychmiast pojawiło się to na nowym komputerze VAX-11/780, używając dialektu Maclisp, Franza Lisp , napisanego przez grupę Fatemana. MIT niechętnie licencjonował wersje VAX Macsyma z Berkeley około 50 uczelniom, zaczynając od Caltech, pod warunkiem, że licencje zostaną cofnięte po zakończeniu negocjacji w sprawie właściwej licencji. Rzeczywiście, stało się to, gdy negocjacje z Symbolics (patrz poniżej) zostały zakończone. Symbolics był niechętny licencjonowaniu produktu VAX, ponieważ VAX stanowił konkurencyjny sprzęt do swoich własnych maszyn Lisp i dlatego przez pięć lat nie korzystał z oprogramowania VAX. UC Berkeley przedstawił również kopie Macsyma na systemy oparte na Motorola 68000 , w szczególności na stacjach roboczych Sun. Symbolika również je tłumiła. W tym samym czasie Fateman pracował nad zmianą (cofniętej) tymczasowej licencji na Macsymę na coś bardziej trwałego.

Ostatecznie Departament Energii Stanów Zjednoczonych nałożył na MIT wymóg udostępnienia kopii w bibliotece National Energy Software Center (NESC) w 1982 r., jednocześnie pozwalając MIT na wprowadzenie ograniczeń w postaci wysokiej ceny i braku redystrybucji. Miało to na celu ochronę transferu technologii do Symbolics. (Takie ograniczenia zostały zniesione, mniej więcej w 2002 r.) Ta tak zwana DOE Macsyma została przepisana w MIT w dialekcie przed Common Lisp zwanym NIL lisp , niekompletnie zaimplementowanym w VAX/VMS , niepopularnym systemie w środowisku akademickim, gdzie Berkeley VAX Unix był powszechny. DOE Macsyma stanowiła podstawę znacznie późniejszego systemu Maxima o otwartym kodzie źródłowym .

W 1981 r. Moses i Richard Pavelle , członek personelu MIT i zwolennik zastosowania Macsyma w inżynierii i nauce, podjęli próbę utworzenia firmy, która miałaby komercjalizować Macsymę. Pavelle napisał wiele prac naukowych przy użyciu Macsyma. Z dokumentami w ręku Pavelle i Moses zwrócili się do kilku firm venture capital, które wykazały zainteresowanie finansowaniem startupu Macsyma. Gdy potencjalne transakcje zbliżają się do finalizacji, MIT nagle zdecydował, że personel MIT nie powinien czerpać bezpośrednich korzyści z rozwoju MIT. Na początku 1982 r. Macsyma została licencjonowana przez MIT firmie Arthur D. Little , Inc. (ADL), która stała się pośrednikiem Macsyma i wkrótce udzieliła licencji na Macsymę firmie Symbolics pod koniec 1982 r. Moses został wyparty przez ADL, a Pavelle został szef oddziału Macsyma w Symbolics. Było oczywiste, że Symbolics nie był tak bardzo zainteresowany kodem, jak utrzymaniem Macsymy poza katalogiem oprogramowania swojego konkurenta w biznesie Lisp Machine, LMI . Porozumienie biznesowe pomiędzy Symbolics i Arthur D. Little wymagało uiszczenia tantiem na rzecz ADL w wysokości 15% sprzedaży Macsyma brutto. Ta rodzina królewska doprowadziła do spekulacji na temat pragnienia MIT i ADL, aby zobaczyć, jak MACSYMA prosperuje. Rozwój Macsymy był kontynuowany w Symbolics pomimo faktu, że był postrzegany jako odejście od sprzedaży maszyn Lisp , którą Symbolics uważał za swój główny biznes, pomimo faktu, że sprzedaż Macsyma i sprzedaż lewarowana Lisp Machines osiągnęły 10% ogólnej sprzedaż w Symbolics w ciągu dwóch lat. Pomimo oporu ze strony Symbolics, Macsyma została wydana na komputery DEC VAX i stacje robocze Sun przy użyciu Franza Lispa firmy Berkeley na początku do połowy lat 80-tych.

Jednak problemy w Symbolics związane ze sprzedażą Macsymy na komputerach innych niż Symbolics doprowadziły ostatecznie do spadku sprzedaży Macsyma. W pierwszej połowie 1986 r. przychody Macsymy były niższe niż w pierwszej połowie 1985 r. w rozwijającej się branży. Program SMP Wolframa i Waterloo Maple rozwijały się w tym czasie, chociaż MACSYMA z łatwością przewyższała te inne pakiety pod względem matematyki symbolicznej.

Pavelle kierował działem Macsyma w Symbolics do początku 1986 roku. W drugiej połowie 1986 roku Richard Petti został kierownikiem biznesu Macsyma, aby ograniczyć sprzedaż i uniknąć konfliktów z pracownikami Symbolics. Macsyma zmniejszyła liczbę pracowników, ale rozszerzyła swoje siły sprzedaży i marketingu oraz skupiła programistów bardziej na funkcjach, o które prosili klienci. (Na przykład algorytm Spear-Zacharias ( Gröbner ) zaimplementowany w latach 70. w MIT nie był instalowany w wysyłkowej Macsyma do 1987 r.) W 1987 r. roczne przychody Macsyma wzrosły mniej więcej dwukrotnie. MACSYMA stała się bardziej przyjazna dla użytkownika: dokumentacja i pomoc on-line zostały zreorganizowane i rozszerzone; niektóre nazwy poleceń zostały zmienione na bardziej mnemoniczne. System został przeniesiony do Common Lisp (przez Kent M. Pitman ). Petti przekonywał kierownictwo Symbolics, że Macsyma jest „strategiczną jednostką biznesową”, która powinna być finansowana w oparciu o jej wydajność i potencjał, a nie o perspektywy głównego biznesu stacji roboczych. Jednak Symbolics zmniejszył liczbę pracowników Macsyma po tym okresie gwałtownego wzrostu; Firma Symbolics próbowała wykorzystać Macsymę jako małą dojną krowę, aby sfinansować straty związane z 30-krotnie większym biznesem stacji roboczych.

Największą słabością produktową Macsymy była jej analiza numeryczna. Opanowanie matematyki symbolicznej było herkulesowym zadaniem; ale możliwości numeryczne miały kluczowe znaczenie dla uzyskania części znacznie większej inżynierii i niższych rynków naukowych. Na MIT Macsyma miała łącze do bibliotek numerycznych IMSL (obecnie produkt Perforce Software ), ale łącze to zostało zerwane, gdy Macsyma przeniosła się na Symbolics. Deweloperzy Lispu w Symbolics ogólnie wierzyli, że analiza numeryczna jest starą technologią, która nie jest ważna dla aplikacji Lisp, więc odmówili inwestowania w nią. Arytmetyka podwójnej precyzji w Macsyma (w wersji na PC ) była około sześć razy wolniejsza niż Fortran. Również macierze Macsyma zostały zaimplementowane jako listy list, co kosztowało kolejny czynnik, prawdopodobnie 5-10 szybkości dla kluczowych algorytmów. Macsyma nie miała wielu podstawowych algorytmów numerycznej algebry liniowej, takich jak dekompozycja LU .

W latach 1987-88 grupa Macsyma próbowała zbudować komputer Macsyma z Gold Hill Lisp . (Wcześniej Symbolics zlikwidowało własny projekt budowy kompilatora Lisp dla standardowych komputerów, aby uniknąć konkurowania ze sprzedażą maszyn Lisp. Było to kontrowersyjne posunięcie, które, według niektórych relacji, zostało podjęte bez zgody kierownictwa wyższego szczebla. Symbolics również odmówił współpracy z Sun udostępnił Lisp na stacjach roboczych Sun z tego samego powodu.) Gold Hill Lisp był zbyt niestabilny, a jego słaba architektura uniemożliwiła Gold Hillowi wyeliminowanie błędów. To była kluczowa porażka Macsymy. Oznaczało to, że Macsyma nie mogła odpowiadać na komputerach PC, gdy Mathematica pojawiła się na komputerach Apple w połowie 1988 roku. Macsyma pojawiła się na komputerach z systemem Windows w sierpniu 1989 roku, używając CLOE Lisp firmy Symbolics. Jednak personel Macsyma był zbyt mały i brakowało mu umiejętności potrzebnych do dodania grafiki, interfejsu notebooka i lepszych liczb, które miała Mathematica .

Do 1989 roku Petti było jasne, że Symbolics ulegnie implozji z powodu złej strategii produktu i że zabierze ze sobą Macsymę. (Niektóre problemy z produktami: (1) Oprogramowanie Symbolics zostało zaprojektowane dla programistów klasy MIT bez wystarczających ustępstw dla innych. (2) Światowej klasy oprogramowanie Symbolics traciło udział w rynku z powodu uzależnienia od bardzo drogiego sprzętu. (3) Przechodząc na sprzęt VLSI w połowie lat osiemdziesiątych, Symbolics przekonwertował rozmiar słowa z 36-bitowego na 40-bitowy, bez uzasadnienia ze strony rynku dla ogromnych kosztów rozwoju tej zmiany.) Macsyma nie mógł złożyć zakupu. nasz zespół z powodu braku współpracy z MIT. Po milczeniu od 1986 r. w kwestii produktów, Petti próbował pod koniec 1988 r. przekonać Symbolics do przyjęcia strategii opartej wyłącznie na oprogramowaniu lub na poziomie tablicy; ale czwarty prezydent w ciągu czterech lat nic o tym nie słyszał. W 1990 roku Petti odszedł z Symbolics, by rozpocząć działalność.

Macsyma, Inc.

Macsyma, Inc. została założona w 1992 roku przez Russella Noftskera (prezesa, który był współzałożycielem Symbolics ) i Richarda Petti (prezesa, który przez jakiś czas odwrócił się od Macsyma w Symbolics), zbierając fundusze i kupując prawa do Macsyma od chore Symboliki. Chociaż rynek szybko się rozwijał, sprzedaż Macsyma w 1991 i na początku 1992 nadal gwałtownie spadała. Udział Macsymy w rynku symbolicznego oprogramowania matematycznego spadł z 70% w 1987 r. do 1% w 1992 r. Do 1993 r. wzrost rynku zwolnił, a rynek ujednolicił się w oparciu o Mathematicę i Maple. Konkurenci mieli personel ds. rozwoju, który był 4-8 razy większy niż Macsyma Inc. w latach 90. XX wieku.

Na początku 1995 roku firma wypuściła Macsymę 2.0.5 z wieloma ulepszeniami: W dużym teście matematyki symbolicznej Westera Macsyma 2.0.5 uzyskała wynik 10% lepszy niż Maple i 15% lepszy niż Mathematica. Chociaż Macsyma 2.0.5 była wciąż bardzo powolna w zakresie obliczeń numerycznych, miała znacznie wzmocnione portfolio analiz numerycznych i procedur algebry liniowej. (W 1996 Macsyma dodał LAPACK, który znacznie zwiększył szybkość większości numerycznej algebry liniowej.) .

Zespół programistów w tym czasie obejmował Jeff Golden (język, kompilator itp.), Bill Gosper (funkcje specjalne, sumowanie), Howard Cannon (interfejs użytkownika, optymalizacja) i kilku konsultantów. Bill Dubuque pracował nad integracją, rozwiązywaniem równań, bazą danych i optymalizacją. Christopher Stacy i David H. Wood dodali funkcjonalność języka i macierzy MATLAB . Inni programiści wnieśli duży wkład w analizę numeryczną, grafikę i systemy pomocy.

Firma nie mogła w nieskończoność przewyższać 4-8 razy większych sztabów i odwracać dynamiki rynku. Udział w rynku nie wzrósł powyżej 2%, ponieważ konkurencja była okopana na wszystkich kluczowych klientach, przejście na nowy produkt jest bardzo kosztowne w czasie nauki, a wzrost rynku spadł. Ponadto, począwszy od 1992 lub 1993 roku, Mathsoft zaangażował się w pyrrusową strategię wydawania 10 milionów dolarów na przesyłki reklamowe po bardzo niskich cenach, co przyniosło znaczną część pozostałego wzrostu na symbolicznym rynku matematyki, właśnie wtedy, gdy Macsyma Inc. walczyła o odbudowę swojego świata produkt klasy.

W 1999 roku Macsyma została przejęta przez Tenedos LLC , spółkę holdingową, która wcześniej kupiła Symbolics. Spółka holdingowa nie wydała ani nie odsprzedała Macsyma, ale Macsyma jest nadal dystrybuowana przez Symbolics dla wersji Microsoft Windows do Windows XP .

Dostępne wersje

Istnieje również wersja na licencji GPL , o nazwie Maxima , oparta na wersji DOE Macsyma z 1982 r., następnie dostosowana do Common Lisp i ulepszona przez Williama Scheltera . Jest aktywnie rozwijany i może być skompilowany w kilku systemach Common Lisp . Dostępne są pliki wykonywalne do pobrania dla systemów Linux , Microsoft Windows , Mac OS X i innych, w tym graficzne interfejsy użytkownika . Maxima nie zawiera wielu z licznych funkcji dodanych w okresie rozwoju komercyjnego w latach 1982-1999, ale jest aktualną, darmową, otwartą bazą kodu, która zawiera wiele dodatkowych funkcji, kilka alternatywnych interfejsów i współpracuje z wieloma silnikami Common Lisp . Chociaż spowodowało to pewne niezgodności między Macsymą i Maximą, programy napisane w języku algebraicznym Macsyma często mogą być uruchamiane, z niewielkimi zmianami, w obu systemach.

Bibliografia

Linki zewnętrzne