金融系ではなぜCOBOLが使われるのか 122
ストーリー by hylom
そこにあるから 部門より
そこにあるから 部門より
あるAnonymous Coward 曰く、
「金融系ではなぜCOBOLが使われるのか」という話が、Togetterまとめやはてなブックマークで話題になっている。
金融系と言えばCOBOL、というのは有名だが、現在ではそれ以外にも多くの言語があり、あえてCOBOLを利用する理由について議論されている。Togetterまとめでは固定小数点演算とその精度、速度が理由として挙げられているが、ほかの言語でも十分なライブラリが登場している現在、ややピントがずれた議論の気もする。
過去の遺産(=財産) (スコア:5, すばらしい洞察)
Re: (スコア:0)
今まで動いてきたシステムに、ちょっとの変更を加えるだけだとしたら、やっぱり今までの環境を持ってくるよなぁということですよね。
#ふさふさから一本毛を抜いてもふさふさだから、何本毛が抜けてもふさふさだろう理論
Re: (スコア:0)
そうやってどんどん進化の袋小路に追い詰められて、時代遅れの生きている化石になることを、
負の遺産と言ったりしませんか。
#変更にかかる期間の長期化、保守費用の高騰、保守部品は年々入手困難に、etc
>#ふさふさから一本毛を抜いてもふさふさだから、何本毛が抜けてもふさふさだろう理論
#ふと気がついてみたら毛が三本。
Re: (スコア:0)
> #ふと気がついてみたら毛が三本。
おばQですか?
Re:過去の遺産(=財産) (スコア:1)
ヒトより頭髪が三本足りない奴はサル、という古伝説もあった。最近人口に膾炙しないほど忘れられているけど。
Re:過去の遺産(=財産) (スコア:1)
金ドブ権ってなに?
銀行が金持ちって何のジョーク?
銀行の運用益は預金者や何かに返すべきものであって、ドブに捨てて良いようなもんじゃないよ。
#そういう人の金を自分の物だと思う勘違い君って、マジに存在するんだろうか。
Re:過去の遺産(=財産) (スコア:1)
>銀行が金持ちって何のジョーク?
元コメが勘違いか無知でで銀行をバカにし過ぎだというのは同意だけど、
営業利益の額をみれば、銀行は金持ちで差し支えないと思う。
金融がIT装置産業だというのもあるけど、事業会社ではなかなか百億円単位のIT投資なんて信じられないですよ。
Re: (スコア:0)
ユニットテストと無縁な言語なせいでリスク値さらに高止まり
新旧に繋がりの無い業務形態が突然現れでもしなけりゃ百年先もCOBOLを使ってるだろうね
Re:過去の遺産(=財産) (スコア:1)
xUnit 系に沿った COBOL Unit [google.com] とかありますよ。
Re:過去の遺産(=財産) (スコア:1)
xUnit 系に沿った COBOL Unit [google.com] とかありますよ。
10進演算の正確さもあるけど (スコア:4, 参考になる)
帳票作成時のレイアウトのしやすさなんてのもCOBOLのメリットとして
上がってたよ〜(1980〜1990年頃の話)。
また、膨大な量の入出力(出力は紙への印字)を短時間で行うには
チャネル回りが充実してたメインフレームの独壇場であり、そこで
動作する言語はCOBOLが最もメジャーだったという経緯もあり。
この辺は今もそうなんじゃないかな。
Re:10進演算の正確さもあるけど (スコア:2, 興味深い)
富士通のメインフレームからPCサーバに変えたお客さんが、オープン系はプリンタが弱くてね、って愚痴ってましたね。
メインフレームの周辺機器は専用品だから高価だけど、相性問題もないし、性能や安定性はピカイチだって言ってました。
だからといってメインフレームに戻すことはないんでしょうけど。
Re:10進演算の正確さもあるけど (スコア:1)
金融ではないですが、未だPrimeForceが現役です。
昔とちがって汎用機とプリンタの仲介をするソフトウェアがかなり融通が利くようになったんで、専用プリンタは減少傾向ですけどね。
(富士通だとSystemWalkerやFNA Server)
それでも汎用機+COBOLの帳票環境から離脱するには相当苦労しそうです。
Re:10進演算の正確さもあるけど (スコア:2, 興味深い)
一部の帳票関連は、銀行のセンター内で印刷屋かとおもうぐらいでかいプリンターというか印刷機で大量に作成してました。
また、取引先名や氏名などで予想外に外字が多く、フォントを銀行員の方がツールを使って作成しており、その多さや標準外の設定のためプリンターのファームウェアを銀行向けにカスタマイズしないと全て対応できなかったり。
部分的には他言語で十分でもトータルでみると複数言語を習得して構築、よりはCOBOL一択。それでも一部ライブラリはアセンブラ等もあって、そういったものは専門職や協力会社の人が組んでましたが。
また行員は異動が多く、支店でバリバリの銀行業務をしていた人がシステム部門に着任したりもします(今でもそうかわかりませんが)。
COBOL/JCLなら言語の特性はありますがビジネスロジック以外のコンピュータ基礎的なことにあまり囚われずに組めるので文系の方でも扱いやすかったようです。
ただ銀行内でも、いわゆる勘定系や上記以外はWindows/VSやUnix/C/Javaなんかも使われており、そういったものが増えてきてからCOBOL専従やCOBOLも知ってるってエンジニアの割合は減ってきてはいました(同じく20年ほど前。。。年取ったなぁ)。
新卒で初めてメンテしたCOBOLソースの作成日が自分の誕生日より古く、よく見るとそういったのがゴロゴロあったのをよく覚えています。
そういったもろもろを思いだ出してしまったので、長文失礼。
Re:10進演算の正確さもあるけど (スコア:2)
帳票というか、入出力周りまで言語仕様に含んでいる、というのが COBOL の特徴にあるかと思います。
MS-DOS の頃、メニュー式のランチャーアプリなどが NEC MS-DOS や HDD メーカー提供のユーティリティなどによく付いていましたが、そういった感じのメニュー画面なんかはかなり簡単に記述できます。
富士通の PowerCOBOL なんかは Windows 用のウィンドウアプリを COBOL だけで書けて最初は「気持ちわりー!」と思ったのですが、この辺りを踏まえて考えてみると、実は正当進化なのではないかという気もします。
選ばれてCOBOL (スコア:3, すばらしい洞察)
COBOLを捨てて他の言語にしなければならないだけの十分な理由がない
消極的な選択なんだろうと思う
Re: (スコア:0)
メンテナーの確保が年々難しくなるというのは?
希少価値化して給料が上がれば、拾得者もまた増えてくるという市場原理の均衡が働くのだろうか。
Re: (スコア:0)
メンテナーの確保が年々難しくなるというのは?
教育期間を設ければいいだけのこと。
COBOLやFortanのようなレガシーなシステムに限らず新しいシステムでも教育期間を設けるのは当たり前。
Re:選ばれてCOBOL (スコア:1)
むしろ、どマイナーな言語でカタにはめてしまえば人材流出のリスクも減るでしょうね。
他業他社で通用しないレベルの人材になっても、自社で使えれば何の問題もありませんし。
Re: (スコア:0)
そういえば、正しいプログラマの前では、プログラミング言語間の差異なんて、
自然言語の方言の間の差よりも小さい、なんてよく嘯くけど、COBOLは別格なのかな?
未知の言語でも、数日もあれば、そこそこ使いこなせる。
本番系ではやらないにせよ、外に出さない雑用レベルで必要に迫られたら、全く触ったことがない言語で書かれてても、
見た感じの雰囲気だけを頼りに修正、ぐらいのことも良くやる。
一週間ぐらい集中して勉強しても使いこなせない言語があるとは思いにくい。
アプリがアプリだけに、そんな気楽な習得レベルで仕事をすんな、みたいなのもあるのかな?
Re:選ばれてCOBOL (スコア:1)
Re:選ばれてCOBOL (スコア:1)
>正しいプログラマの前では、プログラミング言語間の差異なんて、
「COBOLを使ってるような奴は『正しくないプログラマ』だから、差違もずっと大きくなる」
と言いたいわけですね、分かります。
#既に規格外扱いなのは事実だと思う。
Re:選ばれてCOBOL (スコア:1)
語彙がややこなれていませんが、言語そのものは簡単です
#FORループと関数(手続き)呼び出しが両方PERFORM文とか
難しいというか面倒くさいのが、ローカル変数とか引数の概念がないので、
ほぼ共通処理なんだけどほんのちょっと違う処理みたいなのを書くときに、他の言語では関数として処理をまとめられるところを、
コピペして違うところだけ書き直さざるを得ない場面が多数出てきて、デバッグも以下略となるので、
もうCOBOLは触りたくないです
...という人が多いと想像
Re:選ばれてCOBOL (スコア:1)
今時の COBOL だと引数取ったり [fujitsu.com]できるんですよ。NetCOBOL に限った話でもない [mainframestechhelp.com]感じで。
今時は Java や .NET Framework との連携ができないといけない世界なので、そのための言語仕様拡張とかも入ってますね。速度面だけではなく、この辺りの関係からも BCD のみではなくなっていたりとか。
# たまに COBOL の事を調べてみると、いつのまにかとんでもなく機能拡張されていてビビる。
Re: (スコア:0)
自分で答分かってる系かな?
どうやら平均的な能力水準のプログラマはほとんど一つの言語しか扱えないという噂を聞いたことがある
# 我々日本人が日本語しか使えないのと同じなのかなw
Re: (スコア:0)
正しいプログラマならCOBOLぐらいすぐ使えるけど、
なんか手足縛られたまま仕事させられてる気分になってくるはず。
Re: (スコア:0)
こんだけ使われていれば処理系も見放されないからな。
Pythonとかいつ消えるかもわからんのにあほか
お、 (スコア:2, おもしろおかしい)
おばちゃまはね
Re:お、 (スコア:2)
17才(1997年就役) [wikipedia.org]でおばちゃまですか?
Re: (スコア:0)
不覚にもニヤッとしてしまいました
Re: (スコア:0)
すぽぽーん!
#ちんぴょろすぽーんって絶対べーしっくんからパクってると思ったあの頃
だって金勘定は怖いんだぜ (スコア:1)
ワイWeb屋、高みの見物。
ユーザーから「ログインできないんだけど」とクレーム。
ワイ「特定のページからログインすると失敗しとったわwすまんなw」
これで解決。最悪、個人情報お漏らししたって一人500円で許してもらえる。前例作ったソフトバンクとベネッセまじ神!サンキュー!
Googleとか、「例外は無視する」つー戦略らしいじゃん。100%完璧に想定どおりの演算結果じゃなくても、99.9999%正しければオッケー。
それがWeb。
これがpython遣いの発想。
金勘定の場合
銀行「1円足りんね。はい不渡り」
オヤジ「おっ、死のうかなっと」
銀行「あ、バグがあったわw1円返すねwすまんなw」
オヤジの遺族「なんやそうやったんやw許すわw」 ← こんな風になるわけないだろ
Re: (スコア:0)
しかしメリケンの銀行とか、「こないだお前の口座に振り込んだ金、
支払人がキャンセルしたから引いといたぜよろしく」みたいなことが普通にあるっていうじゃん。
日本の金勘定業界がアホなんだよ。
海外でも使われているんでしょうか? (スコア:1)
金融系は海外にも存在するはずで、そこではどのような言語が使われているのでしょうか? COBOLの衰退具合から察するに日本だけがCOBOLに固執している予感がしますが、その原因が何なのかわかりません。
COBOL叩いて憂さ晴らししたいweb屋は取り敢えずメインフレームの歴史を勉強しようか (スコア:1)
保守 (スコア:0)
演算仕様は準拠してれば正しい結果になるのだろうけど
おかしくなった時の振る舞いは処理系毎に異なるから
保守を考えると処理系を替えられないのだろう。
Re: (スコア:0)
移植・移行時にバグ入り込んだりするリスクを抱えてまで他の言語使う理由ないし、、、
QA説明するときは「ここは実績あるので〜」と言えるCOBOLの方が楽だし
もはや金融系しか使っていないから (スコア:0)
言語仕様に都合の悪い変更がないとかが理由なんじゃないの。処理系も十分枯れているだろうし。
リンク先ではpythonが上げられているみたいだけど。仮にpython2系に移行していたら。COBOL以上の技術的負債になってるはず。
はてなとTwitterは無視しろ (スコア:0)
はてなやTwitterってWeb系ばっかなんだよね。
Web系って流行り物を追うだけの単なるミーハーなんだよ。
Web系の中じゃ古い技術を馬鹿にすることで周りから注目を浴びてドヤ顔できるんだ。
そういう奴らが自己アピールのためのCOBOLを叩いてるだけなんだよ。
Re:はてなとTwitterは無視しろ (スコア:1)
>Web系って流行り物を追うだけの単なるミーハーなんだよ。
J2EEが出てから十年以上は優に経ってるけど,基本はそんなに変わらん。
流行り物を追うだけのミーハー?バカも休み休み言え。
Re: (スコア:0)
近頃の若いものは!と怒鳴るだけの老害
Re: (スコア:0)
1年で退場するものを誉めたてて、5年残るものを貶めるのはどうかと思うよな。
新規の金融系のシステムもCOBOLなの? (スコア:0)
新しくシステムを作るという場合でも、COBOLが選択されるんだろうか?
金融系で働いていてJAVAを使っているという人に会ったことがある。
そのときは興味なかったんで、どういう部分の仕事をしていたのか聞かなかったけど。
Re:新規の金融系のシステムもCOBOLなの? (スコア:2, 興味深い)
うちは新規案件COBOL指定でくるもの多いですよ。
多言語の倍は稼げるので転向者常時募集中。
今生きてる人がCOBOLの衰退を見ることはできないと思う。
ちなみに新興国の案件もCOBOL指定であったりする。(金融系ではないけど)
Re:新規の金融系のシステムもCOBOLなの? (スコア:1)
JR東日本のカードシステムはJava
TISとかいう会社が大体指揮ってる
Re: (スコア:0)
金融系?に入るかわからないけど、たしかNASDAQのシステムがJAVAだった気がする。
Re:精度というか (スコア:1)
GPUで金融計算しようぜ!
Re:精度というか (スコア:1)
だから浮動小数を使わない言語(処理系)を使うんじゃないですか. 勘定系, 経理系など以外にも, 有効桁管理が必要な実験系データ処理システムなどでも, 浮動小数を使わないシステムがあります.
ネタにしか思えないのは, 世界が小さい証拠です.
Re:10進演算と資産でしょう (スコア:1)
COBOLの仕事で地獄を見たなら存在そのものを否定したくもなるかと。
坊主憎けりゃ袈裟までと。
Re:いいこと考えた (スコア:1)
金融っていうのは結局のところ規則、規制の塊で系統だった理屈がなくロジックが組まれている。
規則に法則性なんてないよ、決まりだから、それだけだ。中を見ればif文がたくさん並んでいる。
そんなものは法律が変わったからと言ってリファクタリングできない。危険すぎるから。
よって、モダンな抽象化は必要とされていない。
だから、ずーっとCOBOLを使っている。たぶん法律の文章を計算機が解釈してロジックに落とせるようになるまで変わらない。
#その日がいつ来るか、オレがその時まで生きてるかは知らない。