Новости
IBM предлагает ИИ для перевода кода COBOL в Java
Code Assistant позволяет не жертвовать возможностями COBOL, обеспечивая при этом снижение затрат и создание кода, который легко поддерживать.
COBOL, или Common Business Oriented Language, — один из старейших языков программирования, появившийся примерно в 1959 году. По данным исследования 2022 года, в производственных системах используется более 800 млрд строк кода на COBOL, в то время как в 2017 году их было около 220 млрд.
Однако COBOL имеет репутацию сложного в освоении и неэффективного языка. Почему бы не перейти на более современный? Для крупных организаций это, как правило, сложное и дорогостоящее занятие, учитывая небольшое количество специалистов по COBOL в мире. В 2012 году Commonwealth Bank of Australia начал замену своей основной платформы, написанной на COBOL, и это заняло пять лет и обошлось более чем в 700 млн. долл.
Стремясь предложить новое решение проблемы модернизации приложений на языке COBOL, компания IBM представила сегодня Code Assistant для IBM Z, который использует модель искусственного интеллекта для перевода кода COBOL на язык Java. Code Assistant станет общедоступным в 4 квартале 2023 года, а его предварительный показ состоится на конференции IBM TechXchange в Лас-Вегасе в начале сентября этого года.
По словам главного научного сотрудника IBM Research Ручира Пури, Code Assistant предназначен для помощи предприятиям в рефакторизации приложений для мэйнфреймов, в идеале — с сохранением производительности и безопасности. Code Assistant работает как в локальной конфигурации, так и в облаке в качестве управляемого сервиса. В его основе лежит модель генерации кода CodeNet, способная понимать не только COBOL и Java, но и около 80 различных языков программирования.
«IBM создала новую, современную генеративную ИИ модель для кода, которая позволяет преобразовывать устаревшие программы на языке COBOL в корпоративный язык Java с высокой степенью естественности генерируемого кода», — сообщил Пури в интервью TechCrunch. «Помимо преобразования кода, Code Assistant поддерживает полный жизненный цикл модернизации приложений и помогает разработчикам понимать, рефакторить, преобразовывать и валидировать транслированный код в современной архитектуре».
По словам Пури, CodeNet, обученный на 1.5 трлн. лексем и имеющий 20 млрд. параметров, был разработан с большим контекстным окном — 32 000 лексем — чтобы «охватить более широкий контекст» для «более эффективной трансформации COBOL в Java». Параметры — это части модели, изученные на основе исторических обучающих данных, которые, по сути, определяют навыки модели в решении задачи, например, генерации текста, а «лексемы» представляют собой необработанный текст (например, «fan», «tas» и «tic» для слова «fantastic»). Что касается контекстного окна, то оно относится к тексту, который модель рассматривает перед генерацией нового.
Сегодня существует множество инструментов, приложений и сервисов для преобразования приложений на языке COBOL в синтаксис Java, некоторые из них полностью автоматизированы. Пури признает это, но утверждает, что Code Assistant позволяет не жертвовать возможностями COBOL, обеспечивая при этом снижение затрат и создание кода, который легко поддерживать — в отличие от некоторых конкурирующих предложений на рынке.
«IBM создала Code Assistant, чтобы иметь возможность смешивать и сочетать сервисы COBOL и Java», — сказал Пури. «Если возможности «понимания» и «рефакторинга» системы рекомендуют, что тот или иной подсервис приложения должен оставаться на COBOL, он будет оставлен в таком виде, а другие подсервисы будут преобразованы в Java».
Это не означает, что Code Assistant безупречен. Недавнее исследование, проведенное в Стэнфорде, показало, что инженеры-программисты, использующие подобные ему системы искусственного интеллекта для генерации кода, чаще всего допускают уязвимости в разрабатываемых ими приложениях. Более того, Пури предостерегает от развертывания кода, созданного Code Assistant, до его проверки человеческими экспертами.
«Как и в любой другой системе искусственного интеллекта, в COBOL-приложениях предприятия могут существовать уникальные шаблоны использования, которые Code Assistant, возможно, еще не освоил», — говорит Пури. «Для обеспечения безопасности кода необходимо сканировать его с помощью современных сканеров уязвимостей».
Если не принимать во внимание риски, то IBM, несомненно, считает такие инструменты, как Code Assistant, важными для своего будущего развития. Сегодня около 84% заказчиков мэйнфреймов IBM используют COBOL — в основном это заказчики из финансового и государственного секторов. И хотя подразделение мэйнфреймов IBM по-прежнему составляет значительную часть ее общего бизнеса, компания рассматривает мэйнфреймы как мост к обширным и прибыльным гибридным вычислительным средам, которые она также предоставляет и поддерживает.
IBM видит будущее и в более широких инструментах искусственного интеллекта для генерации кода, намереваясь конкурировать с такими приложениями, как GitHub Copilot и Amazon CodeWhisperer. В мае IBM запустила fm.model.code в рамках своего сервиса Watsonx AI, который обеспечивает работу Watson Code Assistant, позволяющего разработчикам генерировать код с помощью простых английских подсказок в различных программах.