Как стать автором
Обновить

MATLAB. Пиратство в России. Религия в ИТ. Как управлять инженерами и как их мотивировать?

Время на прочтение 6 мин
Количество просмотров 11K
Всего голосов 24: ↑6 и ↓18 -12
Комментарии 13

Комментарии 13

Зачем Matlab с конскими ценниками на лицензии когда есть numpy и scipy

Хоть и пользую питон каждый день, но numpy и scipy — это нечто иное. Simulink действительно удачно реализован, плюс многомерный анализ в матлабе попроще сделан в графическом плане, чем матплотлиб, плотли и иже с ними.

И Джулия и R, но у большинства апологетов матлаба просто синдром утёнка. Отдельная попаболь это когда эти "алгоритмы" на "языке программирования" приходится в железо переносить, и вот тогда и раскрывается всё качество как продукта так и техподдержки и документации.

В матлабе разве нет кодогенератора? А как с питона в железо переносить, тут вообще готового решения нет, только переписывать.

От кодогенератора в матлабе одно название, смотрите сами:
Во первых результат это С фарш даже если вы генерируете с++ код (никаких RAII, std контейнеров итд). Справедливости ради этот код не течет, но руками дорабатывать вы его навряд ли захотите.
Во вторых часть функций не доступна — всё что в .mex нельзя использовать даже если целевая платформа совпадает с платформой на которой запускается матлаб. К примеру нельзя читать и писать .mat файлы, все интересные солверы тоже не доступны итд.
В третьих, код генерируемый по умолчанию медленный. Очень медленный. По сути каждый вызов функции будет обернут в копирование аргументов и копирование результата.
Разумеется это можно "оптимизировать" вводя си структуры и объясняя что передавать можно только указатели, но представляете на что похож матлаб код в котором описываются си структуры? Это не то, что может поддерживать типичный пользователь матлаба. А, ну и конечно все эти оптимизации вы сделаете прогнав результат компиляции си кода через профилировщик, т.е. трудозатраты по профилированию такие же как при переписать полностью, требуется хорошее знание СИ, но потом ещё надо разобраться как реализовать оптимизацию на матлабе.
Матлаб не силён в оптимальное выравнивании памяти, т.е. на вычислительно трудных задачах он никогда не сравнится с кодом написанным вручную.
Ну и вишенка сверху — матлаб не гарантирует повторяемый результат. Т.е. результат у "компилированного" кода будет скорее всего немного другим, а с учётом того что даже в пакетах самого матлаба не все алгоритмы робастны это может быть бедой. Более того, это правда и для самого матлаба, например изменение количества потоков доступных ему приводит к изменению результатов.


С тем же питоном — большинство библиотек открыто, если надо я могу хотя бы узнать как питон реализует ту или иную функциональность. Если очень надо — с отладчиком оттрассирую каждую операцию. А та же Джулия генерит машинный код не хуже меня, а если есть проблемы с памятью то благодаря языку я могу например подменить одну реализацию матрицы другой и код не развалится.

Понятно, спасибо за развернутый ответ) Я матлабом для этого не пользовался, а вот с питона на embedded мы вручную переписываем.

С этой точки зрения также предпочтительнее не пользоваться высокоуровневыми функциями Matlab, а реализовывать алгоритм на питоновских модулях которые в наличии, что проще переносить на Си для Embedded или оставить тот же Питон, если платформа позволяет

Ну и послужить целям компании, чтобы бизнес шел вперед – это мое обязательство перед Богом

Корпоративное сектантство — это что-то новенькое. Или где-то уже было?
НЛО прилетело и опубликовало эту надпись здесь

Может техническому директору Экспоненты 2020 лет? Контрактные обязательства он заключает на довольно высоком уровне :)

Matlab с пачкой тулбоксов, стоимостью за сотню тысяч долларов за лицензию действительно легально доступен только для университетов и корпораций.


Весь Матлаб, то как он сделан, как устроена его среда разработки, как устроена экосистема, по сути диктует устаревшие подходы и bad practices, в нём всё сделано так, чтобы его использовали как большой калькулятор для экспериментов и прототипирования, чтобы на нём создавали тонны одноразового говнокода, который очень сложно превратить в production ready решение. В матлабе есть полезные и мощные тулбоксы, Simulink и т.п., но экосистема матлаба замкнута сама на себе.


За последние несколько лет открытые инструменты и библиотеки для учёных и инженеров на базе Python и Julia развились очень значительно. Используя эти инструменты вы получаете доступ к огромной открытой экосистеме вокруг этих языков и инструментов, вы получаете более мощные и удобные языки программирования, вы получаете среды разработки, которые лучше чем Matlab, инфраструктурные инструменты, которых нет в Matlab и гораздо больше возможностей для дальнейшего развития и создания продукта.

Преподавал в институте ( по нынешнем временам это университет). Г-н лектор захотел, чтобы задания студенты делали в Matlab'е. Лицензия у института — была. Студентов учили достаточно хорошо Питону. Пришлось с нуля и мне и студентам вникать в Matlab. Скажу, не так легко это было. Уровень вхождения, конечно, не в Си, но все же мне показалось, что в с программами символьной математики мне было проще.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории