Разработчики удивили мир, запустив сервер для Minecraft на основе программного обеспечения, написанного на COBOL — одном из старейших языков программирования, созданном более 60 лет назад. Несмотря на возраст и устаревший статус, старый язык программирования оказался вполне подходящим для реализации таких задач, хотя и не без нюансов.
Minecraft и язык COBOL: необычное сочетание
Программисты создали сервер для Minecraft, особенностью которого стало использование языка программирования COBOL. Этот язык появился в далеком 1959 году и значительно старше большинства современных игроков Minecraft. Причина выбора именно этого языка разработчиками осталась неразглашенной, отмечает портал Tom’s Hardware.
COBOL (COmmon Business-Oriented Language) был разработан 65 лет назад для бизнес-приложений и с тех пор постепенно вышел из моды, уступив место более современным языкам. Тем не менее, проект CobolCraft с открытым исходным кодом стал примером того, как COBOL можно адаптировать для современных нужд. Для разработки сервера использовался свободный компилятор GnuCOBOL, работа над которым длилась 20 лет. В марте 2024 года его авторы объявили, что компилятор готов для промышленных проектов.
Современная версия COBOL в действии
Для CobolCraft используется версия COBOL для Linux, основанная на стандарте COBOL 2014 и написанная на языке C с элементами C++. Это делает возможным применение современных функций COBOL, что критично для реализации большинства задач, необходимых для работы Minecraft-сервера.
По информации с GitHub, большинство базовых функций сервера уже работают. Среди них:
- генерация бесконечного ландшафта,
- сохранение данных о мире и игроках,
- поддержка импорта существующего мира,
- многопользовательский режим до 10 игроков,
- взаимодействие с блоками, включая разрушение и размещение,
- чат, «белые списки», консольные команды, отображение статуса сервера.
Однако работа над сервером далека от завершения. Например, сложные блоки с несколькими состояниями или ориентациями требуют дополнительного программирования, а некоторые интерактивные функции ограничены. Тем не менее, ключевые элементы, такие как двери, люки, кровати и факелы, работают исправно. Проблемы возникают с редстоуновыми механизмами — уникальной системой Minecraft для создания цепей и механизмов, что исключает возможность построения сложных устройств вроде игровых ПК или калькуляторов.
COBOL: от бизнеса до игр
Для современных программистов COBOL — это скорее реликт, чем активный инструмент. Большинство из них никогда не использовали этот язык, поскольку он считается устаревшим. COBOL изначально создавался как простой и удобочитаемый язык для бизнеса, финансируемый Министерством обороны США. Он предлагал кроссплатформенность и производительность, которые сделали его востребованным в середине 20 века. Однако с тех пор на смену пришли более мощные и универсальные языки.
Тем не менее, пример CobolCraft доказывает, что даже «древний» язык программирования может найти применение в проектах с широкой аудиторией. Minecraft, ежемесячная аудитория которой достигает 180 миллионов человек, продолжает вдохновлять разработчиков на эксперименты. А язык, которому уже более полувека, благодаря адаптации способен выдерживать требования современных игровых серверов.
Несмотря на возраст, COBOL продолжает развиваться. В стандарте COBOL-2002 были добавлены функции для объектно-ориентированного программирования, а в COBOL 2014 появилась поддержка вычислений с плавающей запятой IEEE-754, перегрузка методов и возможность работы с динамически расширяемыми таблицами.
Выпуск новых продуктов для COBOL также не прекращается. Недавно был представлен компилятор GnuCOBOL 3.2, который транслирует программы на COBOL в код на языке C, чтобы затем компилировать его с использованием GCC или других C-компиляторов. Этот инструмент поддерживает 19 различных диалектов COBOL, частично соответствует спецификации COBOL 2014 и успешно проходит 9740 тестов для проверки совместимости с COBOL 85. Дополнительно доступен встроенный отладчик.
Где и почему он применяется?
COBOL до сих пор широко используется. Общий объем написанного на нем кода оценивается в 220 миллиардов строк, из которых около 100 миллиардов продолжают применяться, преимущественно в финансовом секторе. По данным 2017 года, 43% банковских систем функционировали на базе COBOL, язык применялся для обработки около 80% персональных финансовых транзакций и в 95% терминалов для оплаты банковскими картами.
В целом, у него остается две основных отрасли, где он продолжает активно использоваться (но с каждым годом и месяцем все меньше).
- Финансовые учреждения. COBOL все еще широко применяется в банках, страховых компаниях и других финансовых организациях. Его устойчивость и высокая производительность делают его подходящим для обработки больших объемов транзакций.
- Государственные структуры. COBOL используется для управления базами данных, обработкой налогов, социальных выплат и других административных задач.
Множество критически важных систем, разработанных десятилетия назад, все еще функционируют на COBOL. Заменить их полностью сложно и дорого, поэтому их поддерживают и модернизируют. Сейчас, по версии Tiobe, язык занимает 19 место.
Язык вряд ли вернет себе былую популярность, но он останется востребованным в специфических нишах. Примеры вроде проекта CobolCraft показывают, что язык может находить применение даже в неожиданных областях, таких как видеоигры. Однако его судьба во многом зависит от готовности организаций вкладываться в обучение специалистов и поддержку устаревших систем.
Комментарии (5)
Jijiki
02.01.2025 23:21у кобола на сколько пониманию лучше работа с большими числами оттуда и интерес у майнкрафт идеи к коболу (вроде, точно не знаю)
VADemon
02.01.2025 23:21Разные числовые форматы Кобола (любой) реализации Minecraft до фени, потому что нотчевский сервер никогда не заботился о точности. Там даже с де/сериализацией плавающей запятой проблем при передаче по сети и сохранениях куча.
radioxoma
02.01.2025 23:21Скоро в Minecraft откроют банк.
Format-X22
02.01.2025 23:21В 2011 я был на сервере где у магазинов в игре были сайты-магазины в интернете с актуальными ценами. И торговая площадь, которая кусалась ценами на аренду и потому один товарищ в поле построил торговый центр с магазином и развлечениями, провел туда метро и давил всех рекламой. Про метро и 40 минут в вагонетке с пересадками я даже рассказывать не буду. С тех пора меня ничем не удивить.
funca
Автор проекта какой-то монстр. Интересно, откуда у него столько свободного времени?