«Работает — не трогай»: Старый код и компьютеры, которые до сих пор функционируют

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

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

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

    / фото Judit Klein CC

    Последний из могикан


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

    Этот компьютер — IBM 402. Конечно, это не совсем компьютер, в традиционном понимании, но автоматический электромеханический вычислитель, который может быть запрограммирован на распечатку результатов в зависимости от значений, введенных с 80-колонных перфокарт.

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

    Машина печатает отчеты на широкой бумаге с ведущими отверстиями, а Карл Краклауэр (Carl Kracklauer), чей отец основал Sparkler Filters в 1927 году, вводит данные на перфокартах. Компания не переходит на «современное» оборудование, поскольку 402 — это привычное решение. Персонал знает, как использовать систему, и 60 лет учетных данных компании отформатированы для работы с устройством.

    / фото Simon Claessen CC

    В Sparkler Filters также имеются десятки программ для IBM 402 в формате коммутационных панелей. Для написания программы в 40-х годах требовалось перераспределять сотни проводов по разным гнездам панели. При этом панели могут заменяться, как если бы они были сменными дисками с программным обеспечением.

    IBM 402 в Sparkler Filters — это настолько значимая компьютерная реликвия, что Музей компьютерной истории отправлял делегацию в компанию, чтобы убедить сотрудников перейти на более современные системы и передать 402 музею. Когда-нибудь это будет достойное место для отдыха «старичка», однако пока что техасская компания решила отложить выход на пенсию этого динозавра вычислительных технологий.

    Система MOCAS


    Но не только вычислительные системы живут с середины прошлого века. Есть долгожители и среди компьютерных программ. В 1958 году Министерство обороны США запустило компьютеризированную систему управления контрактами MOCAS, которая должна была следить за действующими контрактами и платежами. И она следит, 59 лет спустя.

    MOCAS написана на языке COBOL — языке, который не был официально одобрен на момент написания программы. Изначально MOCAS работала на перфокартах, однако за прошедшие десятилетия интерфейс был переработан. Сначала он стал терминальным. Затем он получил веб-оболочку.

    Веб-интерфейсы часто скрывают возраст старых систем. Министерство обороны снабдило MOCAS новым интерфейсом, чтобы сохранить её работоспособность в современных реалиях. В нынешнем варианте система может быть интегрирована с другими программными пакетами, например, пользователь имеет возможность прикреплять к записям документы Microsoft Word.

    Пентагон опасается менять эту систему на более современную, так как она работает с 1,3 трлн долларов в облигациях и 340 тыс. контрактов. Она запущена на мейнфрейме IBM, который способен обрабатывать 398 млн команд в секунду, при этом имея скромные 8 гигабайт ОЗУ и большое количество устройств для хранения данных.

    Одни в пустоте


    В мае 1977 году был дан старт двум крупным космическим исследовательским миссиям — были запущены аппараты «Вояджер-2» и «Вояджер-1». Сегодня оба зонда продолжают слать собираемые данные из тех точек космоса, где еще не бывал человек. Где еще не бывали искусственные аппараты.

    В конце августа 2012 года датчики «Вояджера-1» зафиксировали резкое снижение концентрации частиц солнечного ветра. Это означало, что «Вояджер-1» оказался в межзвёздном пространстве. В 2013 году профессор астрономии Билл Веббер (Bill Webber) официально сообщил, что «Вояджер-1» вышел за пределы Солнечной системы.

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

    Спустя 40 лет, программное обеспечение космических аппаратов всё ещё функционирует. Сьюзи Додд (Suzy Dodd), проект-менеджер программы «Вояджеров», говорит, что ПО было обновлено во время полета, но НАСА ничего кардинально не меняли и не удаляли.

    / фото Dusty Reichwein CC

    Зонды имеют лишь 70 килобайт памяти, из-за чего программный код приходится подменять на различных этапах миссии. «Например, это происходило 18 раз во время пролета Юпитера», — рассказывает научный сотрудник программы Эд Стоун (Ed Stone). А однажды, в 2010 году, на Землю начали приходить искаженные данные. Проблема оказалась в одном бите, который переключился с нуля на единицу, — программа была перезапущена и по сей день находится в эксплуатации.

    В НАСА ожидают, что максимальный срок жизни зондов и программного обеспечения составит 48 лет: с 1977 по 2025 год. К 2020 году ученые отключат некоторые системы космических аппаратов, но они все равно продолжат свое «общение с Землей», пока не отправят свое последнее сообщение в 2025 году. В этот момент одна из самых старых компьютерных программ перестанет функционировать.

    Вклад общественности


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

    Например, в одном из тредов на Hacker News разработчики поделились собственными историями. Пользователь с ником Byuu рассказал, что целое сообщество smwcentral.net использует кросс-ассемблер xkas, который тот написал в 2001 году.

    «Я добавил всего несколько небольших патчей в начале 2004 года и выпустил финальную версию v06, — говорит Byuu. — Я не надеялся, что кто-то будет серьезно использовать мое решение. Делал для себя, но выложил в сеть».

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

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

    Пользователь buro9 также поделился историей. По его словам, самый старый код, который он писал, и который до сих пор работает, — это некая система для внутреннего использования студией звукозаписи, созданная в 1997 году.

    «Я все еще получаю письма, в которых меня спрашивают, как работает та или иная функция, — говорит buro9. — А я понятия не имею, это был PERL».

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

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

    Однако есть и такие люди, как сотрудники Sparkler Filters со своим IBM 402, которые следуют простому и известному правилу: «Работает — не трогай». Благодаря этому мы можем наблюдать такие удивительные решения, прошедшие сквозь года и не утратившие своей функциональности.

    P.S. Предлагаем обратить внимание еще на несколько интересных материалов из нашего блога:


    P.P.S. Наш свежий дайджест — все о работе с IaaS плюс примеры практических кейсов.
    ИТ-ГРАД
    286.75
    vmware iaas provider
    Share post

    Comments 44

      +2
      Вот интересно, когда это сломается, тогда что делать? Ведь не починишь уже и не найдешь запасных частей.
        0
        Об этом мало кто думает, даже на бытовым уровне. Взять хоть обыкновенный бэкап данных — пока разок кофе не пролетит над ноутом, вроде бы и не задумываешься.
          0
          Не всегда «не делать бекапы» — это следствие недальновидности. Уверен, есть немало людей вроде меня, у которых все фото в соцсетях, вся переписка в почте и смс, все проекты на github, а программы скачать заново будет проще, чем регулярно бекапить.
            +1
            Ну так репо — это и есть своего рода бэкап. Я ж не про копирование на 10 sd-карточек
          +7
          Скорее ломалось уже не раз. За двадцать тридцать лет эксплуатации и без того достаточно простые решения осваиваются до мелочей. Инженер может по шуму работы сказать что сломается и когда.
            0
            Ну инженер-то не вечный… Когда-нибудь он сам «зашумит». Или они там растят династию шаманов?
              0
              Я думаю, они сохраняют этот IBM по сугубо прагматическим причинам — но это не «работает — не трогай». Просто элементарный маркетинг. Это ж такой класный message: Мы очень давно на рынке, мы стабильный и надёжный партнёр, наши бизнес-процессы отлажены и надёжны, мы ценим долгосрочное партнёрство и т.д.
              Скорее всего, на самом деле система давно не используется по назначению, просто сохраняется как фетиш, и не факт что вообще работает.
                0
                Система умрет вместе с инженером.
                +1
                У мейнфреймов есть обратная совместимость и новые машины выходят каждые несколько лет.
                А в IBM 402 вряд ли есть труднодоступные детали и замену всегда можно заказать в механической мастерской.
                  0
                  Del
                    +1
                    Эта проблема принципиально неразрешима. Или мы исходим из того, что все надо постоянно
                    переписывать, либо миримся с поддержкой старого тем или иным способом.
                      0
                      Там как раз все чинится, причем инструментарий для этого нужен примитивный.
                      Это вам не на кристалле со 100500 эелемнтами один транзистор заменить.
                        0
                        Где-то читал, что Библиотека Конгресса США часто брала (и продолжает брать) в свои фонды материалы на компьютерных носителях, поэтому вынуждена обзаводиться и читалками для всех принятых типов этих носителей. Этих читалок уже набрался целый зал, и специальный человек ежемесячно проверяет их работоспособность.
                        +2
                        Суровая норвежская налоговая предлагает для расчета налогов скачивать программу на Коболе

                        http://www.skatteetaten.no/en/under-oppbygging/Drive-bedrift/Arbeidsgiver/employers-order-electronic-tax-deduction-cards/Documentation-and-program-for-calculating-prepayment-deductions-2014-and-2015-income-years/
                          0
                          А по сути, что в этом странного? Кобол мертв?
                            +3
                            Вот эта конторка, делающая всякие тулы для COBOLа,
                            https://www.microfocus.com/solutions/cobol-development-and-mainframe-solutions/
                            в том году приобрела софтверный бизнес HP за ~$9 миллардов, например.
                              0
                              Язык как язык. Более того современные реализации есть.
                                0
                                Правда в следующем году они от кобола отказываются в пользу джавы.

                                http://www.skatteetaten.no/no/Bedrift-og-organisasjon/Arbeidsgiver/skattetrekk/Skattekort-og-forskuddsskatt/Dokumentasjon-og-program-for-beregning-av-skattetrekk/

                                Причем в английской версии об этом ни слова.
                                +5
                                Всем привет от проекта ReactOS, который в данный момент все еще «переделывает сызнова» не такие уж ненужные Windows XP и 2003.
                                –6
                                Для написания программы в 40-х годах требовалось перераспределять сотни проводов по разным гнездам панели — это определяло операцию машины.


                                «Операции машины» (не говоря, что скорее всего — «программу»), горе вы копирайтеры-переводчики!
                                  0
                                  Machine operation — это, скорее, работа машины.
                                  +5
                                  Каждый раз когда читаю, что в 25-ом году Вояжер последний раз отправит на Землю сообщение, становится очень грустно.
                                    0
                                    Если догнать в 2025 и зарядить новый аккумулятор… Тоже грустно :( Было бы здорово, если бы он слал и слал нам сигналы. Все же первый аппарат землян в глубоком космосе летит!
                                    +2
                                    Этот компьютер — IBM 402. Конечно, это не совсем компьютер, в традиционном понимании


                                    Это называется «табулятор».
                                    Точнее, accounting machine как разновидность tabulating machine.
                                      0
                                      Когда-то приходилось работать и программировать на ТА-80 (табулятор алфавитно-цифровой для 80 колонных перфокарт) Табулятор решал множество бухгалтерских задач.
                                      +6
                                      Приходит сын к отцу программисту и спрашивает:
                                      — Папа, а почему солнце всегда восходит на востоке?
                                      Папа:
                                      — Точно на востоке?
                                      — Да.
                                      — Проверял несколько раз?
                                      -Да.
                                      — Так вот оставь как есть, ничего не трогай, пускай так и будет.
                                        0
                                        Лол. Классика
                                          0
                                          Ещё анекдот классический:
                                          Приходит сын Билла Гейтса и спрашивает:
                                          — Пап, а правда новая Виндоус 95 многозадачная?
                                          -Да, сынок, правда…
                                          — Пап, ну покажи…
                                          — Сейчас, сын, дискету отформатирую и покажу.
                                          :)
                                          0
                                          Была модификация этого анекдота. Отец программист при этом был с красными глазами после трех бессоных ночей отладки проекта с дедлайном. А последняя его реплика была вроде «Вот и не трогай, пока не сломал!».
                                          0
                                          Я люблю старую технику. До сих пор электронными настольными часами ещё советского периода пользуюсь. Ну и комп не тороплюсь обновлять.

                                          Может, кто-то до сих пор на арифмометре считает ;)
                                            0
                                            Так они почти вечные, там ломаться нечему. Конденсаторы танталовые и т.п. У меня АОН «Русь» в качестве будильника уже больше 20 лет работает. Там 10 будильников, на каждом своя мелодия. Причём пока не доиграет или не будет вырублена по # — не успокоится. Завожу 10 будильников на 6 утра, с шагом в минуту (это на два с чем-то часа музыки если слушать), орёт он как оглашённый. Просыпаюсь на 2-3 мелодии. В продаже сопоставимых будильников нет.
                                            0
                                            Когда в очередной раз заглянете в Макдональдс, то знайте — их компьютерные программы тоже довольно старые, тормозят и виснут каждый день. Интерфейсы спроектированы неудобными и с глюками, с чем приходится матерясь мириться, и это влияет на выдачу заказов — могут «забыть» выдать. Жалобы висят давно, связаться с высшим руководством сложно, а ответа может и не быть.
                                              0
                                              Не всё старое одинаково полезно. Хотя… Это же Макдональдс.
                                                0
                                                Кстати, один недосмотр можете сами проверить на терминале заказа: нажмите на экран и ждите — программа видит лишь скольжение пальца, а простое касание игнорирует и переходит в рекламный режим, будто посетителя нет.
                                              0
                                              Спасибо за пересказ, но где ссылки на оригиналы?

                                              If It Ain't Broke, Don't Fix It: Ancient Computers in Use Today (PCWorld)

                                              What Is the Oldest Computer Program Still in Use? (MIT Technology Review)

                                              Edit: пардон, вторая ссылка (на MIT Tech Review) уже присутствует в статье, даже дважды.
                                                0
                                                В Sparkler Filters также имеются десятки программ для IBM 402 в формате коммутационных панелей.

                                                Повеселила вторая картинка по ссылке: даёт наглядное представление о том, что такое
                                                spaghetti code
                                                image
                                                  0

                                                  В начале 2000-х была выпущена контрольная панель для управления сервером ISPmanager 4. В 2015-м разработчик снял ее с продажи, а в декабре прошлого года полностью прекратил поддержку и выпуск любых обновлений.


                                                  Несмотря на то, что новая 5-я версия вышла более 3х лет назад, у меня есть чувство, что 4-ка может стать таким же неумирающим монстром :) Лицензия на неё вечная и до сих пор значительная часть российского хостинга ей.

                                                    +1
                                                    Вот я до сих пор использую Windows XP в работе, но особо уверенные в себе люди принципиально закладывают отказ от поддержки на уровне, начиная с инсталлятора (а распакованная программа как правило работает), заканчивая уровнем API, внесенным в программу намеренно — привет SuperTux.
                                                      0
                                                      Интересная публикация. С военными все понятно, однако еще стоит добавить банковское ПО. Например один крупный европейский инвестиционный банк до недавнего времени использовал систему, созданную в 60-70 годах, но недавно перешел на систему, разработанную в 70-80 годах. :)
                                                        0
                                                        В конце 50-х мой отец, работавший тогда главным энергетиком на заводе, пошел учиться на вычислительную технику, чтобы перейти в только что создававшийся на заводе АСУТП. С тех пор от него остались конспекты и книга-учебник вот как раз по такому табулятору. Я ее почитал немного и сильно удивлялся, чего можно добиться от простой электромеханической штуки, правда это был не вычислитель, а модуль для построения отчетов — таблицы с промежуточными итогами, сортировкой по нескольким колонкам и прочими чудесами, творимыми вот такими проводами-перемычками…
                                                          0
                                                          В конце 80-х бывал в военном институте, которым тогда руководил Герман Титов (космонавт-2).

                                                          Там на управлении спутниками стояли в отдельном застеклённом зале несколько «Мир-1» и «Мир-2». На мой вопрос отвечали: «оно работает и работает хорошо».

                                                          Была страна, была культура, наука, техника. И технические анекдоты, соответственно.
                                                            0
                                                            Ну АСУП одного крупного оборонного завода, в Питере, работает с 1983 года, когда была написана для ЕС-ЭВМ. До 2004 года работала в двухмашинной конфигурации на реальном железе, потом всё аккуратненько перенесли в эмулятор(кстати под OS/2), где оно счастливо работает и поныне. Ну система управления движением и система продажи проездных карточек в Нью-Йоркском метро, с начала 90-х, под OS/2 пашут и менять их вроде как не соираются. Или вот, из недавнего
                                                            image
                                                            Да, справа тачпад, на системе 197x года разработки. ;-) Кстати все системы Yokogava совместимы с предыдущими поколениями.

                                                            Only users with full accounts can post comments. Log in, please.