Древний почти 70-летний язык программирования восстал из мертвых. Он идеально подошел для сверхпопулярной видеоигры
Разработчики запустили сервер для игры Minecraft, использовав ПО, написанное на COBOL. Это один из самых старых языков программирования, созданный более 60 лет назад – некоторых из его авторов уже даже нет в живых. Как оказалось, COBOL отлично подходит для подобных целей, хотя без ряда нюансов все же не обошлось.
Видеоигровой язык программирования
Программисты запустили новый сервер для невероятно популярной игры Minecraft. Его особенность в том, что программная его часть полностью написана на языке программирования COBOL, который на десятилетия старше, чем подавляющее большинство современных пользователей интернета и почти всех игроков Minecraft, пишет Tom’s Hardware. Портал не пишет, почему разработчики остановили свой выбор именно на этом языке.
COBOL или COmmon Business-Oriented Language был анонсирован 65 лет назад, в 1959 г. Некоторые его разработчики уже ушли из жизни, а сам он почти не используется в современных проектах, так как по многим параметрам уступает более актуальным языкам программирования.
В случае с сервером Minecraft был использован проект CobolCraft с открытым исходным кодом. Он задействует, в том числе, свободный компилятор GnuCOBOL, разработка которого велась 20 лет. Лишь в марте 2024 г., как сообщал CNews, его разработчики заявили о полной готовности своего детища к использованию в промышленных проектах.
Подробнее о проекте
Версия COBOL, используемая CobolCraft, представляет собой версию COBOL для Linux, написанную на C (с ответвлением C++) на основе стандарта COBOL 2014. Это означает, что используется современная версия COBOL с новейшими функциями, что, в свою очередь, должно помочь CobolCraft без проблем выполнять большинство функций, необходимых для запуска сервера Minecraft.
Согласно официальному профилю проекта на сервисе GitHub, большинство основных функций «уже работают». К ним относятся бесконечная генерация ландшафта, постоянные данные о мире и игроках, поддержка импорта существующего мира, многопользовательский режим с участием до 10 игроков, разрушение и размещение блоков, взаимодействие блоков и типичные многопользовательские функции, такие как чат, «белые списки», консольные команды и отображение пинга/статуса сервера.
В документации CobolCraft отмечается, что «блоки с несколькими состояниями, ориентациями или интерактивные блоки требуют большого объема специализированного кода для правильного поведения», но «некоторые из них поддерживаются».
Наиболее важные интерактивные функции для комфортной игры в Minecraft, включая факелы, плиты, двери, люки и кровати, полностью функциональны. Однако другие объекты функциональны только в ограниченной форме, например, неинтерактивные кнопки, что означает, что самые масштабные технические достижения в Minecraft посредством строительства из редстоуна здесь невозможны.
Редстоун в Minecraft — это способ создания электрических цепей, с помощью которых можно разрабатывать различные механизмы и устройства. Однако это не совсем стандартный игровой процесс, поэтому многие игроки все равно могли бы получить качественный игровой опыт без функций, необходимых для создания, например, функционирующего калькулятора или ПК в Minecraft.
Еще не все потеряно
Современные программисты в большинстве своем если и слышали о COBOL, то никогда не пробовали на нем писать. Ввиду нынешнего разнообразия языков программирования смысла в использовании столь древних разработок почти нет, так что теперь COBOL – это, скорее, нишевый язык, а не мейнстримный.
Корни COBOL берут начало в финансируемой Министерством обороны США попытке создать легко читаемый язык кодирования, оптимизированный для бизнес-нагрузок, характеризующийся кроссплатформенностью, кросс-архитектурнстью и высокой производительностью. В середине прошлого века он был именно таким, но пришедшие ему на смену языки, что вполне логично, гораздо более мощные и разнообразные. Впрочем, COBOL продолжает совершенствоваться и получать обновления, и пример проекта CobolCraft наглядно демонстрирует, что этот язык все еще пригоден для проектов с миллионами активных пользователей. На момент выпуска материал ежемесячный онлайн в Minecraft составлял 180 млн человек, а за 13 лет существования игры количество зарегистрированных в ней пользователей перевалило за 600 млн.
COBOL повсюду
Отсутствие достаточного количества современных программистов, знающих COBOL, вовсе не означает, что написанный на нем софт используется лишь в двух-трех проектах по всему миру. Напротив, такие программы по-прежнему распространены, причем настолько, что от них зависит работа целых государственных систем, включая финансовые. Впрочем, нужно понимать, что программы на COBOL хоть и важны, но все же в мире их осталось не так много.
Отсутствие пишущих на COBOL специалистов – это проблема, потому разработчиков организуются специализированные курсы по этому языку. Также компании придумывают способы автоматического перевода кода COBOL в код более популярных нынче языков, в том числе Java.
По статистике компании IBM, к концу 2022 г. в мире насчитывалось около 800 млрд используемых строк кода на COBOL. А в конце 2023 г. CNews писал, что каждый день в мире программами, написанными на древнем языке COBOL, обрабатываются банковские транзакции на триллионы долларов США.