「脱COBOL」が示す生成AIによるレガシープログラミング言語からの移行プログラミング基礎解説(1/3 ページ)

製造業の基幹システムのプログラミングにも広く用いられてきたCOBOLからの移行を模索する「脱COBOL」の動きが活発になっている。このCOBOLに代表されるレガシープログラミング言語からの移行において力を発揮するのが、生成AI技術を活用した「ぺアプログラミングツール」や「Copilot」と呼ばれる支援ツールだろう。

» 2024年04月03日 07時00分 公開
[田中裕一MONOist]

 基幹システムの「脱COBOL」の動きが、ここ数年で活発化してきています。2023年には、旭化成建材が汎用機で稼働する基幹システムにおいて、技術者の多いJavaへの変更による脱COBOLを実現し、工場のDX(デジタルトランスフォーメーション)に向けた基盤整備に成功したと報道されていました。では、脱COBOLに踏み切ったのはなぜなのか、また何が課題となっていたのでしょうか。

 1959年に登場したCOBOL。その拡張性と可読性の高さから、生産管理や製造業のシステム開発でも広く使われてきました。その一方で、COBOLを使ってシステムを開発した当初は、セキュリティに対する配慮があまりなされておらず、さまざまな脆弱性が含まれているとも言われています。しかし、セキュリティの脅威と脆弱性は増加を続ける一方であり、2022年には前年比で25%も増加したという報告がありました。ビートルズが誕生するよりも前に生成されたソースコードによって構築されたITシステムは砂上の楼閣のように崩壊してしまう可能性が高いため、COBOLのようなレガシープログラミング言語を、このまま運用し続けることが課題になっただろうということは容易に想像できます。

 COBOLは、現在使用されている最も古いプログラミング言語の一つです。今日知られているコンピュータソフトウェア業界の構築に大きく寄与しており、驚くほどの持続力を持っています。2022年の調査によると、本番環境では8000億行以上のCOBOLが使用されていると推測されており、2017年の推定値である2200億行から3.6倍以上に増加しているのです。

 しかし、COBOLを取り巻く状況は大きく変わりつつあります。操作が難しく非効率な言語ともいわれるCOBOLは、レガシープログラミング言語である故に、経験豊富なCOBOL開発者が高齢化から続々と引退していく時代に突入しています。COBOLの開発に従事できる適任者の減少は止めることは難しく、専門知識を持つ開発者を見つけることがさらに困難となります。新しいスタッフを雇用しトレーニングを積み重ねていくことは可能ではありますが、そこには時間とコストという壁があり、目の前にある課題解決への取り組みに遅延が生じるという状況に陥っています。

2023年にGitHubで開発者が使用したプログラミング言語トップ10 2023年にGitHubで開発者が使用したプログラミング言語トップ10。レガシープログラミング言語であるCOBOLは入っていない[クリックで拡大] 出所:GitHub

レガシープログラミング言語がもたらす弊害

 レガシープログラミング言語がもたらす弊害として、以下が挙げられます。

  1. セキュリティリスクの増大
  2. 生産性の低下
  3. 運用コストの増加

 古いCOBOLのシステムにはデータ漏洩(ろうえい)やサイバー攻撃など、組織をリスクにさらすセキュリティの脆弱性があります。このようなリスクを軽減するには、セキュリティの強化やアップデートに投資しなければならず、これが運用コストの増加につながります。

 COBOLは冗長で複雑な言語であるため、コードの理解、保守、デバッグが困難でもあり、さらには十分にドキュメント化されていないことが大半なため、そもそも何を実行するコードであるのかすら理解することも難しくさせています。このような複雑さから、開発サイクルが長くなり、保守作業に費やす時間も増加させ、その結果生産性を低下させてしまいます。これらのシステムを新しいテクノロジーやプラットフォームと統合することも困難で、相当の工数をとられてしまうため、開発時間とコストを増加させてしまいます。

 さらに、COBOLシステムは、最新の大量トランザクション処理環境のニーズを満たすための拡張に苦戦する可能性があります。トランザクション量が増加するにつれて、COBOLシステムは、作業負荷の増加に対応するために追加のハードウェアリソースまたは修正を必要とする可能性があり、それがさらなる運用コストの増加につながります。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.