Хабрахабр

Пятница. Бредни программиста 2.0

Привет, Хабр! В прошлую пятницу выложил свои бредовые мысли. Спасибо за карму, плюсы и главное за неравнодушные комментарии. Сегодня продолжение. Снова прошу не судить слишком строго. Ведь это всего лишь фантазии.

image

Ржавчина на мече

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

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

— Скидочная карта есть?

Я реагирую как то странно, даже для самого себя…

— Скидочная карта есть?

Я отхожу в сторону. Должно быть мое лицо искажает жуткая гримаса, потому что кассирша перестает общаться и быстро пробивает чек.

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

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

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

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

Сотрудник полиции, переодетый в тинэйджера в бейсболке и со скейтом под мышкой покупает в магазине бытовой техники микроволновку. Например. Я никому не скажу.
Продавец озираясь по сторонам из-под прилавка достает старый, пожелтевший кусок пластика. Он умоляющими глазами смотрит на продавца и еле слышно говорит:
— Может есть скидочная карта, а?
— Ты что, мальчик, это же запрещено.
— Ну хотя бы полтора процента. Люди в черном уводят его через черный ход и увозят в черном автомобиле в неизвестном направлении. В момент когда пластик уже коснулся руки тинэйджера, но еще не покинул руку продавца, на продавце защелкиваются наручники.

Генеральный директор говорит:
— Что то дела у нас в этом квартале не очень. Или например идет оперативка в крупной сбытовой компании. Тут молодой но перспективный менеджер встает и робко произносит.
— Может того… Этого… Скидочную карту выпустим…
В кабинете повисает гробовая тишина. Может есть идеи, как увеличить продажи?
Все обдумывают варианты. Слышно как в окно бьется прошлогодняя муха. Все тупо уставились в стол. Тот понимающе отводит глаза. Генеральный бледнеет и переводит тяжелый взгляд на начальника отдела безопасности. После оперативки перспективного менеджера никто никогда больше не видит, по крайней мере в черте оседлости.

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

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

История победы

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

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

И цифровая техника выдержала.

Я сейчас говорю об АВМ — аналоговых вычислительных машинах. Хотя у нее были вполне взрослые конкуренты. Суть АВМ в том, что для получения решения мы берем некий физический принцип, поведение которого похоже (аналогично) тому, что нам нужно смоделировать. Какое то время они были быстрее, точнее, экономичнее цифровых.

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

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

Дело осложняется тем, что в деревнях разное количество детей, ну например, 10, 20, 50. Предположим, Вам требуется определить оптимальное местоположение сельской школы для трех деревень. И пропускаете через них три соединенные в узле веревочки. Вы кладете карту на стол и в деревнях просверливайте по отверстию. Ну и что? К каждой веревочке привязывайте гирьку в соответствии с количеством детей (10 гр, 20 гр,50 гр). Гирьки уравновесятся и узел покажет оптимальное местоположение школы. Ну и все. Быстро, просто, элегантно.

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

Квантовые вычисления

Когда хайп вокруг квантовых вычислений утихнет и волновой туман неопределенности рассеется, станет видно, что квантовые компьютеры — это те же аналоговые вычислительные устройства. Они работают как устройство с гирьками, только вместо гирек — квантовые частицы, а вместо веревочек — запутанность. И им присущи все недостатки, которые в конце концов привели к почти полному исчезновению АВМ. Эти недостатки — узкая специализация, потеря точности, отсутствие детерминизма.

Никто конкретных задач и сроков перед ними не ставит. Интересно, что по сравнению с историей классических вычислений, квантовые вычисления развиваются в тепличных условиях. Пока это не очень получается. Наоборот, все пытаются ВЫДУМАТЬ какую-либо реальную задачу на которой квантовое превосходство было бы очевидным. Тем более, что постквантовая криптография развивается быстрее квантовой. Разложение чисел на множители, которые кто-то раньше перемножил с нехорошими целями, я к таким задачам отнести не могу.

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

Эта мысль постоянно ускользает от меня, но можно попробовать как-то это прояснить. Но есть что-то в квантовых вычислениях особенное, не похожее на известное ранее. Эти гирьки идеальны. Думаю, что дело в самом рабочем теле этого аналогового вычислителя. Хотя это вроде дурацкий вопрос, но все-таки хочется спросить: почему? Они обладают идеально точными характеристиками и абсолютно похожи друг на друга.

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

Биты… кубиты… Все это очень подозрительно.

We need to go deeper. В общем, как сказал Ди Каприо.

Кибернетика

