15.05.2025 09:11
Зачем NASA до сих пор использует 50-летний код?
Представь себе: ты собираешься отправить ракету в космос, потратив миллиарды долларов и десятилетия подготовки. У тебя — вся мощь современной науки, передовые технологии, квантовые идеи и… код, написанный ещё во времена, когда человечество впервые ступило на Луну. Почему? Парадоксально, но NASA по-прежнему использует код 60–70-х годов, и на это есть очень серьёзные причины.
1. Надёжность на первом месте
Когда в 1969 году “Аполлон-11” направлялся к Луне, его навигацией управлял Apollo Guidance Computer (AGC) — машина с 64 КБ памяти и частотой около 1 МГц. Это в тысячи раз слабее любого смартфона. Но этот код, написанный вручную инженерами, в том числе легендарной Маргарет Гамильтон, работал безотказно. Более того — именно его отказоустойчивость и приоритетная система обработки помогли избежать катастрофы во время посадки на Луну, когда произошло перегрузка системы. AGC просто проигнорировал несущественные процессы и продолжил выполнять ключевые задачи. NASA поняла: стабильный код лучше нового кода. Всегда. Особенно там, где нет второй попытки.
2. В космосе не обновишь
Земные приложения можно “допилить на проде”. А вот спутник на орбите? Или ровер на Марсе? Обновить прошивку можно, но с огромным риском. Новая строка кода может повлечь за собой непредвиденные ошибки. Любое обновление, даже самое простое, проходит многоступенчатую проверку, которая может занять месяцы. Потому NASA предпочитает использовать код, который проверен десятилетиями.
3. Старое железо — надёжнее в экстремальных условиях
Современные чипы производительнее, но они также более уязвимы к радиации. Даже космический луч, попав в микросхему, может вызвать сбой. Старые микропроцессоры, вроде RAD750, построены по крупному техпроцессу, у них меньше плотность транзисторов, а значит — выше живучесть. Поэтому многие космические миссии летают с технологиями 90-х и ранее. Например, марсоход Curiosity, который приземлился на Марсе в 2012 году, работает на процессоре, аналогичном тому, что стоял в Apple PowerMac G3 1997 года.
4. Старая кодовая база — это стандарт
NASA работает по жёстким стандартам, и значительная часть миссий основывается на уже сертифицированной архитектуре и коде. Часто проще адаптировать старое решение под новые задачи, чем писать всё с нуля и проходить весь цикл тестирования, сертификации и моделирования снова.
Заключение
Программирование в NASA — это про доверие, выверенность, строгость и инженерную дисциплину. Если код работает — не трогай его. В буквальном смысле: лучше старый, но проверенный код, чем новый, но потенциально опасный. Так что в следующий раз, когда кто-то скажет: “Эй, этот код написан 30 лет назад, пора бы переписать” — возможно, стоит ответить: “Если он работает — оставь его в покое. Вдруг он — космического уровня.”