1954 год. IBM, главный производитель компьютеров в мире, стоит на пороге гигантского скачка. Инженеры компании проектируют IBM 704 — машину, которая будет быстрее всех существующих. Но есть проблема. Программирование для неё — это ад. Каждая программа пишется на ассемблере. Каждая операция — это несколько строк машинных кодов. Чтобы сложить два числа, нужно помнить, в каком регистре что лежит, как переслать данные из памяти и куда записать результат. Программисты тонут в деталях. Отладка занимает недели. Ошибка в одной цифре — и программа падает.
И вот молодой математик Джон Бэкус, которому ещё нет и тридцати, приходит к руководству IBM с безумной идеей. Он предлагает создать язык, который будет похож на математическую запись. Программист напишет формулу — а специальная программа, компилятор, сама переведёт её в машинный код. Боссы IBM смотрят на Бэкуса с недоумением. Все знают: машина не может писать код лучше человека. Человек умнее. Человек оптимизирует каждый байт. Человек — это высшая форма программиста. А Бэкус говорит: «Нет. Машина сделает это лучше». И ему дают шанс.
Формулы вместо адресов памяти
Проект назвали Fortran — Formula Translation. Бэкус собрал команду, в которую вошли математики, инженеры и просто талантливые люди, не боявшиеся думать иначе. Они работали в подвале IBM, без окон, с одним телефоном на всех. Сроки горели, бюджеты трещали. Но к 1957 году Fortran был готов.
Первая версия языка умещалась в 25 000 строк кода компилятора. Он умел обрабатывать арифметические выражения, циклы, подпрограммы. И главное — он выдавал машинный код, который работал почти так же быстро, как написанный вручную. Это было революцией. Скептики, твердившие, что машина никогда не сравнится с человеком в оптимизации, замолчали. Fortran делал работу в десять раз быстрее. Программу, на которую уходил месяц, теперь писали за три дня.
И вот что важно: Fortran не просто упростил жизнь программистам. Он изменил саму философию. До него программирование было искусством жонглирования регистрами. После него — наукой описания алгоритмов. Ты думаешь о задаче, а не о том, как процессор пересылает байты. Ты пишешь X = A + B, и Fortran сам решает, в каком регистре что хранить. Это был первый шаг к тому, чтобы компьютеры стали доступны не только жрецам машинного кода, но и учёным, инженерам, студентам.
Перевод с гиковского
Представь, что ты повар, и тебе нужно приготовить ужин. На ассемблере ты пишешь: «Взять кастрюлю номер 3, налить воды 500 мл, поставить на конфорку 2, повернуть ручку на 180 градусов, ждать 600 секунд...» Сотни инструкций. На Fortran ты пишешь: «Сварить макароны». Компилятор сам подставит кастрюлю, воду и таймер. И да, это займёт чуть больше машинного времени, но ты освободишь голову для рецепта соуса. Вот что Fortran сделал с программированием.
Скептики, которые проиграли
Когда Fortran только появился, программисты старой школы встретили его в штыки. «Компилятор не сможет оптимизировать код так, как это делаю я», — говорили они. «Это для ленивых», — добавляли другие. «Серьёзные программы пишутся только на ассемблере».
Бэкус и его команда знали, что это неизбежный этап. Они потратили годы на создание компилятора, который доказывал скептикам их неправоту. Был проведён знаменитый тест: одну и ту же задачу дали двум группам. Одна писала на ассемблере, другая — на Fortran. Результаты сравнили. Fortran-версия работала с 90% эффективностью ручного кода. При этом была написана в пять раз быстрее. Спор был окончен.
Индустрия приняла Fortran мгновенно. К 1960 году он работал на всех крупных компьютерах США. Инженеры NASA использовали его для расчёта орбит. Физики — для моделирования ядерных реакций. Метеорологи — для прогноза погоды. Fortran стал первым языком, который доказал: высокий уровень — это не слабость, а сила.
Байка из подвала IBM
Говорят, что однажды к Бэкусу зашёл один из старших инженеров IBM и сказал: «Джон, ты понимаешь, что твой компилятор делает ошибки? Он выделил переменную не в том регистре!» Бэкус посмотрел на распечатку и ответил: «Это не ошибка. Это оптимизация. Ты бы до такого не додумался». Инженер покраснел и вышел. А через год сам перешёл писать на Fortran.
Язык, который не умер
Fortran не остался музейным экспонатом. Он жив до сих пор. Да, прошло почти 70 лет. Сменились поколения компьютеров. Появились C, Java, Python. Но Fortran используется там, где важна скорость вычислений. Метеорологические центры, аэродинамические трубы, ядерные реакторы, астрофизика — всё это до сих пор работает на Fortran. Потому что за десятилетия были написаны миллионы строк идеально оптимизированного кода. И переписывать его на Python — безумие.
Более того, Fortran эволюционировал. Последний стандарт — Fortran 2023. В нём есть объектно-ориентированное программирование, параллельные вычисления, работа с GPU. Да-да, язык, который старше большинства наших читателей, до сих пор актуален. И когда ты смотришь прогноз погоды или летишь на самолёте, знай: где-то там, в центре обработки данных, крутится код, написанный правнуками того самого Fortran из 1957 года.
Наследие, которое нельзя стереть
Джон Бэкус получил премию Тьюринга в 1977 году — именно за Fortran и вклад в языки программирования. Но ещё до этого он изменил мир. Идея о том, что машина может взять на себя рутину, стала фундаментом для всех последующих языков. C, Java, Python — все они стоят на плечах Fortran.
Бэкус ушёл из жизни в 2007 году. На его надгробии нет формул. Но каждый раз, когда программист пишет if, for или while, он использует идеи, впервые реализованные в том подвале IBM с одним телефоном на всех. Идеи о том, что программирование должно быть про человека, а не про машину.
Аплодисменты
Джону Бэкусу и его команде из подвала IBM. Скептикам, которые проиграли, но благодаря которым Fortran стал лучше. Программистам 50-х, которые рискнули довериться машине и не прогадали. И Fortran — языку, который до сих пор считает наши орбиты, прогнозы и налоги.Если ты думаешь, что высокоуровневые языки — это для слабаков, попробуй написать нейросеть на ассемблере. А потом возьми Python и будь благодарен Бэкусу. Он придумал это за тебя.
Понравился выпуск? Подписывайся на «Синдром Утёнка | IT» — тут мы раскапываем динозавров программирования и рассказываем, как они изменили твой цифровой мир.