Всё чаще стал себя ловить на мысли, что нам в питонячей вселенной не хватает классического сервера приложений.
От него хочется совершенно банальных вещей:
Менеджмента конфигураций
Абстракции над хранением данных
Возможности легкого добавления точек входа и компонентов
Инфраструктуры для отложенного выполнения задач
Каких-то батареек типа библиотеки с хелперами
Простой интеграции с другими системами
Предсказуемых внутренних процессов и возможности на них влиять (явная и контролируемая инициализация например)
Самое интересное, что почти всё это есть как отдельные компонеты, но нет среды которая могла бы их объединить или предложить своё комплексное решение. При этом, конечно, этот сервер должен быть достаточно легким и не давить своим весом на пугливые умы опытных разработчиков.
Эта ситуация мне очень что-то напоминает. Да, это похоже на мир веб-фреймворков. Они, зачастую, как раз закрывают эту нишу. Я уже не один раз приходил к выводу, что проще продолжать использовать веб-фрейморк даже в тех задачах, где нет непосредственой вебной составляющей. Тем более, если он уже применяется и его окружение уже содержит нужный контектс для функционирования других компонентов.
Кажется, что отсутствие такого сервера приложений не продлится вечно и через какое-то время появится новый интересный игрок в этой нише. И как всегда, приходится бить себя по рукам, чтобы не ввязаться в его написание «на ...
Это такая новая техника разработки ПО. Она же "MDD" (mailing-list-driven development), и она же "CDD" (chat-driven development). Я конечно же немного утрирую, но не могу отделаться от этого ощущения.
На программистских форумах, рассылках, jabber/irc конференциях очень часто можно встретить топики от одного и того же человека, который разрабатывает какой-то "проект". Он последовательно задает вопросы и по этим же вопросом можно достаточно детально узнать о проекта и более того можно стать его автором даже в больше степени, чем вопрошающий. По крайне мере складывается такое впечатление.
Замечаешь это не сразу, а постепенно вопрос за вопросом вырисовывается картина того что же делает человек. Получается он ведет разработку, получая ответы и внедряя их в свой код (который хочется надеяться есть), проходит так весь путь написания проекта. И с большой долей вероятности в конце он прийдет на этот же форум и похвастается сделанным. И только изредка скажет спасибо участникам, которые по сути и написали этот проект.
Иногда случается так что в очередном вопросе ты видишь свой же код, данный в ответ на вопрос заданный ранее, но уже как-то измененный и "не работающий". Ну ты понимаешь -- не работает он потому, что автор его не осознал и попытался как-то наобум изменить, что конечно не получилось. Это ...
Выбор идеального или приближенного к таковому тикет-трекера для личных проектов это просто какая-то мука. Сколько я уже их перепробовал -- и Trac пытался поднимать, и на bitbucket пытался вести таски по проекту. Все не прет. Bitbucket вообще в последнее время не радует своей нестабильностью и баговатостью, в том числе и в трекере.
Требования у меня-то простые. Трекер должен помогать мне держать в актуальном состоянии фичи для реализации и баги для исправления. Все просто и чтобы без лишних рюшечек.
Наверно самым удобным для меня сейчас является баг-трекер на Google Code. Там у меня есть один активный проект (Djapian), в котором довольно много всего приходится делать именно в тренере. Как-то так сложилось, что он даже в некоторой степени превратился в форум -- там задают вопросы, а я на них отвечаю с резолюцией Invalid. Мне это не очень нравится, зато я накопил опыт его использования. И метки мне там нравятся, и возможность добавить в фавориты какие-то таски, и разумные провязки с репозиторием кода. Да, по workflow наверно самый для меня подходящий. Только вот проектов больше там у меня не предвидится. Во-первых они там все публичные, что не всегда удобно, а во-вторых ни svn, ни даже hg уже не вставляют…
Прежде чем "всё переписать", надо рассказать людям - а что это вообще такое! Многие не понимают ни как правильно писать в асинхронном стиле, а вообще всей этой парадигмы.
Уже достаточно давно мой способ знакомства с новой технологией это подписка на список рассылки и внимательное изучение вопросов, ответов и вообще общего духа сообщества. Так случилось что на рассылку node.js я подписался до знаменитого поста Саймона и смог увидеть резко возросший интерес к теме.
Как это обычно бывает набежало сразу куча восторженных людей и пошли многокилометровые споры о том какой MVC фреймворк надо на базе этого сделать и какой шаблонный движок реализовать. Уже плохо. Но когда люди участвующие в подобных спорах вдруг, так, невзначай, приходят и задают с виду безобидные, но выносящие мозг вопросы как этот или этот, то опускаются руки и кажется что в нашем разработческом мире не всё хорошо.
Люди не понимают сути. Совсем. Причем им как бы интересна технология. Встает вопрос почему? Да модно просто. Такое происходит уже не в первой рассылке которую я наблюдаю. Так же было с CouchDB например.
Кстати, что я заметил -- эти люди в основном пишут на... ruby. Ну не важно:-)
Не понимают они, что новые технологии это не только модный buzzword но и ещё ...
Пора нарушить молчание и рассказать о том, что на недавней замечательной конференции 404fest я тоже имел честь выступать с докладом. Посвящен он был модной ныне теме - NoSQL. Доклад получился коротким и поэтому больше политическим чем техническим. Я хотел показать, что этот новый тренд не просто так захватывает умы всё большего числа разработчиков.
Это только первое моё выступление на эту тему, но, я надеюсь, что в скором времени последуют другие на новых площадках