Найти тему
ZDG

"Ты рассуждаешь как программист"

Оглавление

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

Не так давно я закончил просмотр сборника игр для БК-0010. И помимо интересной информации и впечатлений меня кольнуло одно неприятное воспоминание.

Я работал начинающим 18-летним программистом, а мною руководили дяденьки и тётеньки за 30-40-50 лет.

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

Подобные требования я встречал в штыки и долго спорил. Я считал, что всё сделал правильно и менять ничего не нужно.

И тут одна тетёнька говорит мне, с таким насмешливым превосходством:

"Ты рассуждаешь как программист"

Меня это дико бесило и оскорбляло. Дело в том, что программисты, в общем-то, считают (считали?) себя умными людьми, и даже более того – некой интеллектуальной элитой на фоне большинства. В те времена, когда компьютерная индустрия только развивалась, это имело под собой некоторые основания.

Короче говоря, получалось, что сам я умный, и значит я делаю программу так, как её сделал бы умный человек. Но некая "тупая курица", которая сама двух строчек на Бейсике не напишет, считает меня неумным, а программисты для неё – как будто люди второго сорта.

Со временем я понял, что правы обе стороны.

Принцип дурака

Програмисты действительно люди не от мира сего. Когда программист работает, он находится где-то в Матрице, в виртуальном пространстве. Он видит там свою программу как некую сущность.

-2

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

Красоту программы могут оценить только такие же программисты, да и то не всегда. Только автор знает, насколько красива его программа. А даже если она некрасива, это всё равно его родное детище, которое он любит без остатка.

И тут приходят дураки.

Отношение дураков ко всему – исключительно материалистическое. Могу ли я это использовать? Могу ли я на этом заработать деньги? Вот два главных вопроса. Программа красивая внутри? Да вообще насрать.

Программы, которые пишет программист на работе, должны приносить деньги. А это значит, что ими должны уметь пользоваться дураки. Как можно больше дураков.

-3

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

Там, где нужно было просто ввести число, теперь нужно добавить кучу проверок. А не букву ли ввёл дурак вместо числа? А не отрицательное ли число? А может, он ввёл пустое значение? А что, если дурак вообще не нашёл, где вводить число, и сейчас просто сидит и тупо смотрит в экран?

Всё это называется "Защита от дурака".

Поэтому и появляются требования вроде "вот эту кнопку надо сделать большой, красной и мигающей, иначе её не заметят". Такая кнопка порушит всю эстетику интерфейса, и заставит программиста писать ещё и функцию мигания, но спорить бесполезно – в мире, где есть дураки, программы должны писаться для дураков.

-4

Отправка формы на сайт занимает, условно, 10 строчек кода, а 100 строчек занимают проверки – да, на защиту от дурака программист тратит в разы больше времени и кода, чем на собственно функционал программы.

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

В Древней Греции атлеты выступали на соревнованиях обнажёнными. Ничего лишнего, только красота тела. Представьте, как это выглядело бы, если бы атлеты были покрыты огромными раковыми опухолями, обвешаны костылями, к ним со всех сторон были привязаны подушки, а каждая часть тела была подписана большими буквами – "рука", "нога"...

Для программиста это так и выглядит. В его прекрасную программу пришли дураки, всё сломали, и натоптали везде грязными копытами.

-5

По сути, проблема программиста в том, что он хочет писать программы, но не хочет писать программы для дураков. В ответ на "Ты рассуждаешь как программист" он может ответить лишь "А ты рассуждаешь как дурак".

Есть ли выход?

Да, он есть. Программисту нужно "принять" дурака. Есть такое английское слово "embrace", оно означает и "понять", и "обнять", и "объять", и "приять". Так вот дурака нужно embrace.

Нужно не писать программу, а потом вставлять в неё большую красную мигающую кнопку специально для дурака, а писать программу сразу, с самого начала, для дурака. Это потом позволит обойтись без красной мигающей кнопки, и, парадоксально, может даже сделать саму программу и лучше, и красивее.

В конце концов, у программиста может быть домашний питомец – кот или собака. Животное явно тупее человека, но если попросить программиста написать программу для своей собаки, то он с радостью согласится. Ведь он любит свою собаку и хочет сделать программу удобной и понятной для неё.

Точно так же программист должен полюбить и дурака, и это пойдёт на пользу обоим.

После всех прожитых лет, вернувшись к играм на БК-0010 и немного поиграв в них, я почувствовал себя дураком. И мне так и хочется сказать тогдашним авторам этих игр:

"Вы рассуждаете как программисты."

В следующем выпуске мы рассмотрим на примерах, что и как было сделано в тех играх, и как всё исправить.