Валерий Очков
Очень часто посетители разного рода форумов задают вопросы, касающееся выбора программы для расчетов, просят дать сравнение математических программ и отметить их плюсы и минусы. Такие вопросы инициируют всплески дискуссий, где спорящие быстро забывают о спросившем и о его «расчетных» потребностях и начинают бурно обсуждать качественные и количественные характеристики пакетов, которые у всех на слуху: Mathcad, MatLab, Maple, Mathematica и др.
Своеобразная лобовая попытка «количественного» сравнения этих пакетов была предпринята, например, на сайте пользователей MatLab (www.matlab.ru). Там велся онлайновый опрос посетителей – спрашивалось, какой пакет они используют для расчетов.
Естественно, полоска, визуализирующая процент приверженцев того или иного пакета, у слова «MatLab» всегда была и осталась самая длинная – ведь на этот форум в основном и заходят пользователи MatLab. Остальные либо заблудились, либо зашли на «чужой» форум из-за любопытства – что, мол, там обсуждается – такие же проблемы, с какими я сам сталкиваюсь в своем пакете, или что-то новенькое… Но все прекрасно понимают, что опрос на форуме MatLab – это никакой не опрос, а чистой воды пиаровская акция (в это, увы, превращаются почти все опросы). Ведь, с таким же успехом можно судить о доходах и потребительских предпочтениях россиян по результатам опроса москвичей у входа в дорогой супермаркет. Упоминаем мы об этом опросе лишь потому, что там опять фигурировали «Mathcad, MatLab, Maple, Mathematica и др.».
Но, во-вторых и главных. В ряду вышеперечисленных программ нет самой востребованной программы расчетов на персональных компьютерах – электронных таблиц. А ведь, 90 и более процентов всех компьютерных расчетов проводятся в среде этого неотъемлемого компонента электронного инженерного офиса. Мы пока не будем говорить о сложности решаемых задач. Но даже если в наше статистике учитывать некий коэффициент сложности (Excel – 1, Mathcad – 2… Mathematica – 10, к примеру), то все равно тот же Excel забьет все остальное. Даже без учета бухгалтерских расчетов.
А теперь поговорим о качественной стороне вопроса.
Можно утверждать, что беда пакета Mathcad (беда в том смысле, что его все время пытаются сравнить с пакетами MatLab, Maple, Mathematica, а самих пользователей Mathcad уговаривают перейти на более «серьезные» пакеты) в… его названии – в этом самом «Math», вернее только в «Ma». Пакет Mathcad (и на этом настаивают его разработчики) нужно сравнивать не с пакетами MatLab, Maple, Mathematica, а с электронными таблицами. Вернее сказать так, Mathcad создавался как программное средство, альтернативное электронным таблицам. И не тем, какие имеются сейчас, а тем, какие были на момент создания первых версий Mathcad. Хотя те органические недостатки электронных таблиц, которые пытались обойти (нивелировать) разработчики Mathcad, остались и в последних версиях Excel. Обрисуем их вкратце.
Электронные таблицы подкупают своей простотой и это одна из причин их высокой популярности: берем содержимое двух ячеек (ткнем в них курсором мыши), сложим их, а ответ (сумму) поместим вот тут! На клавиатуре при этом нажимается всего лишь пара клавиш – «равно» и «плюс». Но эта простота, как это часто случается, оказывается «хуже воровства»: в расчетах, созданных с помощью электронных таблиц, не может разобраться не только другой человек, желающий развить их или просто проверить правильность заложенных методик и формул, но и часто сам разработчик. Этот недостаток пытались исправить, интегрированием в электронные таблицы языков программирования (VBA для Excel, например) и других полезных инструментов. Но при этом получалось так, что «от чего ушли – к тому и пришли»: электронные таблицы, как, впрочем, и наш Mathcad создавались как прямая альтернатива языкам программирования – тому же BASIC’у, например. Закрытость расчетов в электронных таблицах очень мешает их активному использованию (активному, в смысле не простоты использования, а возможности изучения, проверки и модернизации) в первую очередь в сфере образования. А это основной потребитель математических пакетов. Бухгалтеру или инженеру достаточно ввести данные и считать ответ. Преподавателю же со студентом ответ, как правило, не очень и нужен – важно изучение пути к ответу. Написать одной строкой в текстовом режиме более-менее сложную формулу в ячейку Excel или строку VBA еще можно, но проанализировать ее, показать ее студентам для иллюстрации физического явления или технологического процесса, связанного с этой формулой, уже невозможно. В среде Maple, например, формула вводится тоже в текстовом режиме, но тут же переводится в вид, к которому человечество привыкло задолго до появления компьютеров. В среде Mathcad этап текстового ввода формул исключен – пользователь сразу «набивает» и редактирует «многоэтажную» формулу со всеми привычными математическими символами. За это Mathcad и хвалят (хвалят те, кто набил руку на таком «графическом» способе вводе формул), и ругают. Ругают, естественно, те, кто не так и не оторвался от текстового (DOS-овского) интерфейса. А можно сказать и так. Фирмы, оставшиеся верными текстовому режиму ввода информации (формулы в матпакетах), были дальновидными, даже не осознавая это. Дело в том, что текст – это пока основной способ оперативной передачи данных в сети Интернет.
Итак, первая «ахиллесова пята» Mathcad’а – в его названии, которое как бы авансом приписывает эту программу в «элитный клуб» математических пакетов. Вторая беда в том, что разработчики Mathcad, может быть, из-за желания отработать этот аванс все время «подтягивали» эту программу к математическим пакетам, встраивая в него все новые и новые математические инструменты. Многие из них оказались очень полезными и востребованными, а другие только отягощали пакет. Так, например, в Mathcad 11 вставлены инструменты решения дифференциальных уравнений в частных производных, хотя все понимают, что более-менее сложную задачу этими инструментами не решить. Можно только показать студентам, например, что это такое дифференциальное уравнение в частных производных и как можно подойти к эго решению. Для сложных и реальных задач нужно брать другие пакеты или даже (и скорее всего) разрабатывать индивидуальные алгоритмы, что можно прекрасно делать и в среде Mathcad. Вот и начинают сравнивать пакет Mathcad с Maple или MatLab, где эти инструменты более развиты. И сравнение это, конечно, не в пользу Mathcad. В этом аспекте (включение в Mathcad специализированных, а не общематематических инструментов) разработчики Mathcad как бы сами подставляют себя под огонь критики и толкают пакет на тупиковый путь развития – на путь, который уже давно «истоптали» «настоящие» матпакеты». Бьет это и по традиционным пользователям Mathcad, которые не так сильны в математике и не чувствуют особой нужды в ней для решения своих рутинных задач. Новые сложные инструменты новых версий Mathcad, часто только смущают таких пользователей, лишний раз как бы упрекая их в незнании каких-то специальных разделов математики. Да и накладно все это в финансовом плане – новые версии Mathcad с несущественными изменениями появляются чуть ли не каждый год.
Здесь представляется оптимальным не прицеплять к Mathcad все новые и новые специализированные инструменты (для решения ДУ в частных производных, например, – см. выше), а идти уже испробованным путем создания отдельных специализированных приложений, которые пользователи при необходимости могли бы приобретать отдельно (см. перечень таких приложений для Mathcad – http://www.mathcad.com/library/Electronic_Books.asp). Еще раз подчеркнем, что некоторые специфические функции Mathcad, открывают некий «ящик Пандоры», и вынуждают Mathcad претендовать на то, что ему никогда не принадлежало.
У фирмы MathSoft – у разработчика Mathcad есть, кстати, программный продукт без особых «математических» претензий, но со всеми достоинствами популярной и востребованной программы для рутинных расчетов на компьютере. Это пакет StudyWorks (www.studyworksonline.com), который широко используется в старших классах школ США. Успех этого пакета объясняется и тем, что в него интегрированы электронные учебники по всем базовым школьным дисциплинам: математика, физика, химия, информатика и т.д. Возможности пакета во многом покрывают и программу высшей школы, по крайней мере, для тех вузов и специальностей, которым не нужна «особая» математика. Сам же Mathcad, как отмечают многие пользователи, очень перегружен, хотя и до конца и не «дорос» до «взрослых» математических программ. Если эту «перегрузку» снять – вынести, например, специализированные инструменты в обособленные пакеты (надстройки, электронные учебники), то и получается этот самый недорогой и неглючный StudyWorks, годный для ведения огромного количества рутинных научно-технических расчетов.
Судьба Mathcad довольно неопределенна. Вернее, скажем так – она очень волнует автора статьи. Хорошо бы, если б этот пакет «съела» бы «всеядная» фирма Microsoft и сделала Mathcad, например, некой утилитой тех же электронных таблиц так, чтобы пользователь Excel мог в особом листе Excel-книги хранить сложные формулы, строить «научные» (а не «деловые») графики, работать с физическими величинами и т.д.
Другой сценарий. Mathcad должен вернуться на рынок после существенной переработки, «подлечивания» от «глючности» и с новым названием, названием без приставки «Math», ко многому обязывающей.
Третий сценарий. Разработчики Mathcad освободят основную массу пользователей от обязанности и потребности покупать сам пакет и регулярно обновлять его, а заодно обновлять (заменять) операционную систему и даже сам компьютер. Этот сценарий уже частично реализуется. Речь идет о так называемом Mathcad Application Server (см. www.mathcad.com/server, www.vpu.ru/mas), на котором бесплатно или за умеренную плату проводятся расчеты разной степени сложности в режиме удаленного доступа. Связь же с этим сервером осуществляется через все тот же разрастающийся Internet – пользователь (клиент сервера) шлет на сервер свои данные и получает ответ. При этом у пользователя сохраняется полная иллюзия, что он открыл Mathcad-документ и работает с ним.
Некую нестабильность пакета Mathcad в его настоящем виде ощущают даже его разработчики. Они, конечно, в этом открыто не признаются. И даже обидятся на утверждающих это. Но эта нестабильность чувствуется по косвенным признакам. Главный из них – уже отмеченное неоправданно частое обновление версий Mathcad и посылаемые вдогонку «заплатки».
Итак. Пакет Mathcad оторвался от
несовершенных и примитивных, но, тем не менее, (или
«тем самым») очень популярных электронных таблиц и стал «дрейфовать» в сторону
«элитных» математических программ, но так и не добрался до них. Продолжая
«корабельные» аналогии, можно утверждать, что у Mathcad есть свой собственный «курс» и
довольно многочисленные «пассажиры», которые не собираются пересаживаться на
другие корабли. Смущает этих «пассажиров» (не всех, конечно, а только
некоторых) и пассажиров других судов – судов другого класса только то, что на
корабле вывешен флаг с буквами «Math».