Сегодня обратил на это внимание, заострив на базах данных, у меня сейчас MongoDB в одном проекте и в другом MySQL.
Я вот циклично пробегаюсь в памяти, как я писал в самом начале, что и баз-то не было, а какие-то файлы "сериализованных" структур. Потом первой базой была Interbase (Firebird) кажись так правильно называлась. Код тех времен на Delphi и C++ я практически уже не помню, ощущения тоже, помню окрыляло меня все.
Потом, когда резко ушел в веб, базы стали разнообразными от flat-файлов, сериализованных массивов, до MySQL версии 3 кажется и больше всего я Berkley любил, так сказать откуда key-value растет. Период запомнился изучением, я нихрена не понимал как это все работает, только вникал и задавал дурацкие вопросы на deforum. Именно от туда у меня в голове фраза: "ты не должен этого хотеть". Я постоянно хотел понять своим испорченным десктопом мозгом как работает веб, сервера, базы, интерпретаторы. Это сейчас я понимаю как наивно и глупо это все смотрелось.
И тут какой-то провал, MySQL рос всегда удовлетворял все мои потребности. Года 3-4 назад я пробовал MongoDB, она была еще сырая, только появившаясь, но очень впечатляющая. Нет схем, нет долбанных ограничений, выбирай, играй с данными, яхууу!!! Но проекта я так и не сделал, только через 2 года сделал и в целом был доволен всем, хотя и использовал Монгу только на треть возможностей. Время какого-то угарелого фриланса, писал все и говно тоже :)
Два года назад у меня был целый год MSSQL, я бы конечно бросил это все еще раньше, но хорошо, что в помощи был человек DBA знавший и накатавший в этой базе сотни строк процедур. Впечатления были о базе самые суровые, массивный, неповоротливый гигант в котором даже limit offset делается через задницу. Но куча красивых возможностей самого SQL, всякие IDEшечки и менеджмент тулзы. Но DBA ушел, а так как я был изначально против хранить всю логику внутри базы, то я тоже потихому свалил из этого приближавшегося пиздеца. В общем время работы с этой базой запомнилось не самой хорошей стороной, но код был красив, прям мог бы назвать всякие рюшечки "Ынтырпрайзом".
В прошлом году я впервые можно сказать столкнулся с PostgreSQL, впечатления были самые положительные, типа все четко, строго по типам, не то что в этом MySQL. Но база так же быстро наскучила, когда логика пошла опять в процедуры, отладка, оптимизация. Не красиво, да и код приходилось дописывать чужой, что php, что python - все можно было назвать адом и отвратительнейшим уроком. Но урок как не писать - тоже урок.
Ну и дальше уже текущий период, свободы, когда даже не задумываешься о какой-то базе, а просто пишешь свой Ruby код и проставляешь объекты связи в ActiveRecord, остальное не волнует. Вот как раз пару недель назад при написании одного из больших sql запросов я подумал, что маюсь с какой-то дурной проблемой и архитектурой которую натворил под наркотиками (ну точно, не мог же я не упоротый такое начудить)... а н-нет, мог... потому просто взял 2 дня на раздумывание и тесты, после чего за неделю перенес проект на MongoDB.
Яху! Опять повеяло смузи и стартапиками! Никаких схем, измерения ужасных милисекунд запросов, какие-то миграции-шмиграции... Тьфу... Mongoid, консолька Robomongo и впяред! Пусть и ничего что стоит два реплицирующих монго сервера, ничего, что один не журналируется! Даешь смузи и дикие стартапы!
Вот это понимаю настроение, прям второе дунование в проект, которые уже начинал было набивать оскомину и поднадоедать, а обновил базу, почему бы сразу не обновить и инструменты, еще пару дней и Rails 3 плавно перехал на Rails 4.
И что заметил в этот раз? Бодрость и порох в проекте прибавились, это главное, ну и плюс оптимизм, что с такими мощными инструментами можно его быстрее закончить и запустить, пусть себе плывет уже, а то столько вынашивать уже точно родить можно было бы. :)))
Для себя вывод простой: инструменты влияют на код и дух проекта, освежают и новые веяния, пусть даже экстримальные и экспериментальные, но они дают свежее дуновение в проекте, который уже давненько застоялся.