【コボル】COBOL不要論【ただのDSLだよね?】
■ このスレッドは過去ログ倉庫に格納されています
請求金額の端数処理とかあきらかにバクってても、直すと怒られたりする。
いままでと金額が変わると取引先側で稟議が必要とやらで大変なことになるとか。
言語リプレースしてもその仕様は引きずって、意図的にバクを再現する必要があったり。 >>119
ドキュメント、何それ?状態だったから、影響範囲が不明なんだよ。
結局、怪しいデータだけ手管理になつた。
一つだけ良かったのは、扱いにくいデータを怪しいデータ扱いして開発の手間を減らせた事。 データの手管理って、
データベースを開いて直接データを操作してるってこと?
それともマスターメンテ画面を作ってそこから操作してるのかな? コボルで書かれたシステムのデータの一部を統計解析するので
このソース読んでデータの抽出方法を考えてきてくれ
と言われて, トータル5k行くらいのソース渡されたんだが,
いざコードを読もうとすると, 脳みそが拒否反応を起こして
睡魔が襲ってきます
データ定義だけ読めば何とかなるもんですか???
>>125
たかが5000ステップくらいで拒否反応起こすような整理能力の無い脳みそでは
言語関係なくそもそもプログラマーとして向いていないと思う…。
まぁコーダーなら話は別だが…。 5000行なんてたいした事ないけど、
構造化されてないスパゲッティなプログラムだったら死ねる。 >>126
フツー, 他の言語だと1kに満たない行数で書いてあるんだが
5kはJava脳とかだときついかもな。
cでもしmain関数が5000行あったら気が狂うが、
さすがに構造化くらいされてんだろ? >>129
FORTRANの5kは全然区にならないんだが
つか, FORTRAN屋だよ, 本職は
>>130
# echo 'FORTRANの5kは全然区にならないんだが' | sed '/区/苦/'
つか, java 何かで統計解析やったら日が暮れる
他の言語は、データ定義だけ読めば何とかなるもんなのか… >>132
ほしいのは, どのファイルのこの部分をどの部分を取り出せば良いかの情報
一つのファイルに収まっていなければ, 他のファイルも同様に再帰的に読んでいけば良い
と思ったんだけど, そうはいかない???
ステップ数の長いプログラムは、面倒であっても紙に印刷してマーカー引いてる。
画面とにらめっこしても埒が明かないよ。 Fortran屋かー。なんかCOBOLやJavaとは対局な業種ってイメージだw
ところで充分目的が定まってるのなら専門の担当者にヒアリングした方が早いと思うぞ。
絡まってるところが皆無だったとしても、見当つけるのが一番早いのはそのコードに関わってた奴なんだし。
Javaでいくら綺麗に組まれてても、細切れファイル追いかけまくる作業は眠いしな > 専門の担当者にヒアリング
なにぶん, 現在それがいない(システムをメンテするときはコボル屋さん
の会社に出してるらしい)ので, わけのわからない言語(lisp とか ml
とか haskellとか)を趣味でつつき倒してるおれにお鉢が回ってきた
DATA DIVISION, どのファイルに書き出してるかと
調べ始めたんだけど, いつも使ってる言語と違って構文違いすぎ
# おれにはついていけませんwwwWW
つか,
``lock もかけずに同じファイルに書き込んでるみたいなんだけど, これだいじょうぶなの???''
``おれのほしいデータは最終的にどのファイルに集約されるの???''
って, な感じで謎は深まるばかりです
なんか並んでる言語名見る限り、考え得る限りもっとも場違いな人選されたんじゃないですかね。
排他制御はシステムが面倒見てるはずだから気にしなくていいと思うけど、必要なデータがどこかに集約されてるとは期待しない方がいいかも。
初期設計時に想定してない集計だからこそ業務として発生し、依頼されてるのでしょうし。
不得手なら面倒でもフローチャートを書き出したほうが早いかもしれません。 数学屋に事務処理言語のまま渡すってどうなんだ
建築デザイナーに図面とつるはし渡すかのようなシュールさを感じるw >>138
某リフォーム番組で無理やり資材加工させられる匠みたいたなw コボルでフェラチオソフト作りたいよ。
わかりません COBOLかー
もう15年やってないなあ
そんな漏れは今モータ制御で交流理論と機械力学の勉強中
言語はC++が一番好きだけどたまにCOBOLが懐かしく感じる すべて小文字にするだけで一気にお洒落なデータ指向言語に いまのCOBOLは小文字でもOKじゃなかったか。
なんか前に古い汎用機のリプレイスでORACLE移行とかやったけど
変数名を全部ORACLE−DBに合わせてたな。(キャメルケースって奴?) >>1
>>7
COBOLでCOBOLコンパイラ書いてるという噂は私も聞いた。
世界初のLISPインタープリタは、FORTRANで書かれたそう。
フリーのcobolの開発がもうちょっとやる気あれば
PCでcobol使って遊べるのに FreeCOBOL.iNFO〜フリーのWindows用COBOLコンパイラまとめ〜
http://labs.netbata.com/cobol/
汎用機とシステムのセット販売で大企業の強大なバックアップを受けられることがウリのCOBOLで
フリーの実装って需要あんのかね。
まあ学習用か。 プログラム言語云々なんて所詮数ある手段の一つに過ぎないからな…。 >>152
COBOLerを増やしたい、せめて維持したいがための撒き餌かも。 COBOL汎用機から、クラサバにリプレースしたものの、中身はエミュレーターでCOBOLが動いているのを知った時の絶望感は異常。 ん?汎用機COBOLをクラサバCOBOLへ移植したんじゃなくて、
サバ(UNIX or Windows)上で汎用機のエミュレータが動いているの? そして、GUIも
ドロップダウンメニューで選んで送信ボタン
ってのが裏で
画面のこの位置にカーソル持ってきて数字入れてえんたー
って実行されるように出来ているんだろうなあ。 >>158
soretyottotanosisou COBOL to Javaの自動変換ツールは山のようにあるけど
余り利用されてないのかな?
すくなくとも言語にまつわる問題は一気に解決しそうなんだけど。 >>161
未だに古いシステムをリプレースできてないところは、そもそもシンプルな仕様変更さえ超怖い状況下にあるものばかり
コンバートしてテストして稼働出来るような部品であれば、都合さえつけばとっくにコンバートもシステム移行も終わってると思いますぜ とある業務系では
if 1989
...10ベージ位の処理
if 1990
以下ry)と延々と、しかもプログラム中に散りばめてあった。 あんま想像したくないけど、まさか西暦別で処理書いてんの?w
流石に遺産コードにしても担当者生きてたら怒鳴り付けたいレベルですなあ >>163
ソースコード変換以前の問題の事例ですねわかります
こんなの、javaに変換できたところで……。 年度・法律が変わると、帳票の指定様式が整合性無視で変わるという、涙物。
しかも、年度によっては複数年度過去まで遡って累計が必須。
唯一の救いは、過去に出した計算結果は絶対に変えてはいけないので、補正分データを追加すれば良かった事ぐらいかなw 一般的コボラ程度の涙ぐましさですね。
もちろん担当者様を揶揄しているわけではありますん
最後に関わったN系、その手の笑い話状態のプログラム減ってた気がする
遺産の重さに負けず、頑張って書き換えてる人はいるみたいだな >>167
COBOLに限らず、現実的な業務APの開発現場であればありがちな話の気がします
仮にJavaやC#のようなOOPだと、帳票という概念を分析した上で、
・帳票 -- 抽象クラス
・1989年度版帳票 -- 具象クラス
・1990年度版帳票 -- 具象クラス
のようなクラス継承にするのかな? 何で一つのプログラムにいろんな処理を無理やり突っ込む作り方をするのかな。
処理を細かく分けれて組み合わせて作れば、メンテの負担も減るのに…。
すごく腹が立つ。
COBOL85 のコンパイラ書いてみようと思ってるんだが、
COBOL85 って LALR(1) じゃ解析できないよね? >>171
このスレでLLだのLRだのが分かる香具師が何人いるやら… >>171
コンパイラに使う言語に関心がある。
COBOL用じゃないけど、最近見たのは、Haskellで書いたやつ。 Cobolはすべてが言語仕様に入ってくるから大変だと思うけど。
同じ語で別の意味持ってたり、省略可能な項目も結構あるから字句解析も構文解析も面倒な予感 スレチなのだがCOBOLで20年ホスト系で働いてた隣のおっちゃんが、パッケージ化されてきたからクビになった。っていってたんだけど。どういう意味? コボルでラムダ関数みたいなことはどうやればいいの? 思い返すとCOBOLについては一切身銭を切ったことがないけど、
困ることが何もなかったのは色々と考えさせられますな。
最近の流行の言語は機能は豊富だけど、学習コストが高すぎるのよね。
IDEや入力補助がないとコードを書きあげられないのはどうなのかしら。 いや、最近の言語でもIDEなしでコード書けるし、
むしろコボルってIDEとか入力補助ないような非効率な開発を
まだ続けてるんだという驚き。 スレタイの「ただのDSL」呼ばわりが改めて沁みる問答だ で最近のPGがよく口にする「関数が無いから組めません(キリッ」となるわけですねw
まぁ最近の開発はGUI部品を貼り付けてクラスや関数をスクラッチして作成する簡単なお仕事だからな。
ちゃんとコードが書けるPGなんてPG全体で1割いるかどうかだからな・・・。 cobolもideあるけど只厨にはハードルが高すぎるな >>186
趣味で(興味本位で)COBOLを触ろうなんて奴は、めったにいないから無問題
というか、COBOLでオプソなんて、ORCAくらいしか思いつかないけど、
他にもあるのかな? >>187
まるで、コボラーなら「関数が無いから組めません(キリッ」ってならないと
言ってるみたいだ。 昔いたコボルの現場で日付の論理チェックのサブルーチンで「日付チェックのクラスが無いから出来ないです!」といって
バンザイしてたC++プログラマなら見たことあるよ。 >>191
そういう人間をCOBOLの現場に連れてくるなよ w 「負数の数を含む剰余」ってどう定義されていますか?
処理系間で互換性はありますか?
かつては金融機関の勘定系(基幹系)システムは全部COBOLで動いていた。
設計思想が古かったり、2000年問題の主役の一人だったりで>>1みたいに嫌っているプログラマー多し。
だが、COBOLが愛される最大の理由は信頼性だろ
バグ1個で億単位の損害が出る分野には枯れた技術や枯れた言語が一番
こういうのだとバグが少ない(はず)
埃かぶったWindows3.0とかが取引先で現役とかザラですし
クレジットカードのシステム全部COBOLで動いてるらしいぞ
COBOLがダメな理由がない限り使い続けるほうがいいに決まってる。
最新の〜〜だったらこんなこともあんなこともできてー
ってたいていは必要の無い機能だし。
COBOLerとかいって笑う人多いけど、おまえら3000万口座で24時間365日絶対に止まってはいけないし
計算を間違えてはいけないシステム設計したことあんのかよ。
東京海上日動の新システムはCOBOLを採用
http://itpro.nikkeibp.co.jp/article/NEWS/20080906/314277/
COBOLこそスピード経営に必要 BY ジャパネットたかた
http://itpro.nikkeibp.co.jp/article/COLUMN/20100319/345984/ >>194
COBOLが嫌いな理由、コーディングしても楽しくない、ライブラリが充実していないので全てコードを自分で書かないといけない。
あとステップ数が異常に多くてコードが難解。
> COBOLerとかいって笑う人多いけど、おまえら3000万口座で24時間365日絶対に止まってはいけないし
> 計算を間違えてはいけないシステム設計したことあんのかよ。
なんで24時間365日絶対止まってはいけないの?OSのアップデートなどでWindowsを定期的に再起動するでしょ?
コボラーの常識ではアップデートなしの危険な状態で運用するのが当たり前なのw
普通は止まってはいけないシステムを設計するより止まっても支障ないような設計にするのが当たり前なのに・・・。 しかし言語が作られて何十年も経ってるのに、
未だにライブラリが揃ってないというのはどういうことか。 >>194
人間が作る以上、バグを無くす事なんて不可能だし
たとえプログラムにバグがなくてもOS側の問題でトラブルが発生するんだから365日無停止のシステムなんて構築不可能。 確かにCOBOLは計算一つ行うために延々と定義みたいな処理を何十行も繰り返さないといけないというヤバイ言語だな
だがコイツなら0.1を正確に表すことができるから
新人でも浮動小数点使って誤差出す初歩的なポカをやらなくて済むじゃん。
銭の計算は10億で1円の誤差でもアウトだから。
>>197
バグ1個で万とか億とかの銭が大量に動いたりしたんじゃ、ヤバすぎるだろwww お前らそろそろVISUAL COBOLについて語ろうぜ > 銭の計算は10億で1円の誤差でもアウトだから。
なんでなんだろうね。商取引も相対誤差ε以下は許容するとかなって
いるといいのに。 >>200
そもそもバグなんてプログラマの責任じゃなく設計者の責任だろ >>202
いや、今でも誤差は許容してるんじゃない?
10進で何桁未満は切り捨てor四捨五入みたいなように決めておいて。 本当にあるこんな話
A「私、金融系のシステムリプレースやってるんです」
B「へえ〜、COBOLからJavaに置き換えるのですか?」
A「いいえ逆です。JavaからCOBOLに置き換えるんです」
B「えっ????」
A「Javaから、COBOLです」
B「(゚Д゚)ハァ?」 この業界に長くいると時々出くわすね
技術力はあるんだけど
「お金の計算をするシステム組んだことないんじゃないの?」
って人 >>206
そりゃそうだ。君が世間を知らなすぎるだけ。 >>206
最近はCPUって何?OSって何?とか言い出す人間がプログラムを組む時代だからな。 スーパーでも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デシマル)
ゾーンデシマル(文字型数字)
何れでも小数点ありの変数として計算可 ■ このスレッドは過去ログ倉庫に格納されています