Нынче мы все довольно легко рассуждаем и вообще о виртуальных мирах, и о том, что наш мир возможно виртуален. И все это есть в Матрице, Тринадцатом этаже, Начале. Это уже часть массового сознания. До этого вопрос был в общем-то почти полностью исследован Лемом. И наверно еще кем-нибудь. Но меня все время интересовал вопрос, кто первым совершил это мыслительное преступление и позволил так широко трактовать окружающую реальность.

И все нити, по крайней мере меня, ведут к Норберту Винеру и к его Кибернетике.

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

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

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

Вот что говорит сам Норберт Винер:

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

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

Ну а мы тут чем занимаемся

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

Я не смею себя сравнивать с великими гениями, но рассеянности у меня тоже хватает.

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

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

— Михаил… Михаил… Извините, я вчера Вам подавала заявку на отчет для отдела кадров.

Осколки мыслей, как иглы впиваются в череп с внутренней стороны. Увесистый мыслительный граф разлетается во все стороны. Девушка увидев это спохватывается. Я тупо смотрю в пространство, пытаясь прийти в себя.

— Ой, я вижу Вы интроверт… Ну ладно я завтра как-нибудь зайду…

Я не интроверт!!! Черт возьми!!! Если бы какой-нибудь корпоративный Бог избавил программистов от этой обязанности, то все бы увидели, что они вполне общительные люди. Я просто пытаюсь думать. И что они могут принимать активное участие во всех радостях и горестях офисной жизни.

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

Потому что все друг другу делегировали все что только можно. Во-первых, он не может никому ничего делегировать. И в конечном итоге делегировали программисту.

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

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

Где же правда?

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

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

Он просто писал в консоли команды, получал выдачу, и в качестве ответа на вопрос публиковал эти дампы. Когда Том отвечал на вопрос, он, как правило, не ссылался на документацию и не вступал в дискуссии.

Таким образом Том никогда не ошибался.

Даже к комментариям в тексте программы следует относиться настороженно. Так должны действовать мы все и доверять только коду. Кстати, что это за мода — переносить программную логику в аннотации. И чем больше комментариев, тем больше должно быть подозрение. Еще можно примирится, когда аннотации использовали для документирования. Это же жуть. Ведь код — это единственная правда, которая у нас осталась. Но когда они теперь определяют поведение программы через разные CI-контейнеры и ORM-мапперы… Как же так, ребята?

На экране привычный редактор. Программист затаив дыхание смотрит на экран. Только совершенный, чистый код. В редакторе — код. И он чувствует: ИСТИНА где-то рядом.

Еще один вечер без Аллы

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

Проверяю почту.

From: PhD Шланг <shlang31415@yandex.ru>

Наш профессор совсем разбушевался, хочет подать на грант, а выкладок нет. “Привет, брателло! Я знаю, тебе такие заморочки нравятся. В общем нужно посчитать на громадном графе то ли в глубину, то ли в ширину — пока не ясно. См. Последний срок завтра к 10:00. За мной не заржавеет.”
вложение.

Такие задачи попадаются не всегда. Сердце забилось чаще. Все равно, что целоваться с выдуманной девушкой. Конечно можно их самому себе придумать, но это не интересно. А тут все реально… Ночной клуб, похоже, подождет.

И пока не ясно сколько займет решение. Смотрю на часы — времени до дедлайна осталось не так много. На автоматизме руки сами открывают среду программирования, файл с ТЗ, по ссылке начинается загрузка данных… Нельзя впустую терять время.

Чем дольше будет думать человек, тем меньше останется времени для работы компьютера, и наоборот. …Кто хоть раз решал компьютерные задачи на время, тот понимает, в чем основной смысл. Может случиться и обратная ситуация, когда человек, пытаясь сделать быстродействующий алгоритм, выберет весь лимит времени. Можно быстро составить незатейливую программу, решающую задачу в лоб, но тогда компьютер не успеет просчитать все варианты. «Не волнуйся», — говорит человек, — «Сейчас я добавлю десяток строк, и количество вариантов уменьшится на порядок». Оптимальное решение лежит, как всегда, посередине.
«Приятель, я не успею это просчитать, это слишком много» – говорит компьютер. «Ничего», — отвечает компьютер, — «Давай то, что есть. Или человек может сказать «Слушай, дружище, я знаю, что это можно сделать лучше, но у меня уйдет слишком много времени на создание программы и на ее отладку». А ты пока подумай над чем-нибудь более важным». Я железный, я не устану и не вспотею, я переберу все варианты и выдам нужный ответ. У них общая цель и одно на двоих время. В процессе решения программист и компьютер становятся заодно. И когда задача решается в срок, это здорово, потому что каждый сделал свое дело и сделал его хорошо….

(продолжение следует)

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть