BLOG

COBOLをどう思います?

「オオカミ少年」の話を知っていますか?

テレビ番組じゃなくてね・・・(笑)

イソップ寓話で繰り返しウソをつく子どもがいて・・・ そのウソがホントになった時、誰も信じてくれなかったって。

こんにちは。ディーキャリアITエキスパート名古屋丸の内オフィスの志村です。

とても古いプログラミング言語でCOBOLCommon Business Oriented Language)があります。
出来たのは1959年。古い。 う〜ん、わたしと同い年だ(笑)

「COBOL(プログラム)はもう無くなる。」

そう言われ続けてきました。
わたしがソフトウェアの仕事を始めた頃に既に言われてましたし、今でも言われています。30年くらい・・・(苦笑)
それでね、まだ無くなっていません(^_^;)

いつ無くなるんだよ・・・

COBOLはコンピュータソフトの歴史で、最も古い高級(高水準)プログラミング言語の一つです。
FORTRANが1957年生まれで、この2つは同世代の言語です。
わたしが現役だった頃から、大型計算機で業務アプリケーション(事務処理用)のプログラミング言語としてずっと使い続けられてきました。

今でも使われているというのがスゴイです。

プログラミング言語はコンピュータソフトの発展と共に数多く作られてきました。

大型計算機用のプログラミング言語としては、COBOL、FORTRANの他にIBMがPL/I(ピーエルワン)を作りましたが、ネットワークが普及しサーバーが使われるようになっても、サーバー上でCOBOLのプログラムを動かそうとしてきました。

古い(COBOLの)資産がたくさんあるから・・・と、そう言われていました。

レガシーシステムと言います。遺産とか資産ですね。

業務アプリケーションの世界では昔からのプログラム資産があるから、それを捨てられないのだということね。
確かに数多くそういうものがあるし、お金も随分かけて作ったので、すぐに捨ててしまうのは勿体ない。
とは言っても、徐々に新しいプログラミング言語に置き換わっていくだろう・・・と思っていました。

C言語が出てきた時もそう思いましたし、Javaが普及した今では、COBOLじゃなくてもねぇ、いいよね。

COBOLプログラムをJavaプログラムに変換するプログラムもあります。変換して今時のプログラミング言語にしたら、メンテナンス性も上がって良いのじゃない?

やっぱりオブジェクト指向がいいじゃない?
・・・と思っていました。

昨日ね、chatGPTと「データ中心(Data Oriented)」アプローチの話をしていて、ちょっと思ったことがあるのです。
データに注目して、データを構造化する。
オブジェクト指向の「オブジェクト」は、C言語の構造体とかPascalのレコードがその元になったんだよね〜
と、chatGPTに話しかけたら、そうだと言う。

データ中心の考え方はとても重要だよね。
データベースをうまく使うってこともあるしね・・・。
という話をしていて、ふと思ったのは、COBOLのレコードの扱いです。

COBOLは、DATA DIVISIONという部分に、ファイルの構造(レコード)を書きます。これはね、データを構造化してあるんです。C言語の構造体とよく似てます。同じだと言ってもいい。

COBOLは元々、大型計算機で大量のデータをまとめてバッチ処理することを得意とするプログラミング言語です。当時、ファイルは磁気テープ(磁気ドラムや磁気ディスクということもありました)上に保存されていて、それを読み込みながら処理する。結果をまたファイルに書き出します。

それでファイル(レコード)を順に処理していくのが基本です。

COBOLのデータはレコードとして構造化されているから、これって「データ中心」の考え方と同じじゃない?とchatGPTに聞きました。
chatGPT君、そうだと言う。

こんな古いプログラミング言語のCOBOLに、データ中心の考え方、あったんだ。
でもね、データは構造化されているけれど、「処理」は概念上、切り離されているから「オブジェクト指向」ではもちろんありません。
そこは残念だったね・・・と、chatGPTに言ったら、

構造化されたデータと、ビジネスルールを表現した「手続き・処理」を切り離してあるから、ビジネスルールが変更になった時にメンテナンスしやすいんだと、chatGPTが言います。

ああ、そう言われればそうかもね。
切り離されていることがメリットかもしれないね。

COBOLはレガシーシステムが捨てられないから、今でも使われているんだと思っていたけれど、 実は業務アプリケーションシステムで、大量データのバッチ処理をすると考えたら、そもそも使いやすいプログラミング言語なんだと、改めて思ったのです。

扱うデータはちゃんと構造化されていて、ビジネスルールが変わっても同じものを使うと思えば、オブジェクト指向でないのが良いかもしれない。
あえてオブジェクト指向プログラミング言語を使わなくても良いのだと・・・。

目からウロコでした。

COBOLはまだ無くならないかもね・・・。
当分の間、使われ続けるかもしれません。プログラムの記述も英文に近いから、割と分かりやすいとも言えるしね。
GUIのプログラムを書くならオブジェクト指向プログラミングですが、業務アプリケーションでデータベースに保存された大量データを処理するなら、これからもCOBOLは使われ続けるかもしれません。

データは最初から構造化されています。データベースにぴったり合ってる。
それを取り出して処理して、データベースに書き戻す。そういうのにCOBOLはピッタリです。

ところで、COBOLプログラマは減りましたねぇ。
わたしの世代の技術者にはCOBOLプログラマがたくさんいましたが、現役を退いています。若い人たちはあえて古いプログラミング言語のCOBOLを学ばない。
学校でも教えない。

今、COBOLプログラマは希少価値がありそうです。

もし、入った会社でCOBOLを勉強しといてよ・・・と言われたら、チャンスかも?(^o^)
これからどうなって行くのでしょうね。ちょっと面白いことになってきた。
(^o^)
そう思いました。

ディーキャリアでCOBOLはやりませんが、ディーキャリアITエキスパート名古屋丸の内オフィスもよろしくです。(^_-)-☆


ディーキャリアITエキスパート名古屋丸の内オフィス 
 ・電話052-218-4877
 ・メール it-nagoyamarunouchi@dd-career.com 
 ・所在地:〒460-0002
      愛知県名古屋市中区丸の内2-17-22丸の内桜通ビル2階
 ・HP:https://dd-career.com 


ITエキスパート名古屋丸の内のブログ一覧
  1. ペースやサイクルが鍵

  2. プログラミング学習 “以前”

オフィス情報

ITエキスパート名古屋丸の内オフィス

名古屋市営地下鉄 桜通線/鶴舞線「丸の内駅」3番出口すぐ
052-218-4877