Согласно исследованию, проведенному правительственными структурами США, Секретная служба до сих пор пользуется компьютерной системой, созданной в 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. Предлагаем обратить внимание еще на несколько интересных материалов из нашего блога:
- Гейм-индустрия: как IaaS подарил новую жизнь популярной игре Angry Birds
- Высокие технологии в мире спорта: почему облако станет стандартом будущего
- Сравнение четырех топ-решений для аварийного восстановления
- Облачные сервисы: опыт использования IaaS российскими компаниями
- Арендовать виртуальный сервер или арендовать виртуальный ЦОД?
P.P.S. Наш свежий дайджест — все о работе с IaaS плюс примеры практических кейсов.
Комментарии (28)
BalinTomsk
01.02.2017 01:02+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/beeruser
01.02.2017 04:48+3Вот эта конторка, делающая всякие тулы для COBOLа,
https://www.microfocus.com/solutions/cobol-development-and-mainframe-solutions/
в том году приобрела софтверный бизнес HP за ~$9 миллардов, например.
el_gato
01.02.2017 10:33Правда в следующем году они от кобола отказываются в пользу джавы.
http://www.skatteetaten.no/no/Bedrift-og-organisasjon/Arbeidsgiver/skattetrekk/Skattekort-og-forskuddsskatt/Dokumentasjon-og-program-for-beregning-av-skattetrekk/
Причем в английской версии об этом ни слова.
dmitry_ch
01.02.2017 01:52-6Для написания программы в 40-х годах требовалось перераспределять сотни проводов по разным гнездам панели — это определяло операцию машины.
«Операции машины» (не говоря, что скорее всего — «программу»), горе вы копирайтеры-переводчики!
Desprit
01.02.2017 07:44+5Каждый раз когда читаю, что в 25-ом году Вояжер последний раз отправит на Землю сообщение, становится очень грустно.
aso
01.02.2017 09:06+2Этот компьютер — IBM 402. Конечно, это не совсем компьютер, в традиционном понимании
Это называется «табулятор».
Точнее, accounting machine как разновидность tabulating machine.
LonelyCruiser
01.02.2017 11:39+6Приходит сын к отцу программисту и спрашивает:
— Папа, а почему солнце всегда восходит на востоке?
Папа:
— Точно на востоке?
— Да.
— Проверял несколько раз?
-Да.
— Так вот оставь как есть, ничего не трогай, пускай так и будет.HardWrMan
07.02.2017 12:00Была модификация этого анекдота. Отец программист при этом был с красными глазами после трех бессоных ночей отладки проекта с дедлайном. А последняя его реплика была вроде «Вот и не трогай, пока не сломал!».
askv
01.02.2017 20:21Я люблю старую технику. До сих пор электронными настольными часами ещё советского периода пользуюсь. Ну и комп не тороплюсь обновлять.
Может, кто-то до сих пор на арифмометре считает ;)
perfect_genius
02.02.2017 15:51Когда в очередной раз заглянете в Макдональдс, то знайте — их компьютерные программы тоже довольно старые, тормозят и виснут каждый день. Интерфейсы спроектированы неудобными и с глюками, с чем приходится матерясь мириться, и это влияет на выдачу заказов — могут «забыть» выдать. Жалобы висят давно, связаться с высшим руководством сложно, а ответа может и не быть.
il--ya
07.02.2017 16:17Спасибо за пересказ, но где ссылки на оригиналы?
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) уже присутствует в статье, даже дважды.
il--ya
07.02.2017 16:34В Sparkler Filters также имеются десятки программ для IBM 402 в формате коммутационных панелей.
Повеселила вторая картинка по ссылке: даёт наглядное представление о том, что такое
spaghetti code
alff31
Вот интересно, когда это сломается, тогда что делать? Ведь не починишь уже и не найдешь запасных частей.
dmitrykabanov
Об этом мало кто думает, даже на бытовым уровне. Взять хоть обыкновенный бэкап данных — пока разок кофе не пролетит над ноутом, вроде бы и не задумываешься.
alexeykuzmin0
Не всегда «не делать бекапы» — это следствие недальновидности. Уверен, есть немало людей вроде меня, у которых все фото в соцсетях, вся переписка в почте и смс, все проекты на github, а программы скачать заново будет проще, чем регулярно бекапить.
dmitrykabanov
Ну так репо — это и есть своего рода бэкап. Я ж не про копирование на 10 sd-карточек
mpakep
Скорее ломалось уже не раз. За двадцать тридцать лет эксплуатации и без того достаточно простые решения осваиваются до мелочей. Инженер может по шуму работы сказать что сломается и когда.
il--ya
Ну инженер-то не вечный… Когда-нибудь он сам «зашумит». Или они там растят династию шаманов?
il--ya
Я думаю, они сохраняют этот IBM по сугубо прагматическим причинам — но это не «работает — не трогай». Просто элементарный маркетинг. Это ж такой класный message: Мы очень давно на рынке, мы стабильный и надёжный партнёр, наши бизнес-процессы отлажены и надёжны, мы ценим долгосрочное партнёрство и т.д.
Скорее всего, на самом деле система давно не используется по назначению, просто сохраняется как фетиш, и не факт что вообще работает.
navion
У мейнфреймов есть обратная совместимость и новые машины выходят каждые несколько лет.
А в IBM 402 вряд ли есть труднодоступные детали и замену всегда можно заказать в механической мастерской.
rg_software
Del
rg_software
Эта проблема принципиально неразрешима. Или мы исходим из того, что все надо постоянно
переписывать, либо миримся с поддержкой старого тем или иным способом.