История одного бесплатного черного ящика

Представьте себе черный ящик. Большой такой, черный. С кнопками, значит… Этот черный ящик сделал Джек. Внутри него (ящика, не Джека) какой-то несложный механизм: так, пара шестеренок, несколько рычагов, ведущих к кнопкам снаружи. Эта штуковина должна по утрам готовить Джеку чай. И она, вроде бы, справляется. Время от времени возникают проблемы, заклинивает рычаг регулирования времени заваривания чая, но в целом Джек доволен своей изобретательской работой. Он улыбается и фломастером подписывает кнопки на черном ящике. Правда, фломастер черный и на черном корпусе, естественно, не виден, да еще и кончились чернила на предпоследней кнопке.

К Джеку приходит друг Фред. Фред приходит в восторг от того, с какой легкостью Джек наливает им чаю. Всего лишь нажав пару кнопок. Фред просит у Джека этот ящик на некоторое время. “Конечно,” – говорит Джек и с легкостью отдает игрушку. “Только, пожалуйста, подпиши последнюю кнопку, у меня не хватило фломастера,” – добавляет он вслед.

Фред приносит домой игрушку и показывает ее своей жене Элизабет. Готовит чаю на всю семью, строго по инструкции Джека. С утра Фред уходит на работу, а Элизабет начинает экспериментировать с черным ящиком. Она жмет то одну, то другую кнопку… И смотрит, последняя – неподписана. Она ее нажимает и что-то внутри крякает и скрежечет и из коробки высыпается сухой чай. Элизабет подписывает ее “Насыпать сухого чая”. От греха подальше, чтобы все знали. Жаль, она не знала, что Джек хотел, чтобы эта кнопка делала чай вдвое крепче…

На следующий день Фред уносит ящик к себе на работу, где его шеф решает серьезно доработать ящик и сделать из него универсальный кухонный агрегат. И вот уже 10 добровольцев трудятся каждый над своей частью ящика: кто-то делает механизм приготовления кофе, кто-то модифицирует систему заварки чая, кто-то туда же прилаживает зажарку яичницы… И в порыве творческого катарсиса увлеченные инженеры не щадя усилий лепят кнопки на лицевую панель приборчика. Потом они собираются, обсуждают назначение этих кнопок и решают сделать каждую из них многозначной. Это называется абстракцией: когда у пользователя будет целая уйма инструментов, каждый из которых ничего конкретного не делает, но собранные в определенной последовательности они дают уникальные результаты. Каждому дается задание подписать свою кнопку. В итоге появляются надписи вроде “Приготовить / Кофе / Чай / Яичница”, “Сахар / соль / слить / зажарить”… Ах, да. Надпись Элизабет решают тоже не трогать. И потом, повинуясь позыву человеколюбия команда создателей Черного Ящика 2000 решают раздавать его всем бесплатно. Этот шаг автоматически делает их Гуру-Создателями. и пусть каждый теперь доделывает Черный Ящик и распространяет. И вот уже не 10, а тысячи людей трудятся, каждый прилаживает скотчем и клеем свои, новые, уникальные (а зачастую и повторяющие уже существующие) возможности. Вот уже использование этого ящика иногда бывает опасным. Если, например, нажать кнопку “Сахар / соль / слить / зажарить” и “Насыпать чаю”, то может убить током.

Каждый начинает рассказывать, каким уникальным образом он использует кухонную машину Черный Ящик 2000, делает новые подписи на кнопках, пишет десятки страниц в Интернет о том, каких небывалых высот достиг. Теперь каждая домохозяйка вооружившись статьями “Приготовление пудинга на ЧЯ 2000″ и “Как наварить чаю за 3 минуты на ЧЯ 2000″ может поскрежетать мозгами и создать какой-никакой пирог с яблоками.

В итоге мир оказывается нагружен:

  • Нелепым Черным Ящиком 2000 во всех своих многочисленных модификациях, с кучей неподписанных и неправильно подписанных кнопок, горой скрежетающих шестеренок, регулярно заклинивающих друг об друга.
  • Морем статей на тему того, как использовать Черный Ящик 2000 (зачастую неясно какую его модификацию)
  • Мифическими Гуру-Создателями, которые когда-то разбирались в том, как и зачем работает Черный Ящик 2000, но теперь едва ли смогут не убиться, пытаясь им воспользоваться. В настоящий момент стараются казаться безумно занятыми, дабы не обнажать тот факт, что и сами не разбираются в этом Ящике.

Вот такая вот история. Ее написать меня сподвигла попытка создать сайт на базе CMS Drupal. Удивительно расширяемая и удобная CMS, обладающая целой уймой потрясающе удобных и абстрактных инструментов. То, что надо, для любого проекта: никакой толком документации, уйма различных версий и модификаций, частенько вкорне несовместимых. Впрочем, документацию заменяет Wiki-помойка на официальном сайте проекта. Это уже не говоря о том, что сам проект представляет собой мегабайты PHP-кода, который даже в “Hello, World” вынужден выполняться.

Никогда не был противником Open Source, но это – воистину невыносимый инструмент. Этакие пассатижечайникомолоткобензопилокосилки, приправленные инструкцией на китайском.

Радует лишь тот факт, что это характерная черта не всех Open Source проектов. Некоторые проекты на полшага впереди остальных. Например, тот, который я выбрал вместо Drupal для реализации своего нового проекта: Ruby On Rails. Даже учитывая тот факт, что Ruby мне был до того момента решительно незнаком, использовать и понимать его оказалось куда проще, чем давно знакомый PHP, на котором написан Drupal.

В общем тем, кто занимается Веб разработкой, и еще, как и я, не слез с каменного велосипеда на квадратных колесах (PHP), крайне рекомендую присмотреться к более современным инструментам. Например, Ruby On Rails ;) .

Удивительно емкий и краткий язык послужил базой для хорошего по замыслу проекта. Этот сплав в итоге сократил количество дополнительного кода в десятки раз, оставив при этом полный контроль над тем, что происходит.

Огромным дополнительным плюсом является наличие ко всем модулям Unit-тестов, из которых, даже толком не имея документации, понять то, как они работают. Этакие готовые use cases.

Даст Бог, не разочаруюсь и смогу-таки завершить проект, не начав употреблять расширяющие сознание средства.

Метки: , , , ,

2 коммент. к “История одного бесплатного черного ящика”

  1. eugeny пишет:

    пока было про ящик было интересно, как пошло про друпал – бее

    друпал позволят сделать подавляющее большенство проектов без заглядывания в код, за это и любим

  2. sky пишет:

    2eugeny:

    Боже упаси, если я затронул чьи-то чувства и пристрастия. Более того, я не отрицаю, что Друпал – наиценнейший инструмент. Просто мне, как человеку незнакомому с ним, было тяжело его даже попытаться освоить. Это определенно заставляет меня думать о нем, как о черном ящике. С Rails все оказалось гораздо проще. С ASP.NET тоже. Впрочем, наверняка тут сказывается как раз моя любовь “заглянуть в код”.

    Пост в целом про GNU, с которым, я уверен, каждому разработчику (Web или не очень Web) приходится сталкиваться. Мне вот тоже приходится сталкиваться. И реализовывать на нем проекты. Просто часто это бывает сложнее, чем нужно.

    Вот мой хороший друг Роман Пушкин любит ASP.NET в том числе и за это – за быстроту разработки, обилие документации и отсутствие лишней, ненужной работы при реализации проекта. В этом я его всецело поддерживаю.

Оставить комментарий или два