Маг молний

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Когда-нибудь задумывались над тем, чем, в сущности, является программирование?

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

Дисклеймер

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

И да, я знаю что электроны по проводам никуда не бегут, а едва ползут (миллиметры в минуту).

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

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

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

Фух. И это мы добрались только до аккумуляторов.

Точно так же заряжается и аккумулятор моего ноутбука. Что же происходит когда я его запускаю?

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

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

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

Ну и, конечно, процессор. Вернее один из множества микроконтроллеров в типичном компьютере, каждый из которых имеет свою внутреннюю память, I/O и арифметико-логическое устройство с набором инструкций. Но выполняемая электронами работа от этого принципиально не меняется - они попадают на транзистор, либо проходя сквозь него, либо нет (этим уже управляют другие электроны, которые попадут или не попадут на базу этого транзистора).

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

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

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

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

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

Получается, программисты - маги молний в конкретной узкой специализации :)

Завершить хотелось бы цитатой Фредерика Брукса из "Мифического человека-месяца":

Почему программирование приносит радость? Какие удовольствия
в качестве награды ждут его практика?

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

Источник: https://habr.com/ru/articles/784454/


Интересные статьи

Интересные статьи

Новый логотип студии постоянно изменяется. Как отметили в компании, это «отражает широчайший диапазон интересов студии сегодня». В каждом из разделов сайта буквы лого в шапке трансформируются: это инт...
К старту курса о разработке на С++ мы перевели статью о персональном регистраторе молний — небольшом устройстве, сообщающем об ударах молнии поблизости. Оно даже сообщает...
В одном из проектов возникла необходимость перевести процессы импорта данных сторонних систем на микросервисную архитектуру. В качестве инструмента выбран Apache NiFi. В качестве первого ...
Несмотря на то, что начало 2019 года выдалось для компании Tesla не совсем удачным, руководство, включая Илона Маска, не унывает. Наоборот, многие сотрудники компании полны энтузиазма и плани...
Кто не слушает металл — тому бог ума не дал! — Народное творчество Привет, %username%. gjf снова на связи. Сегодня буду совсем краток, потому что через шесть часов вставать и ехать. ...