【コボル】COBOL不要論【ただのDSLだよね?】
■ このスレッドは過去ログ倉庫に格納されています
スーパーでも24時間営業の店とかあってNCRのノンストップ・コンピュータ(HP社に吸収されたタンデム社のOEM品?)を使ってるよね >>204
いや、そういうんじゃなくて小数点7桁の数値を単純に数百万回加算しても誤差が出ないという話では?
初期のパソコンによく使われたZ-80とBasicの組合せでは0.001を単純に1000回足しても1に為らずに0.997とか0.999になってしまうものだった 確かi386とBasicの組合せ(OSはMS-DOS)でも出たような記憶があるんだよなあ
勿論1000回ぐらいじゃ出ないんだけど・・・ 今、Excel2000のマクロで0.0001をFor〜Next文で一万回足したら…orz >>210>>212
0.1 を 1 万回足してもなかなか 1,000 ちょうどにはなってくれない場合がある。
コンピュータが 2 進数で動いていることの証拠なのだが、金融の世界ではかなり困ったことになる。
2進演算では、小数点以下の丸め誤差が発生してしまうためだ。
金融業界は怖いぞ〜、この業界では超巨大な銭を扱っていて、
さまざまな金融商品を数十兆円単位で取引しているが・・・
0.1%の誤差があるだけであっという間に数百億円単位の損害を叩き出す大惨事になるというとんでもない世界
だから金融業界ではBCD演算が必須
COBOLは言語の仕様でBCD演算をサポートしているから銭の勘定では他の追随を許さない安定性がある。
他の言語でもできないというワケではないが、初めからついてる奴と、後付けの差は大きい。
要するに「そろばんや電卓での処理」をそのままプログラムに落とし込めるから金融系では確実に使える
蛇足だが、MSX(大昔の8ビットパソコン)にもBCD演算機能が存在する BCD演算って他の言語でもライブラリとかで使えなかったっけ? >>214
有るだろうけど(Excelだと通貨型)つまりは意識してデータの型を宣言しなければいけないという事 >>214
有っても確か演算処理が非常に遅かったはず・・・ >>216
COBOL使うようなマシンなら、CPUがBCD演算をサポートしてるんじゃない? 何か勘違いな部分もあるようなんで…
COBOLは言語の仕様で固定小数点演算(Binaryだと浮動小数点演算より高速だが有効桁が小さい)
扱える形式
Binary
BCD(pacdデシマル)
ゾーンデシマル(文字型数字)
何れでも小数点ありの変数として計算可 何か勘違いな部分もあるんで
COBOLは言語の仕様で固定小数点演算(Binaryだと浮動小数点演算より高速だが有効桁が小さい)
扱える形式
Binary
BCD(pacdデシマル)
ゾーンデシマル(文字型数字)
何れでも小数点ありの変数として計算可 ありゃ、二度書きしちまった^ ^;
小数点の位置を固定するので、ある意味integerとして計算できる COBOL以外でBCDを高速で扱えるのはPL/1くらいか。 先ほども云ったようにコンパイル時に計算対象の変数、数値を解析して小数点位置を決めうちし計算するのでBinaryであっても0.1を1万回加算しても誤差がでる事がない
PL/I、俺自身は使った事無いけど使われなくなってしまったのは惜しいと思う。IBM、パソコン用にだしてくれないかなあ(格安で…)今出たらCOBOLもJavaが殆ど消え去りそうな気もするけど システム構築、工程品質管理、その後の保守をする立場でいえば、COBOLは色々な面で有難いし、不要とは思わない
比較的まとまった規模の案件であれば、他言語併用でCOBOLはいまだに現役だし、これからも事務処理系や大量のデータを取り扱う分野で生き残ると思う
新規案件が減っている感じもしない
ちなみに、レベルの低いJava書きを排除するために、Java案件でも、人員資格にCOBOL必須と入れている
プログラマーにとっては、面白みはないが、毛嫌るす言語では無いと思うのが、個人的な意見
異論は認める
20年以上前にCOBOLを使っていて不満だった事
・ローカル変数が使えない(全てDATA DivisionのWORKING…で定義)
・構造体の拡張が出来ない・テーブルの動的拡張が出来ない
これくらいかな?
後はPL/Iの総称名が使えればなあとオンライン処理の時に思ったくらいかな 最後の部分は機種依存による制約にしか過ぎないのかな?
SDLC、HDLC等プロトコル手順毎にメーカー提供のサブルーチン名が異なっておりリンク時に静的結合しかできなかったんでため息をこぼすしかなかった COBOL の区粗なところ
大量のデータをライブに扱えない
1 日 n00GiB から nTiB 増えるデータは扱えない
>>224
金融業界や保険業界だと、Web製作すらCOBOL採用する暴挙をやらかすからなあ。
>>227
あまり問題無い気もするが、>>227の想定ってどんな状況なんだろうか?
まあ、どうしても無理なら、必要な所はC++とか、Javaで書けばいいだけじゃねぇ?
>>228
GUIがJavaで、裏はCOBOLってやつかな?
それならお互いの特性を使い合えるから、程度にもよるが、有りだと思う
ALL COBOLなら、ある意味、COBOLに掛ける情熱に尊敬する
>>230
C++やJavaは言語としてはいいけれどそれらを走らせるプラットホームが脆弱過ぎるのが困る・・。 >>225
全く同じ不満を持っていたw
俺だけじゃなかったんだ >>227 論理的な区切りが出来ないイメージデータ?
機種依存の部分でレコード長が32KB制限あるのはきつかったなあ(WORKING内の各テーブル等…)
リアルタイム集計やCAFISみたいにアプリレベルに近い部分で非同期処理があると、もうね… >>227
COBOLだとどういう問題があるのですか? >GUIがJava
そこももうどうかと思うなぁいまどき… 誰か不定長レコード(可変長じゃなくて)のファイル扱ったことある人いる?
俺あれだけは何に使うのか解らんかった(^ ^; >>223
PL/IはIBMのメインフレームで使用されている言語だね。
COBOLとFORTRANとALGOLから当時としてはいいとこどりをして作られたが
マシンリソースを大量に必要となるため、IBMのメインフレーム以外では普及はしなかった
日本では三菱東京UFJ銀行、みずほ信託銀行など多数が使っている。
>>231
キャッシュカードやクレジットカードのポイント設定とか与信管理などをするWebサイトだったら
モロに勘定系システムだからCOBOLで動いていてもおかしくない
どうやら安田火災海上保険(現:損保ジャパン)は、自動車保険のインターネット見積りサイトは保険料の見積もりをする部分がCOBOLで動いているらしい。
↓がCOBOLで動くWebサイト(実は、コレはCOBOLで動く!!)
http://www.sompo-japan.co.jp/kinsurance/automobile/onestep/index.html >>236
今のCOBOLは可変長出力ができるし、他の言語と
特別差はない。ポストスクリプトファイル出力なんか
だってするし。
>>238
そりゃ誰でも使ってるよ、LMなんかは不定長ファイルじゃないか。 Webというかhtmlファイルの大枠はCOBOLで書いて、
複雑な処理は別マシンでCOBOLがバッチ出力したファイルを
Prologで読み取らせて処理させ、JSファイルに出力させて置く、
というのは見たことがある。
問い合わせにリアルタイムでというのは無理そうだった。 >>242
バックエンドのバッチ部分はCOBOLで・・というのはわかるけど、htmlの出力部分をわざわざCOBOLで組む理由がわからん。
なんかコボルのシステムってエリアの領域が足りなくなって
計算おかしくなったりするのおおいイメージだったんだけど!
たとえば簡単にいうと、エリアに3文字しか入らないのに、
1200+300を計算すると、500になるとか。そういうバグ大杉。
まあ僕じゃなくてコボル40年のジジイが作ったやつだけどね!! >>244
そりゃ桁あふれすれゃ不正な数値になるのは当たり前だろ・・。int型の変数に32768以上の数値をぶち込むのと同じ事 桁あふれによるバクを発生させるなんてビギナーレベルの初歩的なミスだろ いや桁あふれたらエラー吐けよコボルはそんなこともできないのか? COBOLの場合、BCDだから演算とformattingが一体化してるんだっけ?
だとすると、
"1"500 (3桁) <- 1200(4桁) + 300(3桁)
という演算をやっているので、コンパイル時にわーにんぐが出てもよさそう
なものだいが。
>>241
機種によって違うのか
俺の使っていたマシンは固定長だったな
ソースライブラリは可変長(ヘッダー部にLength付きで扱い方はデルファイと同じ?)だったし
プリントファイルが不定長なんだろうけど入力側として使ったことがない
銀行の勘定系だと全銀オンラインがプリントイメージなので有るんだろうけど
>>249
ADD、SUBSTRACT、MULTI…、DIVIDには確かあったはず(ON SIZE ERRORの構文の後に命令)最もよほどの事が無い限り省略していたなあ
COMPUTE命令、MOVE(項目転送)命令にはないねえ
>>250
BCD、文字型数字で計算できるといってもコンパイル時にバイナリーに変換して計算、そしてOUT側の形式再変換したりが普通じゃなかったかな >>243
順序が逆なんじゃないかな。元々COBOLで組まれていて、
対応できないというか、メインフレームでは危険な部分が
生じて例えばUNIXのシステムを追加した。
不整合な部分をJS出力で誤魔化した。
>>253
IF文の多いCOBOLと
IF文が消え去るPrologは
相性がいいよね。 >>254
COBOLからPrologプログラマへの転向は簡単かも知れないけど・・
Prologって仕事あるの?
何も勉強しないよりかはマシだけど
仕事無くて結局コボラー続けちゃうんじゃないの? >>257
メインフレームでは無理だろう。
UNIX/Linux/OSX上では実は結構ある。 私の知る限りの話だが、年配の管理者に、この案件は
関数型言語でやりたいと申し出てもほとんど拒否されるが
Prologでというとすんなり通る。この言語不思議な地位にある。
>>258
>UNIX/Linux/OSX上では実は結構ある。
Windowsで走らない時点で終わっていると思う。
>>254-260
貴様等、まとめてPrologスレへ逝け!w >>260
古くからメインフレームのバックで動いてる環境という意味。
今やAndroidやMacの時代で今更Windowsなんて使わないだろう。 >>262
>今やAndroidやMacの時代で今更Windowsなんて使わないだろう。
いいえ、世の中ほとんどがWindowsです。
日本のシェア1月
OSシェア
Windows 7:37.37%
Windows XP:27.51%
Windows Vista:18.71%
MacOS:6.64%
Android:4.00%
iPhone:2.88%
Windows 2000:0.27%
Linux:0.05%
Windows ME:0.09%
>>263
だから、現時点では Windows 7:37.37 OSX が多分12-3%
つまり 3 : 1
目を覆うばかりのWindowsの凋落ということだろう。 最近じゃメインフレームもWindowsのエミュ上で走らせるのが常識なのに… >>265
twitter利用者でのシェアは数%あるそうだから、そう単純ではない。 はい、ソース。
Windows上で稼動するメインフレーム
ttp://wsmgr.jp.brothersoft.com/screenshot-50450.html えーっ。VMwareか何かでOS/390なんかも動くの? >>271
だからそれメインフレームじゃなくて端末だってば、まだ解らないの?w >>273
あ、>>266にエミュって書いてあるねw ごめん。
だけど、3270エミュレータならN88-BASICの時代からあるよ。 >>274
いや3270のエミュなら昔からあるだろう、そりゃ。
ただ件の彼は残念ながらずっと「『メインフレーム』をWindows上で稼働させるのが普通」
って言っちゃってるんだよ…
「端末はWWWで言うブラウザみたいなものだぞ、お前は2chの鯖がWindowsで動いてると思ってるのか?」
と指摘したら「鯖もWindowsに決まってる」と言いきっちゃったマジメに痛い子 >>271は荒らし
別スレで同じようなやり取り幾度も繰り返してる。
コボラーにコンピュータの常識が通用しない事がよくわかりましたw >>277
そう思っていいから、Windowsと暮らしてなさい。 >>278
今の世の中、ITの世界はむしろWindowsじゃないと成り立たないんじゃないの?
>>280
スマホがパソコン出荷を上回り、そのOSの50%以上がAndroid。
さらに、Macのシェアが世界的には15%に日本でも10%を超える。
Linuxは欧州の都市の公的コンピュータを席巻して、UNIXの
サーバーとしてのシェアも一定水準を確保。以上のことから
言えることは、UNIX系OSの大反撃が起きているということ。 コボラーに未来は無いと言われ続けて20年
どっこい生きてる基幹システムの中
保守要員としてならあと20年は戦える >>283
基幹システムが壊れるってどういう意味だ?
まさか基幹システムがPCやサーバーみたいな固有のH/Wだと思っているのか・・・ 壊れないは変か?
cobolで処理できない状況にならなきゃいいけどね COBOLが優秀というよりCOBOL以外の言語が走るプラットフォーム、
特にWindowsが脆弱過ぎて基幹システムの運用に耐えられないだけなんだけどね。 >>283
そうだね。基幹システムで不具合が出たら、あっという間に億単位の損害wwww 基幹システムがCOBOL以外のモノに移る可能性は常にある。
50代の技術者が定年までしがみつくには最適かもしれないが
2,30代の技術者が食ってくにはキツイ。 ホストでLinux, java,oracleが動く時代だぜ。
某銀行も保守はともかく新規でCOBOLを採用することはないと断言してるし。 Oracleって、メインフレーム上で動くの?
間接的な連携はできるらしいけど。 分散処理が出来るようになったからね
データベースだと、どこで管理するとかになってくるんじゃねえの
クラウドっていうのもその流れの一つでしょ ホスト上でDB管理することで高い信頼性を維持してるのに
わざわざ信頼性の低いサーバーに分散とか意味わからないとか思ったけど
別システムのデータを直接引っ張ってこれるって意味なら、アリだな。 でも今時のPGみたいにパッチワークのようにコピペでしてコードを書く人間にはCOBOLは辛いかもね >>290
現在はホストと言えばWindowsを指すのだが?
東京証券取引所の基幹システムとして稼動するWindows
ttp://itpro.nikkeibp.co.jp/article/NEWS/20090609/331590/?SS=imgview&FD=-654674548
HPCでもダントツのパフォーマンスをたたき出すWindows
ttp://cloud.watch.impress.co.jp/docs/interview/20101224_416025.html
Windows上で稼動するメインフレーム
ttp://wsmgr.jp.brothersoft.com/screenshot-50450.html
Linuxより57倍速いWindows!!
http://www.elecom.co.jp/business/pickup/nas/201102/index.html
一方Linuxは…
Linux Daily Topics:2011年9月2日 Kernel.orgがトロイの木馬の侵入被害に|gihyo.jp … 技術評論社
http://gihyo.jp/admin/clip/01/linux_dt/201109/02
Linux カーネルの基盤サイトがクラッキングの被害に - japan.internet.com
http://japan.internet.com/webtech/20110902/2.html
Linux Daily Topics:2011年9月15日 狙われるLinux… 今度はLinux Foundationが標的に|gihyo.jp … 技術評論社
http://gihyo.jp/admin/clip/01/linux_dt/201109/15
【経済】 東証でシステム障害 241銘柄の売買一時停止
http://uni.2ch.net/test/read.cgi/newsplus/1328146640/l50 ホストの意味も理解できないようでは・・・ 贔屓の引き倒しになりそう >>294はLinuxスレで暴れているアンチだよ。通称ダダダ。
たしか勤め先のサーバーがWindowsから全てLinuxに置き換えられて
Linuxについていけない>>294はリストラされたとか。
故にLinuxが憎くて憎くてしょうがないらしい・・・ コボラーってもしかして昔ながらのホストマシン(笑)が未だに稼動していると信じているんだw
Windows全盛の今の時代でメインフレームすらWindowsで稼動している現代でまさにオカルト的な発想だわw >>299
確かにw
コボラーは技術が20年以上遅れているからどんどんリストラされている。 ダ「メインフレームは現在Windows上で動いている、証拠の画像だ」
住民「いやそれ、ただの端末だから…」
ダ「端末がWindowsならメインフレームもWindowsだろう」
住民「えーとな、メインフレームはWebサーバ、端末はブラウザみたいなもんなんだよ、例えば2chはWindowsから見れるだろう?」
ダ「2chの鯖もWindowsだろう?」
住民「いやBSDだが」
ダ「違う、Windows鯖だから見れるんだ」
住民(駄目だコイツ) アンドロイド端末からPCを操作出来る→PCのOSはアンドロイドだ間違いない(キリッ)
こうですか(笑) COBOL資産の他言語移行が進まないのは、
銀行や証券・生保など金融機関の勘定系システムで多く利用されているため
スケジュールと人員面で移行が困難なせいもあると思います。
特に金利計算なんかは100%ブラックボックスと化していて下手にいじると収集がつかなくなったりして。
「今でもCOBOLで問題なく動いているものを、
危険なリスクを背負ってまで他言語へ移行する理由もない」
・・・と経営層は判断するでしょうし。
バッチ処理に強いとか言われるけど、日本語環境ではいまだに全角/半角文字の混在処理が苦手だったり、
GOTO文使いまくって簡単にスパゲッティコードになったりするのはいい加減勘弁して欲しいです。
でもまだ当分現役なんだろうな・・・
例えば住宅ローンの場合は最長35年あるわけで、1970〜1980年代のシステムがそっくりそのまま残っていて
そのままCOBOLで運用されてても不思議ではないです。ただ、今後積極的に使われることは少なくなってくるでしょう。 過去10年分のデータ食わして同じ結果になりました、みたいなテストができりゃ良いんだけどねえ
無理ゲーすぐる
未だにCOBOLが使われているのは他の言語やプラットフォームについていけない老害ばかりだからだろ。
VBとSQLで何百倍も低コストで何千倍も早いシステムが構築できる・・・。
COBOLが得意というバッチ処理でもCOBOLで何時間もかかる処理がSQLだと数秒で処理でる。
あれ辺だなあ、漏れがCOBOLやってた頃ふつうにRDB使ってたけどなあ COBOLをやると落ちCOBOL
・・30年前のダジャレより F通でもRDBUというのがありましたで(って今もあるんだろけど w ■ このスレッドは過去ログ倉庫に格納されています