Конечно, сегодняшнее обезсеребрянопуленное состояние совсем не то, что во времена выхода упомянутой статьи: другие масштабы задач, другое соотношение провальных и удачных проектов, другая структура «массы пользователей» и «массы разработчиков» и т. п. Тем не менее все это лишь следствие накопления опыта; опытных разработчиков стало больше, накопленных ими «практических приемчиков, которые могут сработать» — намного больше; а вот общая прозрачность системы не изменилась ни на йоту — по-прежнему практически невозможно понять, что происходит уровнем ниже или уровнем выше, отделом правее или отделом левее тебя.
А значит, продолжаем искать серебряную пулю.
Можно констатировать, что весь процесс поиска заветного боеприпаса — это попытка дать гарантированный ответ на два вопроса: будет ли достигнут результат и будет ли он корректным (приемлемым)? [Некоторые считают, что есть еще и третий вопрос: когда будет достигнут результат? Но в тех случаях, когда он действительно важен, это всего лишь подмножество первого вопроса: будет ли результат достигнут настолько быстро, что он еще будет иметь смысл?] Начиная решать любую софтверную задачу в лоб (будь то создание новой ОС или поиск нужной html-странички), мы не можем заранее знать ответа ни на один из них. А если нет никакого ответа, то нельзя и предпринять заранее меры, чтобы сделать ответ более приемлемым (например, добавить в команду программистов или докупить оборудование). То есть, даже собрав в одной команде три десятка лучших в мире специалистов по разработке ОС, нельзя предсказать, что и когда у них получится и получится ли вообще.
Во времена наивной юности компьютерных наук (лет за десять-пятнадцать-двадцать до написания статьи «No Silver Bullet») было принято считать, что все эти вопросы можно разрешить одним махом: всё должен делать компьютер. Это самое «всё» по минимуму означало автоматизированную проверку корректности (формальная верификация программ, ключевые имена — Хоар и Дийкстра), а по максимуму в идеале — пресловутый Искусственный Интеллект (ключевые имена — от Алана Тьюринга и далее — легион), где человек уже не «решает задачи с помощью компьютера», а лишь «ставит задачи», а вопросы о достижимости и корректности результата являются самоприменимыми (то есть можно поставить компьютеру задачу «определи, можно ли получить решение задачи Х»). По причинам достаточно сложным и неплохо изученным «счастья для всех и даром» не наступило, и дальнейшие поиски «silver bullet» стали концентрироваться на частных решениях. Да и по сию пору концентрируются.
Проанализировав тенденции и основные направления этих поисков, можно с некоторой долей уверенности сделать выводы о текущем и последующем прогрессе софтовых технологий.
Предположим, мы начинаем амбициозный софтверный проект. Что нужно, чтобы быть уверенным в том, что проект будет успешно завершен? Ответ здесь зависит от того, кто такие «мы» — маленький стартап из трех студентов или большой Мicrosoft? [Это, естественно, крайности — зато удобные для иллюстрирования точки зрения] В первом случае «успешно завершен» означает «мы допишем его до того, как нам надоест, и сделаем все настолько cool, чтобы разом уесть всех возможных конкурентов»; во втором — «проект не завалится под собственной тяжестью и будет закончен хоть когда-нибудь». Другими словами, первых куда больше интересует эффективность используемых инструментов-технологий-подходов, а вторых — надежность (при этом первые готовы пойти на некоторые компромиссы в области надежности, а вторые — пожертвовать некоторой эффективностью). Все дальнейшее — следствия этой дихотомии.
С тех пор как мэйнфрейм размером с пару приличных офисов не является «единственным доступным компьютером на двести километров в округе», эффективность работы в некоторой программной среде означает, что рабочее время человека-пользователя (а не машины-компьютера) должно расходоваться эффективно. Именно этот резон и стимулирует развитие большого количества современных технологий — как софтверных, так и железных.
Адепты «теории заговора производителей» любят задавать саркастические вопросы вроде: зачем Pentium 4 секретарше, которая использует только Word и пасьянс «Косынка»? Или: зачем 19-дюймовый монитор с 16 миллионами цветов кладовщику?