Язык COBOL был разработан в 1950-х годах, чтобы соответствовать возможностям медленных машин с ограниченным объемом оперативной памяти, доступных в то время. Не говоря уже об отсутствии интерактивных терминалов. Многие аспекты конструкции сделаны так, чтобы их было легко компилировать в простой машинный код без оптимизации. Например, нет переменных. Только один блок рабочего хранилища с именами, которые ссылаются на байтовые массивы определенной фиксированной длины, начиная с фиксированного местоположения. Программы на языке COBOL компилируются в эффективный машинный код по своему замыслу.
По мере ускорения процессоров и увеличения объема оперативной памяти компиляторы COBOL добавили новые функции, такие как файловый ввод-вывод с индексированным ключом, встроенный алгоритм MERGE и поддержку интерактивных текстовых терминалов. В наше время есть даже объектно-ориентированный COBOL.
Так что отчасти причина в том, что код был переносим на новые архитектуры ЦП, поскольку он был языком высокого уровня, но при этом был очень эффективным, поскольку он был разработан, чтобы не использовать причудливые функции, подобные тем, что были в ALGOL-60, предке C. И отчасти причина в том, что COBOL эволюционировал, чтобы соответствовать новым операционным системам и возможностям. Например, базы данных SQL - это просто более сложные формы простых таблично-ориентированных файлов, которые COBOL был разработан для обработки. Оверлейные линкеры позволяли писать огромные программы на языке COBOL до тех пор, пока выполнение выполнялось примерно последовательно. Любая функция, которая была лучше реализована в Ассемблере, PL / 1 или FORTRAN, может быть доступна через вызовы PROCEDURE.
Самым близким современным языком к COBOL является Python, потому что вы можете писать чистые программы, которые почти читают как английский, без посторонней пунктуации везде, но вы можете использовать большую и сложную библиотеку функций, вместо того, чтобы постоянно кодировать свою собственную. Конечно, Python принял все функции ALGOL-60 и более, потому что он был разработан в современную эпоху, когда вам не нужно помещать все в 16 КБ ОЗУ.