http://habrahabr.ru/post/183494/

> -- Цитата:
> ....Тринадцать лет назад был достигнут апогей эры доткомов 90-х, когда каждый школьник был веб-программистом или каждый отчисленный из колледжа уже владел своим веб-стартапом. Я получил истинное наслаждение, когда пробовал обучать этих салаг фундаментальным профессиональным навыкам — созданию скриптов автоматического деплоя, системам контроля версий и так далее. Ностальгия, конечно — на самом деле было не до веселья.Мы не можем отрицать, что вся эра доткомов явилась настоящим бедствием для IT/CS индустрии в целом и для UNIX в частности. Под удар попало качество программных продуктов.У меня нет точных сведений, насколько IT индустрия увеличилась в объёмах на протяжении периода доткомов. Моя личная оценка такова, если считать количество всплывших на поверхность профессий, что наша ниша выросла на два порядка, то есть более чем на 10 000%.Влюбиться в компьютеры просто — практически любой может накодить рабочую программу, ровно как практически любой может прибить гвоздём одну доску к другой, за несколько попыток уж точно. Проблема в том, что доля таких вот непрофессионально прибитых друг к другу досок крайне мала, если рассматривать рынок домашней мебели. А чтобы перейти от двух досок к прилично выглядящему комплекту стульев или к встроенному шкафу требуются талант, практика и образование. Те самые (10 000% — 100%) = 9 900% дополнительных процентов не имели ни опыта, ни образования, когда они пришли в IT отрасль. И до того, как у них появился шанс получить это, вечеринка закончилась и большинство осталось вообще без работы.Я проявлю милосердие и замечу, что те, кто зацепился за должность, были, несомненно, наиболее талантливыми и наиболее умелыми из всех, но даже в этом случае нельзя отрицать, что они не состоялись как IT-профессионалы из-за отутствия жизненного опыта.Базарный стиль, за который так ратовал Э. Рэймонд, "Просто запили", противопоставляемый грамотно спроектированным соборам из пре-доткомовского периода, не сгинул после краха доткомов, к сожалению, и сегодня UNIX скоротечно тонет под собственной тяжестью.Я обновил свой ноутбук. Вот уже как 18 лет у меня на нём стоит dev-версия FreeBSD и сборка минималистичной рабочей среды из исходников занимает весь день, потому что оно пытается выстроить логику и архитектуру из анархического мусора, именуемого Э. Рэймондом как базар.Издалека кажется, что коллекция портов FreeBSD это нечто вроде карты для базара, чтобы пользователям FreeBSD было легче найти что-либо. На практике же эта «карта» состоит, в данный момент, из 22 198 файлов с кратким описанием каждой палатки на базаре — несколько строк о том, что внутри имеется и где почитать про это подробнее. Ещё имеется 23 214 make-файлов, говорящих нам, что делать с каждой софтиной из тех, что мы найдём в палатках. Эти make-файлы пытаются информировать нас о возможных сценариях, различных выборочных опциях и их значениях по-умолчанию. Карта поставляется вместе с 24 400 patch-файлами, чтобы сгладить кривизну предлагаемых ручных поделок. Хотя, на самом деле, большинство этих патчей используется для исправления проблем переносимости ПО..... Вот видите, нам нужны 3 различные версии make, макропроцессор (m4), ассемблер и куча других интересных пакетов. В конце пищевой цепочки, так сказать, находится инструмент libtool, который призван скрыть тот факт, что в UNIX нет стандартизированного метода создания динамических библиотек (shared libraries).Вместо того, чтобы стандартизировать этот метод для всех никсов — например, реализовать в виде одного флага для команды ld(1) — с участием Принципа Питера это вылилось в отдельную компетенцию libtool. Причём в данном случае этот принцип ощутимо хорошо приложился — исходный код для devel/libtool содержит 414 740 строк. Половина этого кода — тесты, что в целом похвально, но на деле это просто последствия Принципа Питера: тесты искусно разведывают функциональность сложной системы с целью выявить проблемы, которые вообще не должны были возникать.Что ещё более досадно, 31 085 из тех строчек кода — нечитаемый корявый shell-скрипт, называется configure. Идея в том, что этот configure скрипт выполняет примерно 200 автоматических тестов, чтобы пользователь не был обременён ручными разборками с libtool. Это пипец бестолковая идея, которая была сполна окритикована ещё в 80-х, когда она только появилась. Бестолковая потому, что она позволяет исходному коду претендовать на якобы портабельность, прикрываясь configure скриптом как фасадом, вместо того, чтобы на самом деле обеспечить качественную портабельность.Абсурдно, что идея с configure выжила.Ну, по причинам, которые никогда никого не волновали, программа autoconf была написана на допотопном языке макросов m4, что привело к такому внешнему вид тестов:...Само собой разумеется, адекватные программисты никогда бы не пожелали добровольно копаться в этом, даже если бы у них был навык, поэтому эти скрипты для autoconf создаются методом копипасты, часто оказываясь затерянными среди черезмерно жирных стандартных макросов, покрывающих «стандартные тесты», о которых я упомянул выше.Да, те самые тесты, проверяющие наличие проблем совместимости, с которыми никто не сталкивался уже лет 20.Это также объясняет, почему libtool проверяет не менее чем 26 различных имён компиляторов Fortran, которых в моей системе просто нет, а затем тратит ещё 26 тестов, чтобы выяснить, какие из этих 26 несуществующих компиляторов поддерживают флаг -g.Сегодня уже сложно поверить, но под этим мусором, затрудняющим движение, находятся руины красивого собора UNIX, заслуженно славящегося своей простотой дизайна, достаточностью функций, элегантностью исполнения… Всё тлен, иначе говоря. Я удивлён, что Брукс не приводит UNIX в качестве примера к этому высказыванию, ведь мы можем с почти хирургической точностью определить момент, когда UNIX начал фрагментироваться — в начале 90-х AT&T выделила UNIX и продала все права на него компании Novell, тем самым забрав систему у её архитекторов. (Денис Ритчи сравнил эту сделку с продажей души за батон хлеба — прим. переводчика).Другие недавно пришли к такому же мнению, как и Брукс. Некоторые пытались навязать своего рода здравомыслие или даже сложить закон формально, в виде технических стандартов, надеясь навести порядок и структуру на базаре. Это печальная ирония, конечно. Те, кому посвящена книга Брукса «Design of Design», найдут её совершенно непостижимой. Ну а для тех товарищей, кто хоть раз задумывался о том, что использование макросов m4 для конфигурации autoconf для генерации shell-скрипта для проверки наличия 26 компиляторов Fortran с целью собрать веб-браузер — это как-то немного через жопу, Брукс предложил хорошо аргументированную надежду, что у нас есть шанс всё исправить.