OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 22 Июнь, 2018 00:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Среда, 19 Июнь, 2013 01:20 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8954
Откуда: Россия, Орёл
http://habrahabr.ru/post/183494/

Цитата:
....
Эра доткомов

Тринадцать лет назад был достигнут апогей эры доткомов 90-х, когда каждый школьник был веб-программистом или каждый отчисленный из колледжа уже владел своим веб-стартапом. Я получил истинное наслаждение, когда пробовал обучать этих салаг фундаментальным профессиональным навыкам — созданию скриптов автоматического деплоя, системам контроля версий и так далее. Ностальгия, конечно — на самом деле было не до веселья.
Мы не можем отрицать, что вся эра доткомов явилась настоящим бедствием для IT/CS индустрии в целом и для UNIX в частности. Под удар попало качество программных продуктов.

У меня нет точных сведений, насколько IT индустрия увеличилась в объёмах на протяжении периода доткомов. Моя личная оценка такова, если считать количество всплывших на поверхность профессий, что наша ниша выросла на два порядка, то есть более чем на 10 000%.

Влюбиться в компьютеры просто — практически любой может накодить рабочую программу, ровно как практически любой может прибить гвоздём одну доску к другой, за несколько попыток уж точно. Проблема в том, что доля таких вот непрофессионально прибитых друг к другу досок крайне мала, если рассматривать рынок домашней мебели. А чтобы перейти от двух досок к прилично выглядящему комплекту стульев или к встроенному шкафу требуются талант, практика и образование. Те самые (10 000% — 100%) = 9 900% дополнительных процентов не имели ни опыта, ни образования, когда они пришли в IT отрасль. И до того, как у них появился шанс получить это, вечеринка закончилась и большинство осталось вообще без работы.

Я проявлю милосердие и замечу, что те, кто зацепился за должность, были, несомненно, наиболее талантливыми и наиболее умелыми из всех, но даже в этом случае нельзя отрицать, что они не состоялись как IT-профессионалы из-за отутствия жизненного опыта.

Базарный стиль, за который так ратовал Э. Рэймонд, "Просто запили", противопоставляемый грамотно спроектированным соборам из пре-доткомовского периода, не сгинул после краха доткомов, к сожалению, и сегодня UNIX скоротечно тонет под собственной тяжестью.

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.

Это печальная реальность базара, восхваляемого Рэймондом в своей книге. Кучка старых прогнивших насквозь хаков, бесконечно скопипащенных поколением невежд а-ля «IT профессионалы». Можно прокричать им в ухо «IT архитектура!», но они всё равно не услышат.

Сегодня уже сложно поверить, но под этим мусором, затрудняющим движение, находятся руины красивого собора UNIX, заслуженно славящегося своей простотой дизайна, достаточностью функций, элегантностью исполнения… Всё тлен, иначе говоря.

Одно из великолепных высказываний Брукса — «Качество появляется только тогда, когда кто-нибудь несёт ответственность лично». Я удивлён, что Брукс не приводит UNIX в качестве примера к этому высказыванию, ведь мы можем с почти хирургической точностью определить момент, когда UNIX начал фрагментироваться — в начале 90-х AT&T выделила UNIX и продала все права на него компании Novell, тем самым забрав систему у её архитекторов. (Денис Ритчи сравнил эту сделку с продажей души за батон хлеба — прим. переводчика).

Другие недавно пришли к такому же мнению, как и Брукс. Некоторые пытались навязать своего рода здравомыслие или даже сложить закон формально, в виде технических стандартов, надеясь навести порядок и структуру на базаре. Все попытки эффектно провалились, потому что поколение затерянных на базаре дотком-вундеркиндов никогда не видело собора и, следовательно, не может даже представить себе, почему и зачем нам нужны эти соборы.

Это печальная ирония, конечно. Те, кому посвящена книга Брукса «Design of Design», найдут её совершенно непостижимой. Ну а для тех товарищей, кто хоть раз задумывался о том, что использование макросов m4 для конфигурации autoconf для генерации shell-скрипта для проверки наличия 26 компиляторов Fortran с целью собрать веб-браузер — это как-то немного через жопу, Брукс предложил хорошо аргументированную надежду, что у нас есть шанс всё исправить.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB