Comments 20
Зачем вообще с чем-то сравнивать? Развели тут батл метафор)
А статья — да, интересная.
Одна из основных целей употребления метафор — это помочь неосведомленному человеку в доступной форме объяснить о чем-либо. Например, сопоставить процесс разработки ПО с другим более привычным для обывателя процессом (строительство, садоводство и т.д.). И поэтому конкретные метафоры нужно подыскивать под конкретного человека. Ведь объяснить химику, что такое разработка программ будет легче всего, если дать отсылки на «родную» ему область знаний и интересов. Также и для режиссера привычней сравнение с кинопроизводством, а для садовника приятнее аналогия с сельским хозяйством.

В общем эффективность любой метафоры весьма относительна и зависит от контекста.

Не факт. Тот же МакКоннел, достаточно верно на мой взгляд, замечает, что метафоры не менее важны в контексте восприятия своей работы самим програмистом.
Любая индустрия, когда выходит из лабораторий энтузиастов и становиться достоянием широких масс, преобразуется. Химику в лаборатории не надо сильно беспокоится о доступности компонент, а технологу надо. Фишка разработки ПО в том что ограничения, которые будут определять форму и содержание индустрии уникальны и прежде всего зависят от людей а не от обьективных ресурсов. Так что сравнивать с чем-то уже сформировавшимся достаточно бессмысленно.
Дональд Кнут считает это искусством (Knuth, 998).

Так и знал, что профессор был, есть, будет!
Да елки-палки. Люди мы! Люди, которые занимаются любимым делом.
Шокирует? ;)
Вы просто не можете сажать те же саженцы, что и Facebook, Flickr и Twitter и ожидать, что они укоренятся
Google и Yandex, Facebook и vkontakte — наши компании сажают те же саженцы :)
Дело в том, что сейчас программирование уже не является однородным, поэтому можно придумывать множество метафор и они будут как-то описывать некий класс задач. Ключевое слово — как-то, т.к. любая метафора — это всего лишь метафора, т.е. некая проекция на реальную суть вещей, причем не всегда однозначная и корректная. Если взять программирование, то здесь есть целый класс задач:
1. Веб-программирование: необходимо уметь работать с HTML, верстка, javascript, php, базы данных. Часто процесс понятен и отлажен.
2. Высокопроизводительные сервера: что-нибудь типа C/C++, причем часто без исключений, шаблонов и других плюшек.
3. Большое количество автоматизации, например облака: часто пишут на скриптовых языках, типа питона.
4. Можно еще писать навороченные web приложения: используют что-то типа java, C#.

Это просто некий список, чтобы стало понятно, что решается различный класс задач. Есть еще один класс, называется: реализация идеи, типа прототипирования. Здесь нужны совсем другие навыки, больше исследовательские. Каждый тип задач требует разных знаний, разных языков и разных подходов. Нет одного универсального языка или подхода, который бы решал все задачи. Я еще не упомянул разработку в НАСА, там совершенно иной мир разработки.

К чему я все это? Что программирование настолько широкая область, что можно применить множество метафор, и они в той или иной области будут верны.
Рекомендую по теме почитать:
Стив Макконнелл Профессиональная разработка программного обеспечения (Professional Software Development)
Там всё написано…
Вот ламеры...., зачем писать на хабре комменты, если твоими советами ПО ТЕМЕ никто не пользуется…
Я всё же отмечу, что я прочел эту книгу и мне высказывания Geoff Moes кажутся колупанием в носу, баяном и т.п…
По-моему, программирование больше похоже на электронику, только виртуальную.
Некоторым покажется, что это одно и то же, но многие программисты до сих пор собирают все на проводках или берут готовую плату и напаивают на нее своих проводков, вместо того, что расширять плату или перепроектировать ее. В программировании IoC container напоминает плату в электронике — отвечает за связь разрозненных, хорошо тестируемых, элементов.
Для меня программирование это секс, ты либо получаешь удовольствие от него либо нет. И получившееся детище во многом зависит от тебя. Каждый раз перед началом процесса замираешь от предвкушения, потом время летит не заметно, а в конце — оргазм и удовлетворение когда все получается!
Инженер — это человек, который получил профильное высшее образование, умеет применять знания, методики и стандарты, которые ему преподали в университете. В программировании нет никаких стандартов и методик, половина так называемых программистов либо не заканчивала ВУЗы, либо непрофильно, многие непонимают зачем нужны всевозможные дискретные математики и теории оптимизаций, многие плюются при виде Кнута и алгоритмов, мол, зачем всё это.
Нечего тут сранивать, потому как действительно большая часть далеко не инженеры. Вся эта часть именно Джамшуты, которые научились кто плитку класть, кто полы стелить, а кто и обои клеить, так и живут, так и зарабатывают на кусок хлеба.
И примеров тому масса, вокруг себя да и в себе можно найти. Тот же хабр можно применить как зеркало, в котором каждый день появляются статьи таких вот Джамшутов, которые хотят менторским тоном рассказать что-то про инженерию, а сами дальше третьей главы второй книги на заглядывали.
Вот-вот. У меня, лично, да и у всех моих прошлых и нынешних работодателей, не возникает вопроса: «кто я»? Потому что в дипломе, полученном честным путём во времена СССР, чёрным по белому написано: специальность: Инженер-системотехник (Вычислительные машины, комплексы, системы и сети). Собственно этим инженером я двадцать лет и работаю. И если кому-то кажется, что он садовник, то может быть он неверно выбрал специальность. А хабр-такой хабр, здесь таких садовников как г… за баней, это точно.
Нет, быть Джамшутом это не «плохо», но нельзя называть это «инженером». А «плохое» — это до сих пор использовать заезженные мемы, даже если это сарказм ;) (да-да, как будто в этом что-то плохое).
UFO landed and left these words here
По-моему происходит подмена понятий. Здесь, имхо, программирование приравняли к фундаментальным наукам, а ведь это только прикладуха к химии, физике, математике и тд. Программиста не окончившего технический вуз я бы не назвал инженером. Неоспоримо, что и определенный талант быть должен.
P.S. Инженер в переводе на русский — изобретатель
Only those users with full accounts are able to leave comments. Log in, please.