Ещё одна из современных тенденций в разработке программного обеспечения состоит в том, что горе-разработчики либо вообще не думают о совместимости, либо сознательно приносят её в жертву новым «крутым» возможностям. Кстати второй вариант часто указывает на кривую разработку продукта, в который изначально чего-то не доложили! И ладно бы дело касалось только языков программирования, но увы.
Хотя и с языками программирования тоже весело. Возьмём тот же PHP, который как язык состоялся и закончился на версии PHP 4.4. Всё что сейчас существует нового в последней (на момент написания данной статьи) версии 8.1 — это надстройки над языком, которые вообще-то не сильно и нужны. И вместо того, чтобы работать над ускорением работы, снижением требований к оперативной памяти и устранением ошибок, разработчики понасоздавали эти namespaces, tratis и прочую говнохрень, без которой прекрасно обходились ранее и могли обходится и дальше. Что? Над ошибками и требованиями к ресурсам тоже работали? Ну да, то-то бинарник php 4.4. весит 1.7 мегабайта, а php 5.6 уже 4.4 мегабайт, а php 7.4 — 6.3 мегабайт, а php 8.1 уже 8.4 мегабайта (сравнивались бинарники для платформы RHEL) и вы думаете, что оперативной памяти стал кушать меньше? Ага, щас.
Ну а если говорить не только о языках программирования? Что сделали например с exim после ухода от дел его легендарного создателя Филипа Хейзела? (Philip Hazel). Ну если до версии 4.92, всё ещё как-то развивалось в общем ключе, то с выходом версии 4.93 и механизма «taint» была жёстко поломана совместимость с предыдущими версиями и годами наработанные конфиги сразу превратились в дерьмо. Самое смешное, что это новшество, вводимое под флагом увеличения безопасности не спасло exim от новых уязвимостей, зато сильно усложнило жизнь переписыванием конфигов и, на мой взгляд, сделала ряд синтаксических конструкций сложными настолько, что в них исчез всякий смысл. Примечательно ещё и то, что во время работы над проектом Филипа Хейзела, уязвимости в exim почему-то не находили.
Но если говорить о пальме первества по издевательству разработчиков над пользователями и админами, то я бы отдал её Elasticsearch. В этом проекте каждая минорная версия может рассматриваться как отдельный продукт, который имеет общего с другими версиями лишь идеологию. Но под капотом изменено почти всё. Версии 5 и 7 — это просто небо и земля. И если вы долгое время разбирались в версии 5, кропотливо вылизали всё и создали себе буквально рай, то при необходимости перейти на версию 7, можете смело доставать жётский диск со всеми вашими данными и настройками и выбрасывать его в нужник — всю работу вам придётся начинать заново! Но зато сколько диферамб продукту: первые места во всяких конкурсах, награды, премии и т.д. А то как же: модно, стильно, молодёжно. А я бы от админов награду выдал — «золотой нужник»! Зато давайте попробуйте на последней (на момент написания данной статьи) версии Elasticsearch 8 с ходу настроить полнотекстовый поиск на русском с учётом морфологии — сразу этажность складывания ваших матюгов влёгкую доберётся до космоса. При этом поиск соответствующих руководств и статей в Интернет тоже крайне малорезультативен, ведь почти все результаты касаются устаревших версий, рецепты для которых в новой версии уже не работают!
И вот сидишь и задаёшься вопросом: почему вместо того, чтобы поклонится разработчикам за их труд на open-source проектах, в некоторых случаях, вместо поклона хочется назвать их гондонами?