К счастью для меня, заголовок сегодня будет относиться не к эволюционной цепочке, а к моей профессии ...хотя и на счёт эволюции у меня есть определенные мысли ;)

Коротенькая преамбула:
давеча понадобилось мне подключить внешнюю звуковую карту к своему ноутбуку. Казалось бы -- задача простая и тривиальная. В моём жизненном графике на неё было отведено ровно 7 секунд, которые у меня должны были на втыкание одного кабеля от звуковой карты в ноутбук. На практике же я уже две ночи подряд читаю документацию и форумы только с тем, чтобы получить приличный звук от этой новой карты.

Не коротенькая амбула:

Полезность компьютеров  я для себя вижу в том, что они должны упрощать те или иные моменты нашей жизни. Как только компьютер начинает создавать новые проблемы - он моментально перестаёт быть полезным. Современные компьютеры (говоря о компьютерах я имею в виду весь программно-аппаратный комплекс в целом) постоянно балансируют на "грани полезности". Да, они решают широкий круг задач, но, вместе с тем, создают ещё более широкий круг проблем.

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

Применительно к моей задаче, компьютер в идеале должен был работать примерно так:

  1. я принес новую звуковую карту. Подключил её с помощью 1 шнура к компьютеру (при этом разъем меня не мучает вопрос, в какой из разъемов подсоединять -- любой свободный подойдет);
  2. компьютер начал выводить звук через новую звуковую карту.

Пункта три в данном идеализированном случае нет и не может быть. Однако, на практике всё выглядит совсем иначе. Для случая, когда используется Windows/MacOS последовательность действий такая:

  1. я принес новую звуковую карту. Не мучаясь с выбором подключил её в первый же свободный  разъем (пока что всё хорошо);
  2. компьютер "нашел" новое устройство, но отказался с ним работать, по причине отсутствия драйверов;
  3. вставили диск с драйверами, потратили 15 минут на установку и перезагрузку;
  4. при следующей загрузке компьютера запустилась программа, которая предлагает выбрать различные настройки новой звуковой карты;
  5. после выбора настроек карта начинает работать.

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

Увы, в моём случае даже описанные выше 5 шагов не применимы, поскольку на моём компьютере используется Linux. Да, многие вещи в нём гораздо лучше сделаны, чем в Windows  или MacOS, но эти некоторые вещи не включают в себя поддержку нового оборудования. Проблема кроется в тех самых драйверах. Производитель моей звуковой карты поленился написать драйвера под линукс,  а заставить нормально работать стандартные линуксовые драйвера можно только с бубном, после долгих шаманских плясок вокруг компьютера.

Всё стало слишком сложным. Те, кто помнит, какими были компьютеры лет 15-20 назад хорошо поймут, о чём я говорю. Сложность программного обеспечения давно зашкаливает все разумные пределы (тем, кто не согласен с этой фразой я предлагаю простой эксперимент -- поискать в гугле фразу "обучение работы на компьютере" и фразу "обучение пользованием холодильника". По количеству результатов наглядно видно, что никому в голову не приходит писать статьи и записываться на курсы "как пользоваться холодильником", а вот с компьютерами всё сложно).

Не в последнюю очередь в сложившейся ситуации виноваты программисты, у которых свой собственный (извращенный) взгляд на вещи. Если бы программисты делали холодильники, то вам пришлось бы учиться 2 года перед тем, как вы сможете хранить там свою колбасу. Вам придется устанавливать специальные драйвера, чтобы холодильник стал поддерживать новые сорта сыра и перестал выключаться, если в него одновременно поместить жареную курицу и молоко. Зато ваш холодильник смог бы выходить в интернет за прогнозом погоды, позволял бы слушать FM радио и подключать к нему духовку, стиральную машину и тостер (разумеется, после того, как вы найдете совместимые драйвера).

Поэтому -- не давайте программистам проектировать холодильники. Программисты - это самое слабо звено в цепочке "задача" > "компьютер" > "решение", ибо они бесконечно далеко оторваны от обычных пользователей и их задач.

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