CobolCraft = Cobol и Minecraft: как древний язык программирования нашел применение в популярной игре

в 11:07, , рубрики: COBOL, minecraft, selectel, игры, ПО, языки программирования
CobolCraft=Cobol и Minecraft: как древний язык программирования нашел применение в популярной игре - 1

Разработчики удивили мир, запустив сервер для 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 для создания цепей и механизмов, что исключает возможность построения сложных устройств вроде игровых ПК или калькуляторов.

CobolCraft=Cobol и Minecraft: как древний язык программирования нашел применение в популярной игре - 2

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=Cobol и Minecraft: как древний язык программирования нашел применение в популярной игре - 3

Язык вряд ли вернет себе былую популярность, но он останется востребованным в специфических нишах. Примеры вроде проекта CobolCraft показывают, что язык может находить применение даже в неожиданных областях, таких как видеоигры. Однако его судьба во многом зависит от готовности организаций вкладываться в обучение специалистов и поддержку устаревших систем.

Автор: erbanovanastasia

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js