Странная Старо-Ново-годняя История

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

Я шел вдоль дома к мусорным контейнерам. Что-то мне мешало наслаждаться чудесным болотным воздухом… Я понял, что взгляд мой зацепился за что-то неправильное на листочке в урне. Постепенно до меня доехало, что это была дата: январь 2049 г.

На обратном пути я посмотрел еще раз, да, действительно, из урны торчало несколько листков бумаги, типа страниц из книги, на верхнем внизу справа надпись: январь 2049 г., а слева: «История программирования». Понятно дело, что я не удержался, вытащил листочки, стряхнул селедочный хвост и понес домой. Странно, но это была не бумага. Что-то очень похожее, но не бумага, скорее очень тонкий пластик.

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

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

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

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

Закладки:

  • Коэффициент комповооруженности приблизился к 10 (устройств на индивида), что, в принципе, позволяло уже тогда перейти к технологической революции. Тогда же началось развитие общей инфо-среды, которая называлась, как это ни странно, Internet of Things.
  • Потребность в бытовом программировании стала очевидной. Практически каждый человек сталкивался с необходимостью настроить свои устройства, связать их между собой, задать шаблоны действий в разных условиях, оптимизировать применения устройств.
  • Наличие так называемого open-source программирования, позволяющего использовать инструменты программирования бесплатно. Впрочем, эти инструменты были такого уровня, что использовать их могла только малая часть человечества.

Прокладки:

  • Отсутствие общепринятых стандартов программирования, частично вызванное засильем корпораций, частично не пониманием того, насколько это важно. Удивительным для нас является полное отсутствие государственного регулирования этой принципиально важной для выживания человечества области деятельности.
  • Неэффективное расходование энергии. Приведем только несколько фактов:

— Приложения (в том числе и огромные) постоянно собирались из исходных текстов на языках программирования. Для этого постоянно компилировались миллионы(!) строк текста просто для того, чтобы внести крошечное изменение.

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

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

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

  • Неэффективное образование, во многом вызванное предыдущими прокладками. Не пытаясь описать все стороны, приведем несколько фактов:

— Именно к тому времени относится существование удивительной профессии: программист на языке X (например, программист С++, программист D% и т.д.). Поразительным для нас фактом является то, что таких программистов были миллионы, и они могли вообще не понимать друг друга. Программисты обучались не программированию на нужном уровне (бытовом, сборочном или компонентном), а тонкостям и странностям конкретного языка.

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

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

Подробнее о закладках и прокладках можно прочитать в работах [17][27][113].

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

Как всем известно, это были:

  • «Инициатива за программирование для всех» (ВСЕМПРО)
  • и «Комитет по унификации программирования» (КУП)

«Инициатива» создавалась как общественное объединение, выступающее за стандартизацию программирования верхнего уровня, того, что сейчас называется бытовое программирование. «КУП» был создан предприятиями оборонного комплекса, с существенной поддержкой государства.

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

В 2025 году построение на основе унифицированных репозиториев стало обязательным для всех программ, используемых в государственных учреждениях. Это привело, в том числе, к банкротству тройки корпораций (M$, A$, G$), которые до этого владели основными инструментальными средствами.

В течении следующих 2-3 лет все независимые разработчики перешли на использование стандартизированных инструментов и репозиториев, что привело к резкому росту качества программных продуктов, и, по сути, к созданию межзвезд-

Увы, но это все, что мне удалось сохранить…

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

 

«вот и всё, как-то так»

Billy’s Band

«Планетой правят чисто масоны и чекисты»

«Теория заговора»

5 комментариев


  1. Алексей — статья просто бомба! :-)
    Ну только разве что проблема энергетических затрат на перекомпиляцию кода немного притянута за уши. Энергия сейчас тратится в гораздо бОльших объемах гораздо более (бес)полезными способами :-)

    Ответить

  2. Ув.потомки, живущие в 2049-м!

    Как всегда, выступаю в защиту моих современников. И предков заодно :).

    В статье «Каменный Век» в Википедии (надеюсь, не забыли, что это), по состоянию на 13 января 2017 года, если коротко, то пишут примерно вот это:
    Исследователи различают несколько периодов каменного века.
    1. Палеолит — это период, когда (цитата) «человек начал использовать каменные орудия в своей повседневной жизни».
    Его Википедия делит на под-периоды «ранний», «средний» и «верхний», но внятно не объясняет почему, поэтому я буду считать его просто Палеолитом.
    2. Мезолит — «В этом периоде появились микролиты — миниатюрные каменные инструменты, которые значительно расширили возможности применения камня в повседневной жизни древних людей»
    3. Неолит. Что в этот период происходило с каменными топорами, Википедия не пишет, но говорит уже об усложнении общества, и упоминает развитие гончарного ремесла.
    Если ее порыть поглубже, то окажется, что к неолиту относятся первые эксперименты с медью, которые в итоге приводят к замене каменного «века» — медным.
    К чему это я?
    А вот к чему.
    Начало палеолита — 3-1.5 млн. (прописью: три — полтора миллиона) лет назад.
    Начало мезолита — «X—VI тыс. (прописью: десять-шесть ТЫСЯЧ) лет до нашей эры»
    Затем Неолит, в котором хоть какая-то альтернатива каменным орудиям начинает проклевываться.
    А Железный век начался ~1200г.до.н.э.

    То есть:
    — на совершенствование каменного топора до уровня каменного наконечника стрел у человечества ушло не менее полутора миллионов (не могу не повторить — миллионов!!! то есть тысяч раз по тысяче) лет
    — на то, чтобы догадаться, что вместо камня для наконечников стрел удобнее использовать медь — 5 тысяч (тысяч!) лет
    — и чтобы дойти до вершины эволюции — современного топора — еще примерно 4 тысячи лет (то есть сорок столетий, примерно сто шестьдесят — двести поколений).

    Сравните:
    а) от изобретения компьютера ЭНИАК до изобретения языка программирования Паскаль — 27 (миллионов — зачеркнуто, тысяч — зачеркнуто) лет
    б) от Паскаля до Java — 15 (миллионов — зачеркнуто, тысяч — зачеркнуто) лет
    в) от Java до JavaScript (мы его не любим, но он ну оооочень популярен тут, в 2017-м! :)) — 5 (прописью: пять) лет
    г) ну и, протормозили, конечно, но до ВИР’а — всего еще 10-15 лет (ув.автор, поправьте, пожалуйста)!

    Так что, ув.потомки, не выпендривайтесь.

    С уважением,
    Я

    Ответить

    1. Потомки вроде не выпендриваются. Мирно запивают селедку пивом :) Наверное у них дефицит то ли селедки, то ли пива.

      Так что я не совсем врубился, о чем ты?

      Кстати, мне надоело теоретизировать, так что я погнал кросс-платформенный Вир-2. В связи с чем, количество ворчалок уменьшилось.

      Ответить

Добавить комментарий для AN Отменить ответ

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