アカウント名:
パスワード:
COBOL経験者の一定割合が全然違う言語でCOBOL的コードを吐き散らした結果(それをするのがCOBOLer)。VB厨と同じ。...じゃなかったっけ?
つい最近の話ですが、COBOL使いの書いたCのコードを目にしました。例のごとく、GOTO文使いまくりです。
というか、生まれて初めてですね。CのGOTO文を見たのは。
#工数掛けられないから、そのまま流用しますがね。
階段状の for の中に、ちらほらと goto が見えると、暗澹たる気分になりますね。
いわゆる VB 厨や VBA 上がりの人が書くコードは、どこを見てもつっこみどころ満載でほほえましいです。ただ、こういうコピペや反構造化コーディング技法?というのは検収の仕方によってはステップ数水増しという詐欺行為にもなりえる。人月費固定なら問題はないけど、これで稼いだところも多いでしょうね。
こちらとしてはストレスになるとは言え、リファクタリングやら部分移行など後始末してる間に既存システムの勉強にもなるし、そのまま新規開発にもつながるし、書いた人を引退させる強力な理由まで揃ってて至れり尽くせりだったりする。まあ、上司になってもらっても構いませんが、その場合コーディング以外の管理的な仕事でもオネガイしておけば、みんなハッピーになれる。
意図があることを無視して自分流にやれるのは仕事が標準化されるより前の古きよき時代と個人的な趣味だけ、という事で。
>というか、生まれて初めてですね。>CのGOTO文を見たのは。
別に珍しくもないです。たとえばBSDなら/usr/src/lib/libcや/usr/src/usr.binをgrepすれば山ほど出てきます。
複数の個所から最後に飛んで共通処理して抜けるような場合は、変にこぎれいに抜けようとするよりもgotoのほうがむしろわかりやすい場合もあります。
C では例外処理目的に goto や、longjmp を使う事がありますね。
C で goto 文を実践で使用しているのを、みたことがないプログラマは珍しいですか?
また、その coboler の書いた goto 文は、適切な目的に使用されているのだと信じていますか?
# なんでも反論すんなって
>C では例外処理目的に goto や、longjmp を使う事がありますね。
そうですね。でもあなたの場合それは教科書の知識だけでナマの実物を見たことはなかったと。
>C で goto 文を実践で使用しているのを、>みたことがないプログラマは珍しいですか?
別にそんなことは誰も言ってませんが?「Cのgotoが」えらく珍しいもののように言ったのはあなたですが。
>また、その coboler の書いた goto 文は、>適切な目的に使用されているのだと信じていますか?
そんなこと知りませんし、知りようもありませんがな。無意味な質問はやめてください。
># なんでも反論すんなって
gotoが珍しくなくてそんなにがっかりしましたか。
おそらく言語自体よりも古COBOLerの行う設計の酷さから来ているんじゃないかと.
基本的にロジックと処理の区別がついていないんですよね. ですから特に上位レベルの抽象性が高い段階での設計でも, いきなり実装レベルの個々のフィールドの取り扱いに拘ったりとか. 典型的な木を見て森を見ずの例です.
よく言われるビジネスロジックとの親和性なんてのも, 言っている当人がビジネスロジックを分かっているわけではなく, 単に既存の手書き伝票処理を業務分析・設計を省いてベタ移植しているだけ(しかも当人はそのことに気づいていない).
これが古いプログラムの保守とかになったら…永遠にスキルアップの可能性のないSE/プログラマの墓場と忌み嫌われてもしかたないと思います. そういう面から言えば, COBOL「も」使う仕事/職場ってのとCOBOL「しか」使わない仕事/職場ってのは似ているようで全く違う環境だと思います.
いにしえのCOBOLでその評判を落としているのは、compute ステートメントのせいじゃないかな?あと、identification division とか。
一生懸命に書いてると、バカにされてるみたいで思わず笑ってしまう。
ビジネスロジックの記述に適している?シンプルである?本気ですか?って感想しか出てこないな。
# 業務ではCOBOLSしか使ったことないけど。
>あと、identification division とか。
そんなとこコピペで終わりでしょ。ENVIRONMENT DIVISIONもそうだし、DATA DIVISIONのFILE SECTIONはCOPY句でライブラリ参照するし。自分で書くのはWORKING-STRAGE SECTIONの変数と、PROCEDURE DIVISIONのロジックだけじゃん。ロジックなんて言っても、大半は式と代入を順序に従って書いていくだけ。たまに単純な条件分岐はあるが複雑な制御なんてほとんど出る幕すらない。これがシンプルでなくてなんなの?
もしそういうやり方をしてなかったのなら、言語以前の問題があるんだよ。
ちがうな。
コピペで済むような部分が、全プログラムに必要なところが、バカにしているところなんだよ。
昔の容量の少なさから考えたら、コピペで終わらす所なんか捨てて当然。
COBOLの設計者は、そんな事もわからないのか?ってね。
程度の問題で、量的に冗長って事です。compute ステートメントについてもそれ。
coboler を除く tecky は、一般的には冗長が嫌い。結果、嫌われる…と、思う訳。
>コピペで済むような部分が、全プログラムに必要なところが、>バカにしているところなんだよ。
ほう。じゃあint main(int argc, char **argv)とかもバカにしてるんですね。
>昔の容量の少なさから考えたら、>コピペで終わらす所なんか捨てて当然。
容量の少なさはあなたより当時の人のほうがよっぽど痛感しているはずで。少ない容量を割いてでもそうすべきと考える理由があった、とは思わないのですかね。
>COBOLの設計者は、そんな事もわからないのか?ってね。
あなたがCOBOLの設計思想を何も知らないということはよくわかりました。
> int main(int argc, char **argv)> とかもバカにしてるんですね。
では、一生、バカにされ続けてください。
> 容量の少なさはあなたより当時の人のほうがよっぽど痛感しているはずで。> 少ない容量を割いてでもそうすべきと考える理由があった、とは思わないのですかね。
思ったとしたら、何がかわるんでしょうかね?
>>COBOLの設計者は、そんな事もわからないのか?ってね。> あなたがCOBOLの設計思想を何も知らないということはよくわかりました。
あなたに何がわかってるのかさっぱりわかりませんが?
>あなたに何がわかってるのかさっぱりわかりませんが?
でしょうね。
>いや、わかったことが一つ。>>オマエは真性のバカ。
それはよかったですね。
>もしかして、ネットの書き込みにも、>「すぐには真意を書かない。」って思想とかがあったりするんですか?>私には、そうした冗長な構成が理解ができないみたいです。
君みたいに自分で調べも考えもせずにまわりに当たるだけの人には、少しは考えさせようという配慮ですよ。
現にこのトピでも誰も君のいうことに賛同していないよね。
>では、一生、バカにされ続けてください。
は?バカにされてるのはあなたですよ。あなた自分でいいましたよね。COBOLはコピペが必要だからバカにしてるって。その同じ理由で、Cもあなたをバカにしてるわけです。
ところかまわず悪態つきまくりで自分の言ったことも忘れてしまいましたか?
>思ったとしたら、何がかわるんでしょうかね?
少なくとも、あなたみたいに思考停止して自分は正しいと思い込んでルサンチマンをぶつけてるうちは何も変わらないでしょう。
>あなたに何がわかってるのかさっぱりわかりませんが?
べつに私のことをわかっていただく必要はないですよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
ネタとして成り立たないんじゃ? (スコア:0)
だとしたら、雑談を始めることもできそうにないですねぇ。
Re:ネタとして成り立たないんじゃ? (スコア:0)
単に「COBOLerが嫌い」ってだけかも・・・。
# 自分自身、そうかもしれない・・・。
Re:ネタとして成り立たないんじゃ? (スコア:1)
COBOL経験者の一定割合が全然違う言語でCOBOL的コードを吐き散らした結果(それをするのがCOBOLer)。VB厨と同じ。
...じゃなかったっけ?
Re: (スコア:0)
つい最近の話ですが、COBOL使いの書いたCのコードを目にしました。
例のごとく、GOTO文使いまくりです。
というか、生まれて初めてですね。
CのGOTO文を見たのは。
#工数掛けられないから、そのまま流用しますがね。
Re:ネタとして成り立たないんじゃ? (スコア:1)
階段状の for の中に、ちらほらと goto が見えると、暗澹たる気分になりますね。
Re:ネタとして成り立たないんじゃ? (スコア:1)
いわゆる VB 厨や VBA 上がりの人が書くコードは、どこを見てもつっこみどころ満載でほほえましいです。ただ、こういうコピペや反構造化コーディング技法?というのは検収の仕方によってはステップ数水増しという詐欺行為にもなりえる。人月費固定なら問題はないけど、これで稼いだところも多いでしょうね。
こちらとしてはストレスになるとは言え、リファクタリングやら部分移行など後始末してる間に既存システムの勉強にもなるし、そのまま新規開発にもつながるし、書いた人を引退させる強力な理由まで揃ってて至れり尽くせりだったりする。まあ、上司になってもらっても構いませんが、その場合コーディング以外の管理的な仕事でもオネガイしておけば、みんなハッピーになれる。
意図があることを無視して自分流にやれるのは仕事が標準化されるより前の古きよき時代と個人的な趣味だけ、という事で。
Re: (スコア:0)
>というか、生まれて初めてですね。
>CのGOTO文を見たのは。
別に珍しくもないです。
たとえばBSDなら/usr/src/lib/libcや
/usr/src/usr.binをgrepすれば山ほど出てきます。
複数の個所から最後に飛んで共通処理して抜けるような場合は、
変にこぎれいに抜けようとするよりも
gotoのほうがむしろわかりやすい場合もあります。
Re: (スコア:0)
C では例外処理目的に goto や、longjmp を使う事がありますね。
C で goto 文を実践で使用しているのを、
みたことがないプログラマは珍しいですか?
また、その coboler の書いた goto 文は、
適切な目的に使用されているのだと信じていますか?
# なんでも反論すんなって
Re: (スコア:0)
>C では例外処理目的に goto や、longjmp を使う事がありますね。
そうですね。でもあなたの場合それは教科書の知識だけで
ナマの実物を見たことはなかったと。
>C で goto 文を実践で使用しているのを、
>みたことがないプログラマは珍しいですか?
別にそんなことは誰も言ってませんが?
「Cのgotoが」えらく珍しいもののように言ったのはあなたですが。
>また、その coboler の書いた goto 文は、
>適切な目的に使用されているのだと信じていますか?
そんなこと知りませんし、知りようもありませんがな。
無意味な質問はやめてください。
># なんでも反論すんなって
gotoが珍しくなくてそんなにがっかりしましたか。
Re:ネタとして成り立たないんじゃ? (スコア:1)
おそらく言語自体よりも古COBOLerの行う設計の酷さから来ているんじゃないかと.
基本的にロジックと処理の区別がついていないんですよね. ですから特に上位レベルの抽象性が高い段階での設計でも, いきなり実装レベルの個々のフィールドの取り扱いに拘ったりとか. 典型的な木を見て森を見ずの例です.
よく言われるビジネスロジックとの親和性なんてのも, 言っている当人がビジネスロジックを分かっているわけではなく, 単に既存の手書き伝票処理を業務分析・設計を省いてベタ移植しているだけ(しかも当人はそのことに気づいていない).
これが古いプログラムの保守とかになったら…永遠にスキルアップの可能性のないSE/プログラマの墓場と忌み嫌われてもしかたないと思います. そういう面から言えば, COBOL「も」使う仕事/職場ってのとCOBOL「しか」使わない仕事/職場ってのは似ているようで全く違う環境だと思います.
Re: (スコア:0)
(昔何かの本で読んだのに「銀行のシステムの開発をやっています」なヒトに対してクチでは「それは凄いですね」と言いながら、内心では『勝った、オレは人工衛星の制御だ』なんてのがあったな)
言語としてのCOBOL (スコア:0)
いにしえのCOBOLでその評判を落としているのは、
compute ステートメントのせいじゃないかな?
あと、identification division とか。
一生懸命に書いてると、バカにされてるみたいで思わず笑ってしまう。
ビジネスロジックの記述に適している?シンプルである?
本気ですか?って感想しか出てこないな。
# 業務ではCOBOLSしか使ったことないけど。
Re: (スコア:0)
>あと、identification division とか。
そんなとこコピペで終わりでしょ。
ENVIRONMENT DIVISIONもそうだし、DATA DIVISIONのFILE SECTIONはCOPY句でライブラリ参照するし。
自分で書くのはWORKING-STRAGE SECTIONの変数と、PROCEDURE DIVISIONのロジックだけじゃん。
ロジックなんて言っても、大半は式と代入を順序に従って書いていくだけ。
たまに単純な条件分岐はあるが複雑な制御なんてほとんど出る幕すらない。
これがシンプルでなくてなんなの?
もしそういうやり方をしてなかったのなら、言語以前の問題があるんだよ。
Re: (スコア:0)
ちがうな。
コピペで済むような部分が、全プログラムに必要なところが、
バカにしているところなんだよ。
昔の容量の少なさから考えたら、
コピペで終わらす所なんか捨てて当然。
COBOLの設計者は、そんな事もわからないのか?ってね。
Re: (スコア:0)
Re: (スコア:0)
程度の問題で、量的に冗長って事です。
compute ステートメントについてもそれ。
coboler を除く tecky は、一般的には冗長が嫌い。
結果、嫌われる…と、思う訳。
Re: (スコア:0)
>コピペで済むような部分が、全プログラムに必要なところが、
>バカにしているところなんだよ。
ほう。
じゃあ
int main(int argc, char **argv)
とかもバカにしてるんですね。
>昔の容量の少なさから考えたら、
>コピペで終わらす所なんか捨てて当然。
容量の少なさはあなたより当時の人のほうがよっぽど痛感しているはずで。
少ない容量を割いてでもそうすべきと考える理由があった、とは思わないのですかね。
>COBOLの設計者は、そんな事もわからないのか?ってね。
あなたがCOBOLの設計思想を何も知らないということはよくわかりました。
Re: (スコア:0)
> int main(int argc, char **argv)
> とかもバカにしてるんですね。
では、一生、バカにされ続けてください。
> 容量の少なさはあなたより当時の人のほうがよっぽど痛感しているはずで。
> 少ない容量を割いてでもそうすべきと考える理由があった、とは思わないのですかね。
思ったとしたら、何がかわるんでしょうかね?
>>COBOLの設計者は、そんな事もわからないのか?ってね。
> あなたがCOBOLの設計思想を何も知らないということはよくわかりました。
あなたに何がわかってるのかさっぱりわかりませんが?
Re: (スコア:0)
そう言わずに、そもそもCOBOLのプログラムとは、を50年前の人になったつもりで考えてみなよ。
Re: (スコア:0)
>そう言わずに、そもそもCOBOLのプログラムとは、を50年前の人になったつもりで考えてみなよ。
考えるとわかるんですか?
50年前はちょと想像できないんで、体験のある20年程前で考えます。
以下、思考。
ドキュメントは、
ちゃんとメンテしてないようなコード中に書いとかないで、
紙で残しとけって。
わかりません。
Re: (スコア:0)
正解は「COBOLのプログラムを完結したドキュメントとして非プログラマ(=管理職)が読むため」です。
ADD 1 TO Aみたいな鬱陶しい文法も同様。
もちろん今となっては間違った判断だと言えますが、当時のユーザーから強い要求があった模様。
Re: (スコア:0)
結局、それを知っても、
COBOLが嫌われている理由として挙げた点への、
反論にならないんですね。
たった1行で済む説明で引っ張っられあげく、
反論すらしてくれねーって、まるでCOBOLのコードの様だ。
またバカにされたよ。笑っちゃうね。
Re: (スコア:0)
>あなたに何がわかってるのかさっぱりわかりませんが?
でしょうね。
Re: (スコア:0)
オマエは真性のバカ。
Re: (スコア:0)
> 反論にならないんですね。
反論できなくなると論点をずらすのは感心しません。
(#1548852)
> 昔の容量の少なさから考えたら、
> コピペで終わらす所なんか捨てて当然。
> COBOLの設計者は、そんな事もわからないのか?ってね。
コピペで終わらす所を捨てて当然ではなく、COBOLの設計者はわかっていて敢えてやった、ということだけ認めて訂正していただければ結構です。
> またバカにされたよ。笑っちゃうね。
バカにはしていませんよ。
Re: (スコア:0)
>いや、わかったことが一つ。
>
>オマエは真性のバカ。
それはよかったですね。
Re: (スコア:0)
私はてっきり、冗長なのには欠点に劣らぬ利点があった、っていう論点なのかと思ってましたよ。
>> COBOLの設計者は、そんな事もわからないのか?ってね。
> コピペで終わらす所を捨てて当然ではなく、COBOLの設計者はわかっていて敢えてやった、
> ということだけ認めて訂正していただければ結構です。
それが本当なら、COBOLの設計者って奴は、愚かな奴だな。
わかっていて間抜けな事をやったのか。
なんて迷惑な奴なんだ。
でも、そんなの嘘でしょ?
プログラムがそのまま仕様書になる事を夢見て設計したんじゃないの?
でも、実際にはどっちつかずな結果になって、
Re: (スコア:0)
>もしかして、ネットの書き込みにも、
>「すぐには真意を書かない。」って思想とかがあったりするんですか?
>私には、そうした冗長な構成が理解ができないみたいです。
君みたいに自分で調べも考えもせずにまわりに当たるだけの人には、
少しは考えさせようという配慮ですよ。
現にこのトピでも誰も君のいうことに賛同していないよね。
Re: (スコア:0)
>では、一生、バカにされ続けてください。
は?
バカにされてるのはあなたですよ。
あなた自分でいいましたよね。COBOLはコピペが必要だからバカにしてるって。
その同じ理由で、Cもあなたをバカにしてるわけです。
ところかまわず悪態つきまくりで自分の言ったことも忘れてしまいましたか?
>思ったとしたら、何がかわるんでしょうかね?
少なくとも、あなたみたいに思考停止して
自分は正しいと思い込んでルサンチマンをぶつけてるうちは
何も変わらないでしょう。
>あなたに何がわかってるのかさっぱりわかりませんが?
べつに私のことをわかっていただく必要はないですよ。