научное
30 коммент.
\begin{lyrics}
Заготовьте ваши тухлые помидоры...\end{lyrics}
... ибо автор этих строк сейчас как обычно рубанёт с плеча: MATLAB, друзья, правит балом. Эта нехитрая мысль навеяна, кроме прочего, здоровенным постером на последней странице журнала Physics Today. MATLAB стал языком инженеров и учёных благодаря своей замечательной, просто потрясающе продуманной и отлично написанной документации, простой и понятной интегрированной среде разработки и огромному количеству хорошо сделанных тулбоксов на все случаи жизни.
Под свист пролетающих над авторскими сединами помидоров и прочих несвежих корнеплодов, а также выкриков "Octave наше всё", хочу от всего сердца отметить: да, я знаю про Octave. Octave почти совместима с MATLAB. Octave быстрее, чем MATLAB, хотя и не намного. Octave свободна и не просит много мегабаксов. Но есть много но. Мало документации и она любительская: неоднородна по качеству и сильно уступает MATLAB-овской. Нет графической среды разработки (QtOctave в состоянии бета-версии, и ей ещё расти и расти). Почти совместимость с MATLAB я прочувствовал лично на себе: даже после установки octave-forge, о чём ещё нужно было догадаться, только три маленькие программки из моих почти полусотен матлабовских скриптов заработали без переделки. Остальные потребовали m-файлов из MATLAB и возюкания напильником. Все наши лаборатории в МИФИ, доколь хватает глаз, на MATLAB и я должен взаимодействовать с ними в плане обмена результатами. Так что увы. Это я о том, что если кто-то сумел приспособить Octave для своих задач - я очень за него рад, но в наших конкретных палестинах Octave не конкурент в данный момент из-за недостаточной совместимости с MATLAB.
Но это не вся беда. А беда в том, что в MathWorks, похоже, идеи закончились, и хорошие программисты стали потихоньку уходить. Закономерно стала ощутимо увеличиваться тяжеловесность графической оболочки MATLAB, в особенности всякими Java-прибабахами, столь милыми сердцу индийским программистам. Чем дальше версия, тем больше системные требования при одинаковом функционале. Как сказал один мой хороший знакомый, большой поклонник Windows Vista (она у него не тормозит и работает быстрее XP), "просто добавь памяти до 8Гб и купи себе, наконец, Core2Quad, как я". Меня, как и многих, такой подход, скажем так, не устраивает.
Итак, есть желание работать в MATLAB с некоторым комфортом, таким как подсветка синтаксиса и возможностью переключаться между несколькими функциями, но с малым расходом ресурсов. Есть следующий рецепт:
- Устанавливаем в Linux / FreeBSD любой текстовый редактор с табами, подсветкой синтаксиса и выходом на консоль. Я для этого использую kate (подставьте сюда и далее ваш любимый текстовый редактор).
- В kate есть выход на консоль (Terminal), где мы запускаем MATLAB без графической оболочки командой: matlab -nojvm
- полезно поставить вызов консоли в kate на горячую клавишу (например, Alt+T) - так можно быстро отркрыть консольку и узнать, где в очередной раз вы напортачили в коде.
- В терминале kate запустится MATLAB и порадует вас простым командным интерфейсом.
- Теперь в kate открываем свои программы, написанные в MATLAB - при этом должна сработать автоматическая раскраска кода.
- Для запуска вашей программы переключаемся в консольку в kate и набираем её имя - автодополнение, как и всюду в UNIX, работает по кнопке TAB.
- Всё, программа начнёт работать и выдавать вам результаты.

Аскетично, согласен, но когда вы уже хорошо знаете MATLAB и ваши программы написаны без использования ужасных MATLAB GUI, через некоторое время вы скорее всего будете ориентироваться в новой среде так же, как и прежде.
А теперь сравним
Для сравнения: на моей машине P4-3GHz и 2Gb RAM работает программа, выполняющая деконволюцию изображений размером 5Мпикс (три массива по 5Мпикс, два прямых Фурье-преобразования и одно обратное, деление массивов друг на друга). Так вот, мой MATLAB R14 аж 2004 года выделки такое изображение обрабатывает легко. Я могу в таком режиме matlab -nojvm запустить параллельно обработку ТРЁХ таких изображений, сидеть слушать музыку и писать другой текст.
В лаборатории: Core2Duo 2.6GHz, 2Gb RAM, Windows XP, MATLAB 2007b сходу вываливается на той же самой задаче в out of memory.

Выше небольшой скриншот, на котором показана работа двух MATLAB предыдущей версии параллельно в режиме nojvm, на фоне других работающих программ.
А для Windows...
Благодаря отзывчивости комментаторов, есть такие варианты использования MATLAB в Windows в экономичном режиме:
- Notepad++
- gvim и gvim portable
- gEdit и немного скриншотов
- Geany
- medit и его вид спереди.
Заключение
После того, как руководство лаборатории обновило MATLAB на всех машинах на 2007b и они стали вываливаться в out of memory, я для себя сделал такие выводы:
- Новые версии - не всегда лучшие, особенно если программа долго разрабатывается и тем более она проприетарная.
- Работать можно и без графической оболочки, и почти так же комфортно (в вашем любимом текстовом редакторе).
- Не сломалось - не чини (т.е. нет нужды в новых функциях - не обновляй программу).

















