В этом обзоре хотя бы просто для общего представления рассмотрим две свободные сугубо специализированные программы для профессиональной деятельности в области медицины и химии. А большую часть обзора посвятим легенде мира UNIX - редактору Vim, который продолжает совершенствоваться и обновляться.
Relax 3 для анализа ЯМР-спектроскопии
В большинстве случаев мы в наших обзорах рассматриваем примеры свободного ПО общего назначения для широкого круга пользователей. И, надо сказать, весь программный ширпотреб - браузеры, плееры, смотрелки, читалки, архиваторы и тому подобное - на всех типах операционных систем в основном представлен или свободным ПО или же программами, которые активно используют opensource-библиотеки. Но есть примеры и специализированного свободного ПО для узкого профессионального применения. Представим пару примеров такого специфического программного обеспечения, новые версии которого вышли в последнее время. Естественно, дать оценку этим программам могут только специалисты, поэтому мы в обзоре ограничимся исключительно официальной информацией с сайтов этих проектов.
В первых числах августа опубликована версия Relax 3.0 - программы, предназначенной для изучения и анализа экспериментальных данных, получаемых в результате спектроскопии ядерного магнитного резонанса (ЯМР) веществ. ЯМР - это эффект резонансного поглощения или излучения электромагнитной энергии атомами во внешнем магнитном поле, который зависит от химического строения вещества. Одни и те же ядра атомов в различных молекулах имеют различные уровни сигнала ЯМР, что позволят производить различные виды исследований. ЯМР-спектроскопия в последнее время активно используется в медицине и фармакологии для изучения белков.
Молекулярная структура белков является сложной, и соответственно требуются эффективные методики обработки результатов спектроскопии. Отсюда и проистекает необходимость в ПО, обладающем современными алгоритмами обработки данных экспериментальных наблюдений. Программа Relax, которая разрабатывается с 2005-го года силами сообщества специалистов ЯМР-спектроскопии, предлагает разнообразные методики анализа органики, белков, РНК, ДНК, сахара и других биомолекул. Эффективность этих алгоритмов Relax определят профессионалы этой области, а мы отметим основные технические стороны Relax.
Программа написана на Python с использованием модулей NumPy, SciPy, wxPython. Имеет два интерфейса: режим интерактивной командной строки в стиле Python и графический интерфейс. Relax является кросс-платформным приложением и работает на Windows, Linux, MacOSX. Размер готового к работе архива составляет около 60 мегабайт.
Медицинская документация в GNUmed
Следующий пример узкоспециализированного ПО - приложение GNUmed, которое предназначено для работы медицинского учреждения. Это EMR-система электронных медицинских записей, предназначенная для замены бумажной медицинской документации - историй болезней и прочих данных по пациентам. Программа может использоваться при любой регистрации состояния здоровья пациента в пределах одной практики.
GNUmed является ПО с открытым кодом и распространяется совершенно безвозмездно. Но, надо сказать, что существуют альтернативные и тоже свободные аналоги GNUmed - это, например, комплекс медицинских приложений FreeMedForms, а также приложение для ведения медицинской документации OpenEMR. Преимущества той или иной системы медицинской документации - это отдельная тема, а мы отметим технические особенности GNUmed.
GNUmed имеет клиент-серверную архитектуру. Приложение создано с пользованием Python, серверная часть использует СУБД PostgreSQL. Последняя версия сервера - 18.8, а клиент в августе обновился до версии 1.3.8. Приложение кросс-платформное, поддерживаются Windows, MacOS и все основные дистрибутивы Linux. На сайте программы можно скачать специальный образ LiveCD. Программа переведена на множество языков, и на официальном сайте имеется в том числе и русскоязычный раздел.
Скромное обаяние Vim
Vim - как много в этом звуке для сердца юниксоида слилось! После трёх лет разработки опубликована новая версия этого текстового редактора - Vim 7.4. Самая же первая версия Vim появилась ещё в начале 90-х годов прошлого века. А редактор Vi, логическим продолжением которого является Vim (VI Improved - улучшенный VI), был создан аж в 70-х годах Биллом Джоем.
За эти десятилетия Vim оброс большим количеством легенд, мифов и анекдотов. Он давно превратился в культурный и исторический символ UNIX. И в то же самое время будет совершенно не правильно считать, что выход Vim 4.7 - это всего лишь повод поностальгировать о былых временах. Этот консольный текстовый редактор не собирается превращаться в древний экспонат из музея компьютерных технологий. Vim по-прежнему находит как своих поклонников, так и своих ненавистников. Поэтому с выходом Vim 4.7 стоит остановиться не столько на новшествах этой версии редактора, сколько отметить те его особенности в целом, которые уже не один десяток лет привлекают к нему новых и новых пользователей.
Vim - это гораздо больше, чем текстовый редактор. Правильнее было бы его называть средой разработки. Поэтому отчасти понятно недовольство тех, кто попытается использовать Vim как альтернативу приложениям типа Notepad, чтобы, например, скопипастить текст из браузера и удалить тем самым форматирование. Даже для редактирования файлов конфигурации в консоли в Linux-дистрибутивах сейчас предлагается использовать более простые программы nano или pico. Vim - это в первую очередь создание и редактирование программного кода, файлов LaTeX, XML, технической документации. Его даже полюбили некоторые веб-дизайнеры.
Другими словами, первоначальная лёгкость освоения программы и интуитивная понятность - это не про Vim. В этом редакторе, запустив его первый раз в жизни, нельзя сразу начать работать. Если начинающий пользователь ещё кое-как сможет этот редактор открыть, то выйти из него у некоторых получается разве что только при помощи милиции.
Vim обладает своим уникальным способом работы с текстом, который одних привлекает, а других раздражает и разочаровывает. Одна из главных особенностей редактора - разные режимы работы с текстом, которые нужно переключать вручную. В первом обычном режиме, который включается сразу после запуска редактора, Vim воспринимает каждое нажатие на клавишу как команду, что позволяет быстро перемещаться по файлу и осуществлять редактирование. Есть режим ввода команд, который отчасти чем-то похож, например, на интерактивный ввод команд в "Бейсике" в древних компьютерах ZX-Spectrum. Для непосредственного ввода текста существует отдельный режим, аналогичный большинству "обычных" редакторов.
На первый взгляд, такая старорежимная организация работы с текстом - это атавизм, оставшийся нам в наследство от старых терминалов и мэйнфремов. На самом же деле, режимы работы с Vim могут быть гораздо эффективнее, чем привычные приёмы работы с текстом.
Для примера возьмём операцию перемены местами двух символов в слове. Чтобы поменять местами две буквы в обычном редакторе, нужно сделать следующие телодвижения:
Shift-Стрелка вправо
Ctrl-x
Стрелка влево
Ctrl-v
В Vi это делается в стандартном режиме двумя клавишами:
x p
Ко всему этому следует добавить умение Vim разбивать экран консоли на окна для каждого файла, поддержку табов, проверку орфографии, мощную функцию undo, метки в тексте файла, возможность ввода длинных строк с помощью аббревиатур.
Постепенное изучение таких вот фишек Vim, часто очень хитроумных, и привязывает многих пользователей именно к этому редактору. Причём процесс изучения и открытия тонкостей работы приложения сам по себе интересен, тем более, что и русскоязычной документации, и мануалов для работы с редактором Vim в Сети существует предостаточно.
Важной особенностью Vim, которая делает его до сих пор популярным редактором, нужно назвать плагины, расширяющие функциональность. В целом удачная реализация плагинной системы в любом приложении делает программу популярной. Vim из числа таких приложений.
Для Vim существует огромное количество плагинов, как полезных, так и не особо нужных. В этом отношении редактор похож на браузер Firefox. На текущий момент плагинов для этого редактора написано уже несколько тысяч. Именно с помощью этих плагинов Vim, занимающий несколько мегабайт в системе, превращается в мощную IDE. Расширения позволяют разработчику в Vim эффективнее осуществлять навигацию по коду и файлам проектов, работать с комментариями, сниппетами и тому подобное.
С плагинами связано одно из основных нововведений в Vim 7.4. В редакторе для написания расширений активно используется Python, и в новой версии добавлены новые функции для расширенной поддержки этого языка программирования.
Также в версии появился новый движок регулярных выражений. Его особенностью является более высокая производительность при использовании сложных "регэкспов" или поиска по объёмному тексту. При этом старый движок регулярных выражений тоже останется в редакторе, и разработчики собираются внедрить некий эвристический анализатор, который будет выбирать тот движок, который быстрее отработает конкретное регулярное выражение.
В заключении напомним, что Vim хоть и выходец из мира UNIX, но есть версии и для Windows, и MacOS. Причём существуют не только консольные варианты, но и модификации для использования в графическом оконном интерфейсе.
Михаил АСТАПЧИК
Комментарии
Я старался в свое время. Но ниасилил...
И я... Плохой я линуксоид!
Значит не судьба.
А вы, уважаемый автор, пользуетесь?
Да, для изучения разных прикольных штучек, как например, здесь
http://s.arboreus.com/2009/03/folding-as-pseudo-outline-mode-in-vim.html
А для копипастинга и гедита хватает
Ну а я предпочитаю пользоваться IDE. Пробовал приучить себя к виму, эмаксу -- ничего не вышло. Решил себя не насиловать. Во время зелёных экранов пользовался стардиктом, но уже призабылось.