Здравсвуйте.
На мой взгляд, опрос сделан не совсем корректно. Разработчики каждой из представленных программ сделали акцент на решении преимущественно одной проблемы в ущерб другим (с сожалению), поэтому 3 программы (MathCad, Maple и Matlab) могут вполне уживаться на одном компе дополняя друг друга. Тем более, что взаимодействие между ними производителями поощряется. Да и кроме того список уж слишком узок, сюда можно было бы включить и mupad, и excel, а один мой знакомый физик знать ничего не желает кроме фортрана.
Посему из всего перечисленного могу отсечь только «Математику». И то возможно только потому, что в когда я в свое время «стоял на перепутье» мне попалась на глаза статья одного профессора о сравнении мат. пакетов. Этот проф. на примерах утверждал там, что разработчики «математики» не спешат устранять замеченные пользователями ошибки в символьном решателе, коих (ошибок) было по его словам довольно много по сравнению с тем же мейплом. Эта статья вместе со сложностью языка полностью отбили у меня охоту изучать этот ныне быть может и хороший пакет. И со временем, и после прочтения этой темы форума, охоты не прибавилось, основной минус этой программы — это замкнутость на себя при ограниченных (естественно) возможностях.
А теперь коротко о своих впечатлениях программ.
Добавлено спустя 20 минут 50 секунд:
Maple
Начну с «клена», точнее с его недостатков. Я не знаю его предыстории, но по ощущениям его создавали программисты для программистов, причем для программистов «исповедующих» структурный подход к задачам. Недостаток такого подхода в том, что человек заранее должен знать весь алгоритм решения задачи, то есть знать, что он будет делать, и что будет получать на выходе. К сожалению не всем повезло иметь мозги просчитывающие все на сто шагов вперед. Тогда задача «ведет» в зависимости от промежуточных результатов алгоритм своего решения. Кроме того, часто хочется иметь возможность использовать ранее полученный программный код для других работ. В мейпл модульность (или объектность) вашей программы будет целиком зависеть от Вас, от вашей предусмотрительности и прозорливости. Разумеется мейпл обладает средствами и модульного и объектно-ориентированного и частично визуального программирования (ну очень плохо). Но увы интерфейс не позволяет сходу переписывать программу под меняющиеся условия, лично у меня в 10 версии были проблемы даже с обыкновенным копированием через буфер обмена заведомого рабочего кода, приходилась перебивать его вручную снова и снова, что весьма странно для программы с интерфейсом «под блокнот» (рекомендую сразу пользоваться Classic Worksheet ). Вот например на
рис.1 показан такой баг: вверху код (команда plot), пропущенный через буфер обмена, внизу перенабранный руками. И это далеко не единичный встречавшийся мне случай, не все из них я могу вспомнить. На
рис. 2 показан еще один пример. Обратите внимание на обведенный красным исходный текст и как его интерпретировал мейпл. А теперь представьте, во что может превратиться отладка процедуры этак в 10 и более строк.
Встречаются и, скажем, странности в работе решателя и оперированнии внешними файлами.
Все вышесказанное, ИМХО, делит пользователей maple на две «асимптотические»
группы: «студенты» или «домохозяйки», как выразился наш модератор, и программисты. Первые используют «клен» для решения небольших примеров, заданных по учебе, иллюстрирующих научную работу, или контролирующих численно полученные решения. Вторые используют ее мощные возможности символьного решателя для прогрммирования модулей, используемых в более крупных проектах. Программирование в maple сдредней сложности технических расчетов, тем более с большим количеством циклов и массивов индексированных величин или вычислительных экспериментов с многократно изменяемым алгоритмом представляется мне не лучшим выбором, в том же MathCad как правило это решается в десятки раз быстрее. Также можно обратиться к связке Maple-Exel, это во многих случаях позволяет обойти недостатки первой при работе с массивами.
MathCad
По тексту выше можно догадаться, что я как сторонник объектности и визуальности в работе и люблю этот пакет. Действительно, несмотря на кажущуюся чрезмерную простоту и фактически отсутствие языка программирования в привычном понимании (когда говорят о программировании в маткаде имеют ввиду лишь задание процедур-функций), маткад позволяет решить почти все проблемы, которые могут встать перед среднестатистическим инженером. Впрочем я встречал и диссертации на соискание кандидатов технических и физ-мат наук целиком сделанные в mathcad (численное моделирование гидродинамики), да и свою я написал частично нем. Особенно приятно работать в нем с массивами. Получающийся документ прост, нагляден и так же легко редактируется в случае необходимости, что позволяет легко использовать прежние наработки и проводить мат. эксперименты. Если взять пафосную ноту, можно сказать, что маткад когда-то опередил свое время вплотную приблизившись к философии проектирования UML.
Теперь о плохом. ИМХО чересчур увлекшись простотой, разработчики маткада перегнули палку, так что теперь часто приходится использовать объекты этой программы как черные ящики. А это недопустимо для численных методов, на которые изначально и был ориентирован пакет. Например, я до сих пор не знаю, что это за «адаптивный» алгоритм интегрирования, по умолчанию предлагающийся пользователю. А алгоритм это порой дает сбои, особенно, как это не странно в последних версиях: 12 и 13. Про 14-ю ничего не знаю – не пробовал. Так ошибки могут быть при изменении координат с декартовых на цилиндрические. Вообще говоря, от после 11 версии прога стала только хуже. Стала хуже справка, появились баги при вычислении больших объемов данных (пример заполнение таблицы значений в 13-ой и 11-ой версиях соответственно:
рис. 3 и
рис. 4), единственное, что порадовало, так это хорошая работа 13-го маткада с обоими ядрами моего процессора, и все
. Наконец мое терпение кончилось и я вернулся к прежнему 11а. Но и с ним надо держать ухо востро вот пример на
рис. 5. Что называется без комментариев. Однако в большинстве случаев подобные глюки «лечатся» перезапуском маткада, так что не все так плохо, если держать рядом maple для сверки в «контрольных точках».
Matlab
К сожалению матлаб я только начал изучать и не могу сказать о нем ничего плохого. Даже интерфейс в нем как это ни странно не мешает, поскольку матлаб воспринимается как среда программирования, а не мат пакет (и сравнивать его с мейплом и маткадом не очень корректно). В нем лучшая справочная система. Вообще матлаб (по возможностям) это то чем мог и должен был бы стать маткад, если бы имел желание, деньги и такое же развитое и активное сообщество пользователей (а не только Очкова). За мощь возможностей отдаю свой голос Matlab.
Коротко о других языках программирования. Любая новая программа, написанная самостоятельно или другим человеом в, скажем, питоне или матлабе должна вызывать одинаковую настороженность (людям свойственно ошибаться и никто не является исключением). Так что, все, в конечном итоге, упирается в скорость программирования. В матлабе она в большинстве случаев будет выше. Конечно тех, кому нужно не просто решить задачу, а обязательно через одно место написанное не убедит, но без них не будет и прогресса. (Вот меня понесло. Все)