В последнее время часто стали появляться вопросы: Как выбрать шаманский бубен программиста? Каким должен быть бубен? Специально для того, чтобы ответить на эти вопросы и развеять ряд накопившихся мифов и заблуждений вокруг данной темы, я пишу эту статью.
В разных источниках можно встретить массу рекомендаций. Например, что радиус бубна должен быть равным радиусу кривизны рук программиста[1] или, что бубен должен быть сделан из кожи "девственного юзера"[2] или, что цвет бубна должен совпадать с цветом обоев на компьютере и т.п. Е-р-у-н-д-а! Глупые суеверия и невежество! Неважно какого цвета, размера и из какого материала изготовлен бубен. Важно лишь то какие рунические письмена нанесены на бубен.
Какие же руны должны быть на бубне?
Ответ прост. Это должны быть фрагменты кода реальных, а главное, работающих программ. Желательно, чтобы фрагменты были взяты из разных программ и написаны на разных языках программирования.
На каких же языках должны быть руны на бубне?
А это зависит в первую очередь от того на каком языке написана заклинаемая программа. Если Ваша программа написана на C++, то на Вашем бубне обязательно должна быть руна на C++, если программа на Java, то должна быть руна на Java и т.д. Если Ваша программа написана на нескольких языках, то Ваша задача усложняется, т.к. Вам потребуется бубен с рунами каждого из используемых языков. Можно ли использовать несколько бубнов вместо одного? Да, но только если они совместимы между собой[3]. Запомните, что бубен без руны используемого Вами языка программирования для Вас бесполезен. Однажды я встретил бубен с рунами на Коболе и ассемблере IBM 360. Дествительно редкая вещь! Но для современного программиста совершенно бесполезная.
Выбирая бубен, остерегайтесь подделок. Сейчас можно встретить множество бубнов с кричащими именами: 20 в одном, 40 в одном и даже 100 языков в одном бубне. Но если внимательно присмотреться к таким 'творениям', то видно, что все фрагменты кода приведенные там есть ничто иное, как программа 'Hello World!', продублированная на разных языках. Такой бубен Вам ничем не поможет. Разве только при создании программы уровня 'Hello World!'.
Предположим Вы выбрали бубен и приготовились к танцу. Хорошенько подумайте о том какой именно танец Вы собираетесь воспроизвести. Помните, что не любой танец подойдёт для Вашей программы. Танец изгнания духа Меморилика[4] совершенно бесполезен для программы написанной на Java, точно так же бесполезен танец задабривания виртуальной машины Java для программы на С++[5].
И напоследок я хочу развенчать устоявшийся миф о том, что танцы с бубном способны изгнать баги из программы. Несусветная глупость! Однако очень живучая и кочующая из поколения в поколение. Суть танца с бубном есть обращение к Великому Духу Первопрограммера и его сыну Первопрограмме, а также отречение от Первородного Бага. Правильно исполненный танец с правильным бубном будет услышан Великими Духами и они даруют Вашему детищу своё Благословение и Защиту от багов. Таким образом Вы не избавитесь от багов, но они на время перестанут проявляться. А вот на какое время они перестанут проявляться зависит от мастерства танцора. Я различаю 4 уровня мастерства владения бубном.
1-й уровень
Программист умеет заклинать конкретный экземпляр программы на конкретном компьютере на короткий срок.
2-й уровень
Программист умеет создавать собственный бубен.
3-й уровень
Программист умеет заклинать множество экземпляров программы на множестве удалённых компьютеров на длительный срок.
4-й уровень
Программист умеет обходиться без шаманского бубна.
И наконец, мой последний совет.
Допустим Вы купили бубен и совершили удачный танец — программа во время сдачи работала как надо. Не торопитесь почивать на лаврах. Сядьте и попробуйте разобраться, почему Ваш код работал не так как надо[6]. Если же это невозможно, то у Вас есть два варианта: пересмотреть свою жизненную позицию и заняться чем-то другим[7] либо валить нафиг из этой шарашки, в которой создание программного продукта без плясок с бубном невозможно.
Искренне Ваш,
Гура Кодович Бажев
[1] Определение радиуса кривизны рук программиста и эмпирическая формула вычисления радиуса хорошо описаны в знаменитой книге Федора Буста "Мифический человеко-бубен".
[2] "Девственный юзер" — ныне почти вымерший вид пользователя, не испорченного графическим пользовательским интерфейсом.
[3] Совместимость бубнов между собой выходит за рамки данной статьи и будет расмотрена автором в отдельной статье.
[4] Меморилик — злое мифическое существо по мнению дотнетчиков проживающее в каждой программе на C++. ( (с) WolfHound )
[5] Обучиться танцами с бубном Вы можете с помощью моих книг: "50 эффективных танцев c бубном" и "Ещё 35 более эффективных танцев с бубном".
[6] А тебя Петя это касается в первую очередь. Ты думаешь я писал эту статью ради твоего развлечения?! Мне уже порядком надоел 'The instruction at "0x00405414" referenced memory at...' в твоём модуле. Сейчас после сдачи есть немного спокойного времени. Так вот сядь, разберись и покончи с этой ошибкой раз и навсегда!
[7] Нет, Петя, я не шучу.
P.S. Навеяно темой "Прграмма не работает.."
Любая сложная технология неотличима от волшебства. (Артур Кларк)
Здравствуйте, Kubera, Вы писали:
K>В разных источниках можно встретить массу рекомендаций. Например, что радиус бубна должен быть равным радиусу кривизны рук программиста[1]
Э... а для программиста с "прямыми" руками понадобится бубен бесконечного радиуса?
Здравствуйте, Дарней, Вы писали:
K>>В разных источниках можно встретить массу рекомендаций. Например, что радиус бубна должен быть равным радиусу кривизны рук программиста[1]
Д>Э... а для программиста с "прямыми" руками понадобится бубен бесконечного радиуса?
В данном труде по этому поводу есть четкое высказывание:
Здравствуйте, Kubera, Вы писали:
K>Танцы с бубном: мифы и реальность
Даешь бубнификацию всей страны! Кстати, танцы бывают разные:
Бывают также парные танцы с бубном. Особенно хорошо когда партнерша —
специалистка в экстремальных танцах. В латиноамериканских танцах с бубном также можно
получить немало удовольствия с хорошей партнершей. В одиночку заниматься такими танцами
банально скучно...
Сейчас в интернете появились сайты, предлагающие широкий спектр
виртуальных танцев с виртуальными бубнами. Так вот — не верьте! в лучшем случае вам предложат
вместо бубнов крести или пики или, что самое плохое, подсунут вам уже совсем не вирутальных
червий...
И кстати: Минздрав предупреждает!
На людей, постоянно бубнящих при занятиях программированием, танцы оказывают тажелое психологическое. видели старичков, которые ходят и бубнят что-то себе под нос? Так вот — это яркий пример как из нормального программиста, с детства балующегося бубнами, психологическая зависимость делает invalida...
Здравствуйте, Дарней, Вы писали: Д>Э... а для программиста с "прямыми" руками понадобится бубен бесконечного радиуса?
Это косяк. На самом деле все наоборот: R ~ 1/r. Т.е. программисту с идеально прямыми руками хватает бубна с нулевым радиусом. Увы, я таких программеров не встречал. Извини, писать подробнее нет времени — от заказчика позвонили, мой инсталлер опять зараза не пашет... Где же бубен...
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
K>Предположим Вы выбрали бубен и приготовились к танцу. Хорошенько подумайте о том какой именно танец Вы собираетесь воспроизвести. Помните, что не любой танец подойдёт для Вашей программы. Танец изгнания духа Меморилика[4] совершенно бесполезен для программы написанной на Java, точно так же бесполезен танец задабривания виртуальной машины Java для программы на С++[5].
А как же злобное божество Аксес Виолейшн, и его верный слуга Буфер Оверран? Как мог ты забыть о них, о несчастный грешник? Покайся, пока не поздно! Покайся, а не то страшная кара падет на твою голову! И тогда Интернал Ерроры никогда не покинут твой компилятор, а твоя программа покажет тебе "фак" прямо перед светлейшим лицом Заказчика
Здравствуйте, shaytan, Вы писали:
SAV>> Начинаю изготовлять бубен! S>Зови меня, ты будешь делать а я пиво пить, иногда тебе подливать
Да тебя и звать не надо...
Здравствуйте, Дарней, Вы писали:
K>>Предположим Вы выбрали бубен и приготовились к танцу. Хорошенько подумайте о том какой именно танец Вы собираетесь воспроизвести. Помните, что не любой танец подойдёт для Вашей программы. Танец изгнания духа Меморилика[4] совершенно бесполезен для программы написанной на Java, точно так же бесполезен танец задабривания виртуальной машины Java для программы на С++[5].
Д>А как же злобное божество Аксес Виолейшн, и его верный слуга Буфер Оверран? Как мог ты забыть о них, о несчастный грешник? Покайся, пока не поздно! Покайся, а не то страшная кара падет на твою голову! И тогда Интернал Ерроры никогда не покинут твой компилятор, а твоя программа покажет тебе "фак" прямо перед светлейшим лицом Заказчика
Я думаю перечесление всех злых духов выльется в отдельный труд, куда войдут такие классическое злокозненные духи как Стек Оверфлоу, ФаИл Нот ФаУнд, Аксес ДЕнай и самый загадочный из духов Анкноун Эрор
Вы писали 29 апреля 2004 г., 11:21:15:
В> From: Ведмедь
В> Я думаю перечесление всех злых духов выльется в отдельный труд, В> куда войдут такие классическое злокозненные духи как Стек Оверфлоу, В> ФаИл Нот ФаУнд, Аксес ДЕнай и самый загадочный из духов Анкноун Эрор
хорошо сказал но что делать с АбсТракт Еррор?
Posted via RSDN NNTP Server 1.7 "Bedlam"
Когда-нибудь и я буду много знать, но пока это не грозит...
ICQ #134433
Здравствуйте, Ведмедь, Вы писали:
В>Я думаю перечесление всех злых духов выльется в отдельный труд, куда войдут такие классическое злокозненные духи как Стек Оверфлоу, ФаИл Нот ФаУнд, Аксес ДЕнай и самый загадочный из духов Анкноун Эрор
Аксес Де Най — это не злокозненный дух. Это дух французского дворянина, защищавшего город Най до последней капли крови и с тех пор служащего покровителем этого города.