Когда таких ребят начинаешь убеждать, что планку надо несколько снизить и попытаться передать свои знания и умения значительно менее продвинутым программистам, число которых исчисляется десятками тысяч, а то и миллионами, они отвечают, что им это не интересно, и предпочитают оставаться в своей башне из слоновой кости.
При этом им абсолютно безразлично, что ситуация в программировании напоминает круг света от фонаря: чем шире круг, тем больше граница с темнотой.
Таким образом, расстраиваться от того, что суперпрофессионал не пришел в восторг от твоей работы, вряд ли стоит, так как таких специалистов крайне мало и они обычно амбициозны, а потому пассивны. Их оценки мало влияют на развитие технологий (максимум, чему они могут помешать, - это выступлению на конференции). Другое дело специалисты в предметных областях, которые не являются классными программистами. Их значительно больше, они «ближе к народу» и могут оценить предложение в программировании, относительно которого представитель программистской элиты лишь «пожмет плечами». Они не только могут внедрить понравившийся подход сами, но, поскольку обычно имеют более активную жизненную позицию, еще и склонны делиться приобретенными знаниями с большим числом программистов-непрофессионалов.
Так обстоит дело при обсуждении научных или технологических предложений. В практическом программировании имеет место прямо противоположная ситуация.
«Нет таких преград, которые не могут взять коммунисты», - говорили при советской власти. Сегодня это может быть перефразировано следующим образом: «Нет таких задач, которые (особенно за большие деньги) не возьмутся решать продвинутые программисты».
Высокое мнение профессионалов-программистов о себе и законы бизнеса заставляют многие программистские фирмы браться за любую работу, которая приносит прибыль. При этом то, что они не являются профессионалами в соответствующей предметной области, их не очень смущает - они умные и поэтому считают, что разберутся практически в любой проблеме. Они взялись бы, например, и за управление ядерным реактором, но, к счастью, без соответствующих лицензий их туда не пустят.
О том, к чему это приводит, пишут в своей книге [Ослэндер Д.М., Риджли Д.Р., Ринггенберг Д.Д. Управляющие программы для механических систем. Объектно-ориентированное проектирование систем реального времени. - М.: Бином. Лаборатория знаний. 2004] сотрудники кафедры механотроники Калифорнийского университета в Беркли: для систем реального времени в 1997 году 80% всех проектов были вовремя не внедрены из-за плохого качества программного обеспечения (ПО).
Авторы книги считают, что для повышения качества программ необходимо «принять такую техническую политику, при которой не только написание кода (программирование) рассматривается как творческая деятельность!» (формулировка, сильно смягченная мною. - А.Ш.).
Это может быть обеспечено, если специалисты в предметной области детально будут описывать (используя диаграммы состояний), как управляющее ПО должно себя вести, а программисты - разрабатывать различные инструменты (включая, например, шаблоны) для преобразования таких описаний в программы на заданных языках программирования. Это делает собственно программирование гораздо более рутинным, так как творческая часть в значительной мере переносится на этап проектирования и отдается на откуп другим людям.
При этом, однако, процесс создания программ становится более упорядоченным, и резко уменьшается число ошибок в них. При таком подходе описание поведения системы достаточно просто для понимания широким спектром заинтересованных лиц, а не только проектировщиками и программистами, что тоже способствует повышению качества программ.
Кстати, в автоматном программировании («КТ» #633), которое было предложено значительно раньше, чем была написана книга специалистов из Беркли (2002 г.), я использую те же самые идеи, «кощунственные» для традиционного программирования.
Обобщая сказанное, хочу посоветовать талантливым программистам заниматься разработкой методов, технологий и инструментальных средств, а не решать за профессионалов прикладные задачи. Это позволит широкому кругу профессионалов в различных предметных областях использовать указанные разработки программистской элиты, что должно привести к синергетическому эффекту, выражающемуся в резком улучшении качества разрабатываемых программ.
Но главный совет состоит в том, что не стоит сильно расстраиваться, если в ответ на ваши предложения представители программистской элиты будут только пожимать плечами, так как даже они далеко не все понимают в жизни!
СОБЫТИЯ: Да здравствует Большой Футбол!
Автор: Андрей Комрачков
Праздник, имя которому Футбол, завершился! Все матчи сыграны, все голы забиты, все таблетки съедены. Настало время подвести итоги. Например, «выступления» хайтек-индустрии, которую бесспорно можно назвать вторым победителем наряду с итальянцами. Прошедший чемпионат был признан самым высокотехнологичным за всю его историю.
Начнем, пожалуй, со скандалов… А их оказалось не так много, как вы могли подумать. И тому есть одна очень важная причина: футбол все тот же, что и сто лет назад. Он консервативен не меньше, чем FIFA (Federation Internationale de Football Association, Всемирная футбольная ассоциация).
Высокотехнологичные новшества в игре практически не используются. Мы по-прежнему выходим из себя, когда видим, как растяпа-судья, проглядев момент, выносит неадекватный вердикт, не имея возможности посмотреть повтор в спорных ситуациях. Сборная Франции негодует, когда судья не засчитывает мяч, оказавшийся в воротах сборной Южной Кореи. А каково болельщикам?! - у них-то повтор есть. Технологии, способные решить эти проблемы, давно существуют, но чиновники FIFA непреклонны. Они скорее готовы говорить об отмене повторов для зрителей стадионов, нежели дать такую возможность главным арбитрам.
Большинство скандалов на чемпионате, так или иначе, были связаны с судейством. От этого безобразия пострадала и сама FIFA. Она была вынуждена закрыть свой электронный почтовый ящик из-за лавины писем разгневанных корейских болельщиков, чья сборная вылетела с чемпионата мира по футболу, проиграв в последнем матче группового турнира швейцарцам. По данным корейской газеты Joong-Ang Daily, болельщики отправили больше 4 млн. писем в надежде на переигровку матча. Какой-то шутник опубликовал информацию о том, что FIFA согласится на переигровку, если поступит 5 млн. возмущенных посланий. Да, судейство было ужасным, но праздника это не испортило.
Полагаю, многим болельщикам запомнился удар Зидана головой в грудь итальянца Матерацци. Этот поступок капитана сборной Франции сразу же был воспет во флэш-игрушке под названием «Почувствуй себя Зиданом!». Место действия - футбольное поле. Навстречу Зидану несутся игроки в синих майках, надо думать - итальянцы. Задача играющего - не пропустить вражеских футболистов к своим воротам. Клик мышки - Зидан совершает знаменитый удар, и соперник как подкошенный валится на землю. В первые же часы своего существования, от обилия желающих побывать в шкуре Зидана, сайт tonaz.altervista.org повис.
Скажу честно, на этом чемпионате единственная сборная, которой я желал провалиться, была Португалия (до сих пор остры воспоминания о нашем позапрошлогоднем позоре - 7:1). Болел против Португалии в целом и против Криштиану Роналду в частности (забил нам тогда два гола из семи). Знаменитого симулянта отметили и создатели сайта ihateronaldo.com, и я с ними солидарен.