Текущее и управление

Есть у меня друг. С ним мы много раз говорили об управлении предприятиями и каждый раз наш разговор наталкивался на рифы противоположных аксиом, на которые каждый из нас опирается в ходе своих размышлений. Он считает, что управление — суть гуманитарная задача, которую может решить только человек. Человеку нужен человек. Человек всегда будет хотеть говорить с человеком.

Я же считаю, что управление (по большей части) задача технологическая и ее можно и нужно формализовать в наборы алгоритмов. Конечно в компании есть, будут и должны быть поэты, романтики и мастера своего дела, которые применяют нестандартные таланты управленцев, экономистов, инженеров и переговорщиков, но их творческое начало должно приводить в движение и создавать наборы алгоритмов. Таких людей не бывает много. Именно такие алмазы и определяют индивидуальное лицо предприятия. Значит надо максимизировать творческое начало художников бизнеса дав им необходимый набор инструментов. Очень часто в компании весьма много сотру…

Слово о сложности



Очень часто молодые (и даже не очень молодые) разработчики находятся в плену весьма распространенного заблуждения. Они полагают, что возможно описать сложное простым и даже создать нечто, которое позволит управлять сложное простым. Именно подобные люди мучительно ищут пути создания систем управления экономикой, финансами, юридическими тонкостями, цифровыми моделями всего сущего через посредство простых и понятных обывателю (и даже наивному ребенку) инструментов, и рычагов, и единых для всего методов.

Заблуждение это настолько устойчиво и старо, что говорили о нем еще со времен древних греков. В новое время серьезно это вопрос поставил Годфрид Лейбниц в своей работе «Рассуждения о метафизике» 1686 года. Потом про это весьма успешно думали и Гёдель, и Гильберт, и Колмогоров, и Чейтин. Всё без толку. Разработчики, часто, не склонны к философскому осмыслению реальности.

В этом аспекте интересно поговорить об особенностях измерений. Есть даже математические основания для формулирования законов измерений. И они просты. Чем точнее и тоньше мы хотим измерить объект нашего интереса, тем больше энергии мы должны приложить к самому процессу измерения и (что очень важно!), тем сильнее физически разрушится измеряемый объект.

Можно весьма приблизительно измерить физические параметры любимой крысы сантиметром, но для точного анализа ее внутреннего убранства придется ее убить и поковыряться внутри.

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

В физике дело еще суровей. Для постижения тайн ядра необходимы энергии очень значительные. Что делают коварные физики? Они уничтожают мишени, атакуя их высокоэнергетическими пучками. Читай разрушают объект исследования. А потом смотрят что там из этого трупа ядра гелия интересного вылетело.

Кстати, вопросы квантовых вычислений и (берем выше) телепортации объектов (Скотти! Поднимай) упирается именно в вопросы измерений. Ведь если мы будем измерять Спока недостаточно точно, то прилетит совсем не тот Спок. А если точно, то изначального Спока неизбежно надо убить и затратить на это надо огого сколько энергии. (Что же будет с бессмертной душой Спока)

К чему же я так долго подводил?

Дело в том, что процесс программирования можно описать именно в терминологии измерений. Программирование, как и любое описание чего угодно — суть измерение объекта, точного или не очень описания его сложности. Здесь начинают работать наши законы.

Чем точнее мы хотим описать реальность, тем больше энергии для этого надо затратить. И здесь совершенно не помогут волшебные средства «упрощающие» жизнь исследователя-программиста.

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

Кстати, вы не заметили, что новые модные языки заметно упростились? Go, Rust, Swift. Языки упростились но усложнились концепции, усложнилась описываемая реальность, а значит, что энергии для описания реальности потребуется очень много.

Популярные сообщения из этого блога

Надежды юношей питают.

Если лампы зажигают, значит это кому-то нужно.

Опять про QTcpSocket и disconnected