Игра, которой не хватало удобного компьютера
«Space Travel» была не обычной аркадой, а симуляцией полёта по Солнечной системе: игрок управлял кораблём, учитывая притяжение планет и цену манёвров. Деннис Ритчи и Кен Томпсон работали над ней на большом компьютере GE-635, но запуск обходился дорого и был неудобен. Они перенесли игру на PDP-7 — более доступную машину, для которой пришлось писать значительную часть программы на низкоуровневом языке ассемблера, тесно связанном с устройством компьютера.
Этот перенос выявил проблему шире самой игры: на PDP-7 не было подходящей среды, в которой можно было бы удобно создавать и запускать программы. Работа над «Space Travel» стала одним из толчков к созданию собственной операционной системы — Unix.
От системного языка к C
Чтобы развивать Unix, нужен был язык, позволяющий описывать сложные задачи понятнее, чем ассемблер, но при этом сохраняющий тесную связь с машиной. Ритчи постепенно развил язык B, созданный Томпсоном, и получил C. На C можно было писать системные программы, а затем переносить их на компьютеры с другой архитектурой, меняя сравнительно небольшую часть кода.
Важно различать этапы этой истории: C не был написан для запуска «Space Travel» на PDP-7. Игра помогла привести Ритчи и Томпсона к работе над Unix, а C появился позже как инструмент для развития Unix на новых машинах. Так игровая программа оказалась не непосредственным заказчиком языка, а первым звеном в цепочке инженерных решений.
Почему эта цепочка оказалась важной
Когда Unix стали переписывать на C для PDP-11, операционную систему уже не приходилось создавать заново для каждого компьютера с нуля. Этот подход сделал Unix переносимее и помог C распространиться далеко за пределы одной лаборатории. Началось всё с конкретного неудобства: чтобы поиграть в космическую симуляцию на PDP-7, инженерам пришлось задуматься не только о самой игре, но и о том, как вообще удобно программировать такую машину.






