東京海上日動の新システムはCOBOLを採用 181
ストーリー by hayakawa
COBOLに問題があるのではない、COBOLでかかれたコードに問題があるんだ 部門より
COBOLに問題があるのではない、COBOLでかかれたコードに問題があるんだ 部門より
Anonymous Coward曰く、
日経ITproの記事によると、東京海上日動が2008年5月に完成させた新自動車保険システムでは、開発言語としてCOBOLを採用しているそうだ。このシステムは処理量や信頼性,既存システムとの連携面からメインフレームで稼働させ、システムのビュー部分はJavaで、モデル部分はCOBOLで開発しているとのこと。COBOLを選択した理由は、部品化とシステム構成のシンプル化を実現しやすいからだそうだ。
東京海上日動システムズの稲葉取締役によると、「30年システムに携わっているが,COBOLは規格として長期間安定し,ビジネスロジックの書きやすさにおいては右に出る言語はない」とのことで、旧システムからのプログラムの流用ができたことも開発の効率化に寄与したそうだ。また同氏は「システムトラブルの原因を“COBOLを使っているからだ”などと話す人や“COBOLは化石”などと話している人を見ると,ビジネスに携わる技術者として見識を疑う」とも述べている。
確かにCOBOLといえば古くさいイメージはあるが、金融業界ではまだまだ現役なのも事実。/.erの皆さんは、COBOLについてどのようなイメージを持たれているだろうか?
ひたすら長大なコードを紙ベースでデバッグする言語 (スコア:3, 興味深い)
紙ベースのデバッグって一体何十年前の話だよ。
レビューを紙でやるのは別に構わないけど、デバッグが紙って……orz
今はWeb系の仕事をしているので幸せです。
#一応補足として、ちゃんとコンパイル通る/通らないのチェックぐらいはできましたよ
#でも、コンパイル通す「前」に一旦ソースを印刷してデバッグしてました
#当時の上司が、何度もコンパイルかけるとホストの負担が大きいからやめてねって言ってました
#そりゃあ、あんだけ長くマシン使ってればねぇ……。
Re:ひたすら長大なコードを紙ベースでデバッグする言語 (スコア:3, 興味深い)
(1)プリンタ出力したLP用紙
(2)紙カード
(3)紙テープ
(4)コーディング用紙
(5)ラインプリンタで印刷した(1)の裏紙
のどれなんだろうか?
Re:ひたすら長大なコードを紙ベースでデバッグする言語 (スコア:1)
Re:ひたすら長大なコードを紙ベースでデバッグする言語 (スコア:1, 興味深い)
いったん印刷して、電子データの参照と両方利用しながらしながら進めていくけど。
いすにふんぞり返りながら読めたり、図や覚書などを簡単に書き込めたり、俯瞰的に見るのにかけては、やはり紙のほうが便利。
帰りの電車のなかで気軽に読んだりもできるしね。
帰宅の電車でバグを見つけて「あー~~~!!!」と叫んで、周囲の耳目を集めることも時々w
まあおかげで机には紙資料が散乱しているんだが。
つまり (スコア:3, すばらしい洞察)
ここがミソなんじゃないの?
スクラッチから作るのと、既存のシステムを流用した場合のトレードオフ。
部品化なんてオブジェクト指向言語ならどれでもできるわけだし、
そもそも言語なんて手段に過ぎない。
プログラム言語の性質で開発手法を語るのはどうかと思うのだが。。。
Re:つまり (スコア:2, すばらしい洞察)
JavaとCOBOLを教えますが、何か...
はっきり言えばいいのに (スコア:3, すばらしい洞察)
COBOLしかやってこなかった連中に他の言語勧めるのは難しいでしょ
年齢的な意味でも
Re:はっきり言えばいいのに (スコア:2, 参考になる)
まったくそのとおり。COBOLの人は事務処理ばかりやってた。だから他の言語の
エンジニアより事務処理の事を非常によく知ってる。
COBOLerの下に付くとCOBOLと同時に事務処理も教えてもらえるよ。
今時メインフレームでCOBOL使ってるって事は、COBOLと勘定系を両方知ってるって事なんだよね。
(業務系はさすがに少ないと思う)
JAVAやCのエキスパートなら、これは確実に知ってるだろう、慣れてるだろうって業務はないでしょ?
その差が大きいんだと思うよ。
〜◍
COMP-5 (スコア:3, 興味深い)
COBOLの数値って、十進数が直接扱えて必要な精度を指定できるから金計算向けだとはいいますけどね。
でも言語仕様としてはCOMP-1, COMP-2, COMP-3, COMP-4, COMP-5なんて謎の処理系というかハードウェア依存な形式がまかりとおっていて互換性は低いしわけわかんないよね。
この東京海上日動システムズの稲葉茂 取締役のおっしゃることに関してはさ、
ってのは、結局その会社のローカルコーディングルールを厳密に定めてごく狭い範囲の機能・パターンしか使用しないことに限定することでシステムをシンプルにして保守性やモジュールの流用可能性を確保したってことだよね。 それって言語の問題ではないと思う。 強いて言語に関係ある点をあげれば、その言語の持っている機能が貧弱すぎるか、もしくはその言語をフルに使いこなしたがる技術者がいないってことかな。 これは Java や C++ では確かに無理だわ。みな好きに書きたがる。 COBOLが主流だった時代はコンパイルどころかパンチの前にコードレビューするのも普通だったからそれでよかったんだろうし、今となっても からそれで済んでいるんだよね。 でも、この体制で開発したんじゃ なんてできるのかな。大いに疑問。 なんて、この人の話を信じる限りはありえないでしょ。 せいぜい限定用途では生き延びていく、くらいかな。この人の場合はサラリーマン人生そのものがその限定用途の中にすっぽりおさまっちゃってるからそれでいいのかもしれんけどね。 まあ、 って、要はリファクタリングをもって抜本改革なんて呼んじゃっているわけだし。フレームの元承知で、COBOLのいやなところを語ってみる (スコア:2, 参考になる)
# ひとり一項目縛りです
いやなところ:例のジョークの日本語訳が成り立たない (スコア:2, 興味深い)
How to shoot yourself in the foot in COBOL
Re:いやなところ:例のジョークの日本語訳が成り立たない (スコア:2)
そうなのですか。それで、ジョークの中身を実際に日本語に訳すとどうなるのでしょう。
「自分の足を撃つ方法をCOBOLで言うと」とすれば、日本語に訳してもジョークとして成り立つ、ってことですよね?
Re:フレームの元承知で、COBOLのいやなところを語ってみる (スコア:1, おもしろおかしい)
Re:フレームの元承知で、COBOLのいやなところを語ってみる (スコア:1)
@桁数の見積もりが甘くて数年後に桁あふれでABEND
ほんとに言語の優位性ってあるの? (スコア:2, 興味深い)
あるシステムに対する特定言語の優位性ってほんとにあるんですか?
慣れや扱いやすいさ、関数の充実などはもちろんあると思うのですが、
なぜ「金融系はCOBOL」なのかとかよく分からんのですよ。
ついでに言うとPerlだRubyだPHPだというのも
最終的には「どれでも一緒じゃん」と思ってしまうのはダメな人なんですかね?
いろんな意味での環境(人、ものなど)が基因で
案件毎に特定の言語の優位性があるってのは分かるんですけど。
何をもって「この言語がいい!」となるのか是非知りたいです。
Re:ほんとに言語の優位性ってあるの? (スコア:2, すばらしい洞察)
○「ビジネスロジック*以外*の処理に気を遣わなくていい(から書きやすい)」
と言うところが本意でしょうね。
Re:ほんとに言語の優位性ってあるの? (スコア:2, 参考になる)
c++だと複素数のクラスライブラリーとか作れるわけだが、あまり使ったことはない。
# ちなみにcしか使わん私は、複素数の計算はすべて手計算で実数に展開する。
Re:ほんとに言語の優位性ってあるの? (スコア:3, 参考になる)
-- 甘木
Re:ほんとに言語の優位性ってあるの? (スコア:2, すばらしい洞察)
>最終的には「どれでも一緒じゃん」と思ってしまうのはダメな人なんですかね
初心者がちょっとかじっただけで「どれでも一緒じゃん」と思うのと
達人がいきついた果てに「どれでも一緒じゃん」と悟るのはたぶんなんか違う。
本物の達人なら「適材適所」と言うと思うけど。
達人にはなったことないから脳内シミュレーションね。
Re:ほんとに言語の優位性ってあるの? (スコア:2, すばらしい洞察)
Cは組み込みで使ってみなさい。コンパイラの作りやすい言語系のおかげでCPUを選ばないから。
C++は極限性能を求める大きなプログラムを書くときに使いなさい。テンプレートマクロによる高速化が使えるから。
C#はWindows GUIプログラムに使いなさい。綺麗さと汚さのバランスが実用的だから。
VBはGUIの使い捨てプログラムに使いなさい。作成速度の初速は一級品だから。
その他にもハードウェア系の言語(VHDLとか)もやってみなさい。
言語で「配線」を記述することで、同時実行の極地に至れることが分かるでしょう。
# 言語が環境を作るのか、環境が言語を作るのかは分からないが、環境と言語は不可分なんだと思う
Re:ほんとに言語の優位性ってあるの? (スコア:1, 興味深い)
> 最終的には「どれでも一緒じゃん」と思ってしまうのはダメな人なんですかね?
その三つであればよほどの信者以外は「どれでも一緒じゃん」と思うのが普通です。しかし、あまりにも似た三つだけ(Javaは置いといて)を知っているからといって、他の言語も一緒か?などとは思わないように。
資産の流用のみ (スコア:2, 興味深い)
「ビジネスロジックの書きやすさにおいては右に出る言語はない」って言わなきゃ良いのにね。
今利用されている言語は、COBOLの遙か上にいるので、右にも左にも対抗言語はいません。
Re:資産の流用のみ (スコア:2, 興味深い)
あれってbuzzwordじゃないの?
仕事上で何度が聞いたことあるけど 大抵それを喋る奴って二流だし、自分が何言ってるか把握してないし。
// 馬鹿とハサミは使いようと申しまして・・・(:>^
MOVEとIFとPERFORM (スコア:2, 興味深い)
先輩曰く
「COBOLは、MOVEとIFとPERFORM知ってりゃ何とかなるよ」
と。
新人で重要な処理の部分は任されなかったのでまさにその通りでした。
しかし、それから幾つか言語を覚えましたけど、
どの言語の仕事でも、結局やってることのほとんどは
MOVE(値の移動)とIF(条件分岐)とPERFORM(関数等の呼び出し)だなあ、
なんて思います(後はLOOPくらい?)。
まあ、私のところにそんな難しいロジックのいる仕事が来ないってこともありますが。
--------------------
/* SHADOWFIRE */
代償 (スコア:2)
心臓部の統計処理は、COBOLで書いているのか?
おかげで、見た目のシンプルさは実現できるし、メインフレームメーカは儲けるし。
しかし、どう転んでも、全ての資金源はお客さんが支払う保険料だから、お客さんにとってCOBOLを使うとどんなメリットがあるかという話が聞きたいな。
保険料がお安くなりますようーみたいな。
この手のトピを読んで思う事は (スコア:2, おもしろおかしい)
取締役の言葉ではないな (スコア:1, 興味深い)
という開発人員を沢山抱え込んでいて、切り捨てられないというのが、本音だろう。
疑問なんですが (スコア:1, 興味深い)
実績が最大の評価なのはわかるんですが。
文字フォーマットのしやすさ?固定小数点演算?
そんなの使えない言語探すほうが難しいと思うんですが。
あえて確保と教育が面倒なCOBOLを選ぶほどのメリットがあるとも思えないんですが。
ちなみに仕事で使ってないだけで(試験用として)COBOL自体は知ってます。
Re:疑問なんですが (スコア:5, 興味深い)
COBOLの持つ機能ではなく、COBOLが持たない機能が多いおかげで、事務屋が
事務屋の目線で使える言語である、ということなのではないかと思います。
台帳と伝票を中心とした、画面も印刷も一時記憶も、すべてレコードの
概念で取り扱うことができ、
「この画面で入力された内容が、この伝票の一行になる」
「この伝票をこういう風に転記しつづけると、この台帳になる」
「この台帳の一行が、レポートの一行になる」
のが、見やすいのではないかと思います。
基本的には、とにかく伝票から台帳、台帳から台帳へ転記するルールのみを
延々と、しかも自然言語に近い冗長な記述で書いていく言語ですから。
-- Tig3r on the hedge
Re:疑問なんですが (スコア:2, 興味深い)
別に歴史ある会計処理を全否定する積もりはないが、なぜそうなっているか考えもせずに「ビジネスロジック」とかいう言葉で、そのままコピー・延命させるのもどうかと。
役所に出す書類、なぜこの数字がここなんだ、というのが、あちこちあって困る。
しかも問い合わせても、すんなり分かる説明を受けたためしがない。
Re:疑問なんですが (スコア:1, 興味深い)
昔、メインフレームのダウンサイジングで盛り上がっていた時に、Java バッチとか作ったことがありますが、帳票出力だとかがめんどくさいことこの上ない。
Java が「なんでも出来る」おかげで、実際の処理とは無関係な手続きの方が長いんじゃないか?ってくらいに。
# クラスライブラリなりを整備しろよってな話ですが。
適材適所って大事だなと痛感した一件でした。
ただ単にファイルの内容をあっちやったりこっちやったりするなら、やっぱり COBOL は楽です。何も考えなくて良い。
この程度なら、JCL + COBOL Script 的なものがあれば便利かも…って微妙かな。
まぁ、メインフレームでやるならの話ですが。UNIX 環境なら Perl なり Ruby で書いちゃった方が楽ですし。
# やっぱり COBOL はいらない子?
Re:疑問なんですが (スコア:4, 興味深い)
標準で(外部ライブラリなどを使わず)、十数桁の金額の計算を、想定外の丸めなどを起こさずに十進で銭単位まできちんと計算できる言語って、そんなにたくさんあります?
# いくつかは知ってますが。
Re:疑問なんですが (スコア:2, 興味深い)
他の言語でもできない訳ではないが、初めからそれと、後付けの差は大きい。
まあ画面周りとかは他の言語でもいいけどさ。
Re:疑問なんですが (スコア:1, 参考になる)
何も意識せずとも二進数由来の制限と無縁でいられる
要するに「そろばんや電卓での処理」をそのままプログラムに落とし込めるのよね
だから金融系のビジネスロジックと非常に相性がいい
Re:疑問なんですが (スコア:1)
コンピューターの知識が十分に無い人にとって、2進数とか16進数がもっとも難解なもの。
しかも符号とか型とかが関わるともうなにがなにやら。
帳票の扱いやすさも大きいですが、アレは自由度の低さが逆にモノを言ってる世界ですからね。
プロポーショナルな不等幅フォントなんて悪魔の産物としか思えません。
後は過去の資産というよりは、実績じゃないですかねぇ。
お金関連の人は結構こだわりますから。
Re:疑問なんですが (スコア:2, 参考になる)
特に何もしなくても、デフォルトの状態で金勘定と固定幅フォント帳票に
最適なモードに設定されているわけですから。
もちろん、ほかの言語でも可能な処理でしょうが、変数の型宣言などの
(ある意味)煩雑なことを気にしなくて良いというのはメリットだと思います。
#融通が利かないという事とのトレードオフではありますが。
きちんと(これ重要)コーディングすれば、素晴らしく見通しの良いコードになりますよ。
そういう意味で、金融系のバックボーンとしては悪くないと思います。
今のプラグラム言語と同列に考えるから「何でCOBOL?」となるのであって、
「BCDコードベースの金勘定に特化したスクリプト言語」くらいに
捉えておけば良いかと思います。
優秀なデバッガさえあれば、メンテもそう難しくないんじゃないかなぁ…
#見たこと無いけど
ただ、技術者としてそれに甘えていて良いかというのは別問題。
特性を理解してCOBOLを選択する事と、COBOLしか使えないってのは
雲泥の差ですから。
Cをまともに使える人なら、2時間も仕様とサンプルソース眺めれば
COBOLはそれなりに理解できるはず。
大昔のGOTOバリバリのスパゲティを理解できるかっていうと、
それはそれで別問題ですが。
Re:疑問なんですが (スコア:1)
(一応、Mac の ResEdit は知ってるが、言語か?)
the.ACount
COBOLが化石というよりも (スコア:1)
全 員 と は 言 い ま せ ん が 、COBOL技術者って「COBOL以外覚える気がないし必要ないからいいや」というスタンスの人が多いように思えます。
# 巷で色々騒がれてるシステム障害の原因も、COBOLにあるというより、COBOL全盛期の方法論しか振りかざせない人にあるような。そういう意味では「システムがCOBOLだったから障害が起きた」もあながち間違いではない・・・?
神社でC#.NET
Re:COBOLが化石というよりも (スコア:1)
開発が土方になる前の世界のニンゲン達なので、個々のスキルも高かったりするわけで
作った後の引き継ぎさえちゃんとやれば問題無いんじゃないんですかね
開発はともかく、現代っ子に理解出来ないロストテクノロジーで設計されちゃって、それ以上手が付けられないのが問題なんだし
COBOL職人が取締役 (スコア:1, おもしろおかしい)
派生クラス?オブジェクト言語?抽象化?オーバーライド?
俺のわからない事をいうなと。
基本設計がいい加減だったから (スコア:1)
そのあと追加追加で今となっては手を付けられないほど全体が巨大化というか肥大化してしまっていて
手直し程度ではどうにもならないんだけど丸きり作り直そうにも
そもそも全体を把握してる人どころか仕様書すら残っていない(もしくは最初からそんな物は無い)ので
仕方なくCOBOL使ってるだけ、という感じがします。
最初にたまたまハズレ引いただけかと思ってたら、次もその次もずっとそんなんでしたよ。ええ。
Re:金の計算と帳票処理なら (スコア:1)
ということの方が問題かと。
#自前でメンテナンス要員育てるならいいけど、生保は外注がほとんどだからなぁ
Re:金の計算と帳票処理なら (スコア:1, すばらしい洞察)
二進化十進 (スコア:1)
良いものは良い。
なんか文句がある人がいるんでしょうか。
Re:二進化十進 (スコア:1)
# ただしCOBOLを実装するに当たって有用かどうかは知らない :p
Re:二進化十進 (スコア:3, おもしろおかしい)
10 シキ SUM=0
20 マワレ 40 I=1 カラ 10000 カンカク 1
30 シキ SUM=SUM+0.1
40 トジル
50 カケ 1,SUM
60 オワリ
・・・しまった、「ジッコウ」しようにももう実機もってない・・・。
Re:二進化十進 (スコア:2, すばらしい洞察)
Re:金の計算と帳票処理なら (スコア:1)
あっ.そこのオジサン FORTH じゃないよ.
Re:金の計算と帳票処理なら (スコア:1)
.NET対応 [hitachi.co.jp]もあるみたい。
#富士通なんかはCOBOL->Javaなんてのもあったような・・・
Re:COBOLerが (スコア:2, 参考になる)
自社だけを見てるのでサンプリングとして少なすぎますが、COBOL要員募集案件は異様なまでに多いですよ。人員の高齢化に伴い、総数が減ってるのだとお客や上司からよく聞いています。むしろ、「Javaかじった」程度は溢れかえってる様で、要求スキルレベルの中~低程度のJava要員募集は皆無に近いです。
Javaに比べるとCの方が安定して仕事があります。
#そんな自身はRubyist.
puts "This user is a beginning Ruby programmer."