悪いのはCOBOLじゃないのかもしれない

COBOLは現役バリバリだ。“COBOLは化石”などと口にするのはITとエンタープライズシステムが何たるかをわかっていない証拠」。東京海上日動システムズの稲葉茂 取締役 抜本改革推進第1本部長(写真)は“不当な”評価にさらされるCOBOLの評価をこう正した。

[XDev]「COBOLは現役バリバリ」,東京海上日動がシステム全面再構築でCOBOLを選んだワケ | 日経 xTECH(クロステック)

なんという力強い言葉。世間に流されてJavaやったりRailsに走る連中よりは、ずっとまともに見える。


ところでCOBOLはさんざんバカにされている言語だけど、いろんな人からCOBOLのプロジェクトの話をちょこちょこ聞くにつけ、どうも悪いのはCOBOLという言語そのものじゃなくて、古い時代の制約に引きずられたデータ設計のほうだと思うようになった。

COBOLでシステムが作られた時代というのは、

  • メモリやストレージが高価だったので、サイズを節約するためのテクニックが優先され、わかりやすさは犠牲にされた。
  • RDBMSが出現する前 (あるいはRDBMSがまだ成熟する前) だったので、正規化とかDOAのようにデータを整理する手法や考え方が広まってなかった。

という状況がある。

こういった時代だから、妙なフラグがたくさんあったり、データを名前でなく先頭からの位置で指定したりとか、そんなわかりにくいロジックやデータ構造がはびこってしまった。

でもこれって、COBOLのせいじゃないよね。もちろんCOBOLの言語仕様もイケてない部分はたくさんあるんだろうけど、それよりもグシャグシャになってるデータ設計のほうが問題なんじゃないかな。

で、この話は s/COBOL/VisualBasic/g としても成り立つように思う (登場時期は違うけど)。データ構造さえしっかり整理されていれば、言語がウンコでもなんとかなる、というのが最近の結論。

だから、

「30年システムに携わっているが,COBOLは規格として長期間安定し,ビジネスロジックの書きやすさにおいては右に出る言語はない」と判断したという。

[XDev]「COBOLは現役バリバリ」,東京海上日動がシステム全面再構築でCOBOLを選んだワケ | 日経 xTECH(クロステック)

のように、ロジックの書きやすさで選ぶのは間違いで、データ構造の書きやすさや把握しやすさで選ぶべきだと思う。

そう考えているので、自分がもしフレームワークを作るなら、データ構造の可視化というか、データを整理することに力を入れたものにしたいと思う。作るかどうかわかんないけど。

稲葉取締役は「システムが複雑になったのはビジネスが複雑になったため」とぴしゃりと言う。「システムトラブルの原因を“COBOLを使っているからだ”などと話す人や“COBOLは化石”などと話している人を見ると,ビジネスに携わる技術者として見識を疑う。

[XDev]「COBOLは現役バリバリ」,東京海上日動がシステム全面再構築でCOBOLを選んだワケ | 日経 xTECH(クロステック)

その複雑になったシステムやビジネスを、いかにシンプルなものにできるかどうかが、システムが成功するかしないかの勘所だ。これについては関連する別記事を見つけたので明日書く。


参考になるかもしれないリンク:


ちなみに、ERP 業界 No.1 である SAP R/3 のデータベースはまさに COBOL 的な作りになっており、RDBMSを使っているにも関わらず普通のテーブル設計にはなってないらしい。
R/3 のテーブル構造が非公開であり API 経由のアクセスしか認められていないのは、これが原因だとか (今は違うかも)。