• はてなブックマークに追加
  • Yahoo!ブックマークに登録
すぐに覚えられ、動かせ、管理しやすく…ハッカー向きでない 祝・生誕50周年!COBOL、今年はCOBOLだ!
1960年に仕様が公開されて今年で半世紀を迎えるCOBOL。かつてはメインフレームの花形言語だったが、時は移り、人気言語が次々と現れ、今では「レガシー」「負の遺産」などと揶揄されることも…。本当にそうか? 2人のCOBOLerにCOBOLの魅力を語ってもらう!
(取材・文/総研スタッフ 高橋マサシ 撮影/平山 諭)作成日:10.06.10
COBOLを知らないエンジニアのために
 COBOL(COmmon Business Oriented Language)とは米国のCODASYL(データシステムズ言語協議会)によって開発された、給与計算など事務処理用のプログラミング言語。1960年に仕様が公開された。英語表現に近い記述や十進演算が特徴で、世界中で主にメインフレームでの基幹系システム開発に活用された。システムのオープン化に従って新規案件での利用頻度は減っているが、全世界で稼働しているコードは約2400億行あり、年間30億行が追加されているとか。これを「負の遺産」と呼ぶか「歴史の蓄積」と呼ぶかは読者次第。
COBOLは確かに変わった言語ですが、私は大好きです
COBOLの資産を生かすモダナイゼーション、新規案件もCOBOLで
「新卒で入社した会社で、CでCOBOLコンパイラを書いていました。各社が独自のアーキテクチャーで言語やOSを開発していたころですから、それは面白かったですね。ただ、当然のようにそんな業務は減り、同僚は新しい言語なり仕事に移っていきましたが、私はCOBOLがやりたかった。そこで1993年に弊社に転職したのです」
 マイクロフォーカス株式会社で技術部シニアマネジャーを務める小林純一氏は、COBOLへの思いをこう語る。1976年創業の英マイクロフォーカス社は、COBOL製品の開発・販売をする独立系ベンダーとしては最古参の1社。現在はCOBOLによる基幹システムのモダナイゼーション(IT基盤の近代化・最適化)を業務の柱に、大手企業をはじめ世界中に顧客を持つ。
「前社でCOBOLコンパイラの担当はほんの数人でしたが、それが転職したら100人もいる。それはもう、感動しました(笑)」

 モダナイゼーションの内容は多様だが、COBOLの資産を生かしながらプラットフォームをメインフレームからWindowsやUNIX/Linuxに替える場合が多い。
 COBOLは給与計算など大量の事務処理を自動化するために開発された言語。小林氏はその利用例に、種類やオプションの組み合わせが複雑な保険料計算を挙げるが、このように顧客と共に何十年と稼働してきた企業活動の心臓部が、COBOLで書かれているというわけだ。
 そのため、業務に支障が出なければ無理に言語を変える必要はなく、むしろ対象となるのはクライアント側の「出口部分」となる。また、モダナイゼーションではなく、COBOLで新規開発をする顧客もいるという。
「新規開発だけでなく、数年後に見直してバージョンアップする場合にも、COBOLを選ばれる方が多いです。なぜかというと、お客さまのIT担当者の方が理解と管理をしやすいからなんですね。長い歴史から方法論が確立されていて、いくつかのパラメータを入れるだけでプロジェクトの線引きが明確になり、しかもぶれない。確実で安心ということです。また、システムのバッチ処理はなくならないものですが、COBOLで書かれる多くはこのバッチです」
小林純一氏
マイクロフォーカス株式会社
ジェネラルマネジャー代理
技術部 シニアマネジャー

小林純一氏

大学卒業後に大手通信機器メーカーに入社。入社後すぐにCOBOLコンパイラ開発に携わり、COBOLを続けたくて1993年にマイクロフォーカス株式会社に入社。現在は、同社技術部門の責任者として活躍中。
大規模開発のプロジェクトマネジャーを目指すならCOBOL
 C、Python、Perl、Ruby…個人が開発したプログラミング言語と異なり、COBOLは米国の団体が策定した言語。時代性も影響しているが、前者を「何でもできる言語」とすれば、小林氏はCOBOLを「難しいことはできない言語」と呼ぶ。だからこそ誰もが覚えやすく、使いやすく、メンテナンスしやすい。また、リバースエンジニアリングなどのツールも使いやすく、拡張性も高いという。
「COBOLは論理的に書かれていて物理的な記述がなく、物理的な部分はJCL(ジョブ制御言語)のほうに書く。つまり、弊社のようなCOBOLのランタイムをつくっているベンダーでは、この部分をさまざまにマップでき、昔ながらの環境から広く拡張させることができます」

 COBOLの目的は大量の事務系データ処理。例えば、銀行のオンラインシステム開発では、数百人、千人単位のプログラマが数年を掛けたプロジェクトになるが、こうなると個人の力量を超えたエンジニアリングとしての生産管理が必要になる。もちろん、Javaや.Netでも可能だが、こうした開発こそCOBOLの目的なのだ。
「SIをビジネスとして考えれば、面白くない言語のほうが大規模開発に向いているんです(笑)」
若いエンジニアにも人気の「COBOL入門セミナー」
「私はCOBOLが大好きです。ただ、変わった言語であることは認めます。例えば、『.』は常に終止符となって文章を区切ってしまいますし、『_』でなく『-』を多用し、大文字だけのコーディングも多い。また、最初に『IDENTIFICATION DIVISION』と宣言しますが、この綴りをひとつでも間違えると動かない(笑)。大変は大変ですが、今ではIDEがありますし、大抵のCOBOL開発者はテンプレートをコピーして使っていますからね。それに、COBOLはソフトウェア工学の分野に最も貢献している言語なんですよ」
 COBOL開発者は北米や日本では減っていても、オフショア開発先のインドや中国では増加しており、世界全体では微増傾向にあるようだ。マイクロフォーカス株式会社では啓蒙活動として、「COBOL言語超入門」という1日コースのセミナーを、定期的に無料で開催している。これが人気だ。

「プログラミングの初心者ではなく、他の言語での開発経験はあるがCOBOLは初めてという方が参加されます。業務でCOBOLを使うのだけど、周りにCOBOLを知る人がいないなどの理由もあるようです。申し込み後のキャンセルが皆無に近く、いつも満席になりますが、若い人が多いですね。たまに『あなた、COBOL知ってますよね』という年輩の方も見かけますけど(笑)」
 今後は若いCOBOLerが増えるかも? COBOLに幸あれ!
COBOLのここが好き! 今どきの言語と違って、COBOLに難しいことはできないかもしれない。だけど、使いやすいし、メンテも拡張もでき、お客さまにも好評です。
COBOLは完成された言語、誰でもCOBOLerになれる
「バグゼロ」は当然? いや、あり得ないよ!
まなめさん
ニュースサイト「まなめはうす」の管理人
まなめさん

大学卒業後の2000年に大手ソフト開発会社に入社。入社以来現在まで、官公庁の基幹系システムの運用・保守をCOBOLで行っている。ITproやASCII.jpで連載を持つ。
「配属時に上司から、『大きいプロジェクトと小さいプロジェクトがあるけど、どっちがいい?』と聞かれて、大きいほうをお願いしたら、こうなりました(笑)」
 個人ニュースサイト「まなめはうす」の管理人であり、ネット媒体で連載を持つまなめさんは、知る人ぞ知るCOBOLer。新卒で大手ソフト開発会社に入社以来、一貫して官公庁系基幹システムの運用・保守業務に携わってきた。こうした「歴史ある大規模システム」の多くがそうであるように開発言語はCOBOL。しかし、入社前は触れたことがなかった。
「プログラミングは大好きで、大学時代にDelphi、C、Pascalなどを覚えて、開発のアルバイトもしていました。ただ、COBOLはやりませんでしたし、初めて聞かされた正直な感想は、『え、COBOLかよ?』(笑)。でも、研修を受けると非常に簡単で、プログラミングの経験がなくてもできるなと感じました」

 担当している基幹システムが維持しているプログラムは、何十、何百メガステップという膨大なもの。それに細かな機能が追加され、トラブルがあれば解析もする。ただ、何十年と保守されてきたシステムなので完成度は高く、官公庁ということもあって最優先事項は「品質」となる。
「僕は今の職場しか知りませんから"バグゼロ"は当然と思っていましたが、何年かたってエンジニア仲間と話したら、皆に『ありえね〜』と驚かれました」
 バグが減る理由にはCOBOLの特性もあると、まなめさんは考える。わかりやすい記述なので誰でも読むことができる、ナレッジがたまっているからスキルの低い人でも対応できる、個人レベルではなく管理システムとしてバグを出さない仕組みになる、などだ。
「管理者側からバグが取れると言いますか、フロー図を描いたりチェック項目を設ければ、どのくらいバグが取れるかの検討がつくんです。僕はこの仕事を10年続けていますが、大規模システムの管理能力は上がっていると思いますし、先輩からも『なかなかできない経験だぞ』とか『出世できるぞ』と言われています。本当かわかりませんけど(笑)」
誰もがわかる、可読性の高いプログラムを書こう
 そもそもバグが限りなくゼロに近いシステム。そのため、定常的な工程である開発、レビュー、テストで取れないバグをどう取るか、それと効率化について、メンバーで毎年話し合っているという。すると、「開発手順からバグが出ないシステムをつくることができる」と思えるようになってきたという。
「設計書が終わったらコーディングは見えている、と上司は言います。誰もがCOBOLで正確なコードが書けるからなんですね。僕もコーディングに個性が入るのはダメなプログラマだと思っていますし、誰もが正確なプログラムが書ける仕様書をつくりたいと思っています」
 仕事は社員と協力会社で行っているが、当初は手を動かしていたまなめさんも徐々にマネジメントの立場になり、仕様の調整などが主な業務になった。また、全体では仕様書を書くのに3割、テストのチェック項目をつくるのに3割、コーディングが1割もなく、その後のテストが3割というスケジュールなので、他人が書いたソースを読むことも多いという。

「最近の言語では個人の力で解決する部分もありますが、COBOLは完成された言語ですから、いかに早く正確に書くかが課題。そこで僕が思うのは、自分はもちろん、他人が読んでもわかりやすいプログラムを書くことです。COBOLはシンプルで可読性が高いので、初心者の方でもできると思います。その分、ハッカー向きではないんですけど(笑)」
 ハッカーが好む、自由度が高いプログラミング言語は覚えるのに時間がかかり、必然的にバグも多くなる。その点COBOLはループや代入など機能がある程度制限されているので、仕様の変更があってもより確実に対応できるという。
COBOLは技術力ではなく、「できるかできないか」
 まなめさんが趣味で使う言語はC#、それとExcel+VBA。TwitterのBotもWebのAPIにもExcelを使う。しだいに「どんな言語を使うか」から「欲しい機能をつくる」に、プログラミングへの気持ちが変わってきたという。「望むことができればよい」という考え方であり、COBOLもプログラミング的な言語でなく、普通の言語に近いと感じている。
「だから未経験者でも覚えやすいし、誰でもCOBOLエンジニアになれます。多分、COBOLを使っているエンジニアは、開発スキルよりもお客さまの業務知識を大事にしていると思います。COBOLは技術力がどうという言語ではなく、"できるかできないか"のような気がします」

 仕事で知り合うCOBOLerたちとの間では、プログラミングやネットの話はほとんど出ないそうだ。上記の「スキルより知識」が理由なのかもしれないが、自宅にPCのないエンジニアや常時接続でないネットユーザーなどもいるとか。
「ネットで発信しているCOBOLerも少ないですよね。だからプログラムや技術の話がしたい僕は、ネットにそれを求めてしまうのかも(笑)」
 入社時に比べるとメンバーの数はかなり減り、「いまだに新人扱いです」と笑うまなめさん。この若いCOBOLerに後輩が続いてほしい!
COBOLのここが好き! 自由に書くんじゃない。いかに正確に記述するかがCOBOLのポイント。プログラミングを知らない人だって、COBOLエンジニアになれる!
  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
あなたを求める企業がある!
まずはリクナビNEXTの「スカウト」でチャンスを掴もう!
スカウトに登録する
高橋マサシ(総研スタッフ)からのメッセージ 高橋マサシ(総研スタッフ)からのメッセージ
これから若いCOBOLerは増えるか? 小林さんとまなめさんに同じ質問を投げかけたところ、二人とも「…………」と考え込んでしまいました。軽い気持ちで聞いたのですが、やっぱりシビアな内容だったようです。COBOLの50周年、おめでとう!!

このレポートを読んだあなたにオススメします

C、Java、Lisp、Perl、Python、Ruby…

プログラミング言語の開発者たち、20人が語る名言集

「言語デザイナー」と呼ばれる、プログラミング言語の開発者たちの言葉を集めました。含蓄のある名言から、思わず納得のフレー…

プログラミング言語の開発者たち、20人が語る名言集

Pythonユーザー向けカンファレンス「PyCon JP 2012」レポート!

Perlハッカー小飼弾氏が語る、Pythonは傲慢な外国語!?

9月15日〜17日に開催され、480名を超える来場者を集めた「PyCon JP 2012」。中でも編集部が注目したのは…

Perlハッカー小飼弾氏が語る、Pythonは傲慢な外国語!?

組み込み向けプログラミング言語“mruby”“MobiRuby”が誕生!

まつもとゆきひろと増井雄一郎が創る“軽量Ruby”とは

「Ruby」の生みの親であるまつもとゆきひろ氏が、組み込み向けの軽量版「mruby」を開発した。また増井雄一郎氏は…

まつもとゆきひろと増井雄一郎が創る“軽量Ruby”とは

学生プログラマ日本一&世界に挑戦するアプリ開発コンテスト

CODE VS、Tech-Tokyo─決勝を制した学生ギークは誰?

日本一の学生プログラマを決める「CODE VS」、“学生生活×Android”“位置情報×Webアプリケーション”をテーマに開発…

CODE VS、Tech-Tokyo─決勝を制した学生ギークは誰?

Rubyまつもと氏、Palmscape奥氏、うたうたう新井氏のホンネ 

生まれた時からプログラマ☆興味と感性で世界を驚かす

プログラマは下流工程、早く抜け出してSE、そしてPMへ上がりたい……なんて思っているソフトエンジニアの皆さん。その考えは間違って…

生まれた時からプログラマ☆興味と感性で世界を驚かす

やる気、長所、労働条件…人事にウケる逆質問例を教えます!

質問を求められたときこそアピールタイム!面接逆質問集

面接時に必ずといっていいほど出てくる「最後に質問があればどうぞ」というひと言。これは疑問に思っていることを聞けるだけで…

質問を求められたときこそアピールタイム!面接逆質問集

この記事どうだった?

あなたのメッセージがTech総研に載るかも

あなたの評価は?をクリック!(必須)

あなたのご意見お待ちしております

こちらもお答えください!(必須)

歳(半角数字)
(全角6文字まで)
  • RSS配信
  • twitter Tech総研公式アカウント
  • スカウト登録でオファーを待とう!
スマートグリッド、EV/HV、半導体、太陽電池、環境・エネルギー…電気・電子技術者向け特設サイト

PAGE TOP