среда, 9 сентября 2009 г.

[comp.history.my] ViM, Ruby, Mxx_ru – пять лет в пути! Часть первая: Mxx_ru

Быстро летит время. Уже пять лет прошло, а кажется, что происходило все совсем недавно. И как-то буднично все, хотя последствия оказались весьма серьезными.

Итак, пять лет назад, в конце лета 2004 нам представилась возможность портировать часть своих программ на платформу HP NonStop. Чем мы решили воспользоваться. Но для этого мне пришлось пересмотреть несколько своих привычек и сменить несколько инструментов.

В первую очередь это затронуло систему сборки наших C++ проектов. До этого мы использовали мою систему сборки Mxx4 – проектные файлы записывались в виде небольших программ на своем собственном примитивном языке программирования. Mxx4 появился в 2001-м и к 2004-му я уже хотел заменить его на что-нибудь более мощное. И переход на NonStop как раз подтолкнул меня к этому. Я решил отказаться от собственного языка программирования в пользу какого-то готового скриптового языка и рассматривал Python, Perl, Tcl, c-smile и Ruby. В результате остановился на Ruby, т.к. его блоки кода были как раз очень удачной штукой для моих целей (и они используются в полный рост в проектных файлах Mxx_ru). В итоге, в августе-сентябре 2004 я написал Mxx_ru.

Первые пару лет Mxx_ru использовался только внутри нашей компании. Но в 2006-м произошло важное событие – со мной связался Михаил Лёсин и предложил свою помощь в развитии и продвижении Mxx_ru в виде OpenSource проекта. Так Mxx_ru появился на RubyForge. Пользуясь случаем, еще раз скажу Мише огромное спасибо за неоценимую помощь в переводе Mxx_ru и документации на английский язык, а так же за поддержку развития Mxx_ru. Благодаря Мишиной рекламе Mxx_ru используется в проекте CGRU, в следствии чего при помощи Тимура Хайрулина удалось портировать Mxx_ru под MacOS X.

Сейчас Mxx_ru продолжает активно использоваться у нас. Так же, судя по статистике RubyForge, некоторый интерес к Mxx_ru существует и вне нашей компании, а количество скачиваний постоянно растет. Совсем недавно я обрадовался тому, что было загружено 1400 копий Mxx_ru, не прошло немного времени – и сегодня статистика говорит о 1557 скачиваниях. Хотя я и не знаю, кто и для чего использует Mxx_ru, но все равно спасибо! :)

Пока отмечу проекты, которые точно используют Mxx_ru:
SObjectizer
CGRU
FatRat

Маленькая просьба. Если вы используете Mxx_ru, то дайте мне знать – я включу название вашего проекта в свой список. А если у вас есть и аккаунт на Ohloh, то не сочтите за труд – включите себя в список пользователей Mxx_ru.

Но вернемся к 2004 году. Про Ruby тогда мало кто знал. Хотя язык был уже довольно распространенный. Впервые его название я увидел в FreeBSD 4.5 – там, помнится, какие-то управляющие штуки были на нем написаны. И, что самое важное, Ruby 1.6 уже был портирован на NonStop (а это не хухры-мухры, поскольку платформа уж очень специфическая и вся из себя Ынтырпрайзная). Разработка Ruby-On-Rails тогда только-только начиналась и шума вокруг Ruby не было вообще никакого. Помнится, на RSDN я был чуть ли не единственным человеком, который что-то рассказывал про Ruby.

Помимо того, что Ruby стал базой для Mxx_ru, сам язык Ruby прочно вошел в набор моих постоянно используемых инструментов. Построение отчетов и статистики, обработка log-файлов, различные утилиты для настройки и обслуживания программ на серверах, генерация C++ исходников из специализированных описаний, мелкие программки “на выброс” и тесты – все это отлично живет и работает на Ruby. Сейчас я даже не знаю, как мне удавалось без него обходится раньше. Так что – рекомендую! (Не нравится Ruby – можно взять Python. Ну или на крайний случай Perl или Tcl. Все равно все это одного поля ягоды).

Вот так вот. Партия сказала “Есть контакт!”, я начал есть контакт работать с NonStop-ом и получил в свое распоряжение два отличных инструмента – Ruby и Mxx_ru. Но это еще не все, т.к. обязательно нужно рассказать о подсаживании на иглу ViM-а. Так что продолжение следует…

PS. Если кому-то интересно, то я мог бы обновить историю возникновения и развития семейства Make++, к которому и принадлежит Mxx_ru.

Комментариев нет: