アカウント名:
パスワード:
COBOLは触ったことがない身だけど、COBOLって習得してしまうとほかの言語を扱うことができなくなる呪いでもあるの?// ファーストインプレッションの言語によってプログラムの思考法がその言語ベースになっちゃいがちってのはあるだろうけど、矯正できないわけでもなく
んなこたーない
無いけど、最近の言語に比べるととっつきにくいという点では学習コストも安くないから、それ専門でやろうとするとどうしても専属になりがちになる。(それに今どきCOBOLやりだしたら、みんな寄ってたかってお願いされてなおさらほかの言語なんて触る暇なくなる)
という意味では呪いかもしれん
アンソニー・ホプキンスのレクター博士があまりにも怪演過ぎて、しばらくサイコパスな殺人鬼役しかオファーが来なくなり、「もうレクターはこりごりだよ」って言ってたの思い出した。
行長さや変数名長の制限がある古い COBOL の相手をさせられ、それが良いものだと教えられた人は可哀想だと思いますね。
古い C しか書けない、読めない、認めない職場ですが、・変数名、関数名が 6 文字以内(変な略語ばかり、かつコメントがないのでわけがわからない)・変数定義を関数先頭で全部やる(百以上あるので、それだけで画面が埋まる)・関数分割しないので数千行の関数がゴロゴロみたいのを新人に押しつけて何人辞めていったことか……そして生き残った人間もそれを量産し、C はおろか C# や Java でも同じようなコードを量産して一向に成長しない。
言語も進化している、もっと良い書き方がある、現代的なテクニックがある、ということを教え、成長させる余地を作れるなら、COBOL でも BASIC でも育てるには良いとお思います。
# 新人に「リーダブルコード」を渡したら上司に持って行かれた AC
>変数定義を関数先頭で全部やる(百以上あるので、それだけで画面が埋まる)
それって、先頭で宣言するしないという問題じゃない気が・・・。
機能機能(=関数)毎にExcelで書かれた変数表とかが対応づけられていて、その順番に宣言していないと怒られるとかそういう現場を想像した。あくまで想像だよ。
そして変数名は「モジュールコード2文字+4桁連番」
俺の最初の職場で上司は、「1つの関数にすべての処理を書くのが理想。関数を分割するのは邪道」と宣ってた。逃げて正解だったとは思っているが、複雑な気分になることがあるのも確か。
二十年以上前に経験したオッサンですが矯正出来なくはないけど、あれを一番にやったらヘンな癖が付きそうだとは思う。
・オブジェクト指向以前に構造化すらろくに出来てないスパゲッティが多い・古いコードにはバージョン管理なんてされてない部分がある・メーカー、バージョンによって方言が多い・上流の仕事を大手元請けや一次請けが占めてるのでいつまでも設計関連の仕事に携われない
COBOL出来る人が足りないと言われているけど、ああいう汎用機メインの仕事は大手元請けから始まるかなりの多重下請け仕事が多くて末端の実際の作業員に割り当てられる金額は少ないからたいした稼ぎにもならない。
小規模でも新しい潮流の仕事をやったほうがはるかにいいと思う。
>・オブジェクト指向以前に構造化すらろくに出来てないスパゲッティが多い>・古いコードにはバージョン管理なんてされてない部分がある
ちょっとした(繰り返す必要のない)流し作業のために俺が先週書いたコードそのものじゃないか
#やっぱりやり直す必要があって今日読み直して「作者何考えてんだ」ってブチ切れそうになったとも言う
おっさんな、情報処理試験向けにBASICより先にCOBOLを覚えたけど、今はJavaScript書いとるで。
そりゃ、情報処理試験向けならちょこっと教本眺めるだけなのでクセ付きようも無いでしょう。
この通りかなー。職場的にCOBOLがある現場にいるけどかなりわかる。特にCOBOL経験すると希少種だから優先してアサインされちゃうだろうしね。負のスパイラル。
リーマンショック直後の転職フェアでコボラ―時代の先輩社員に合ったことあるな。やっぱり就職に苦労しているようだった。
COBOLの問題は、言語や技術にあるんじゃなくて、その仕事環境なんだよね。まさに「袋小路」なんだよ。先がないのは目に見えているんだけど、専門的な修行(習得よりも修行と言ったほうがいい)をしないと使いこなせない。新規案件は無いんだけど、新たな仕事はある。人材不足なんだけど、どこも積極的に供給しようとしない。
あらゆる点が矛盾だらけだけど、一定の金額のマーケットはある。
一定の必要性が有るならCOBOLに対して不利な発言はヘイトスピーチとして検挙するとかしかないかも。
クラシックな言語だから、今のモダンな言語のような至れり尽くせりの便利な機能は欠けているだけどプログラミング言語だからループ、条件判断、分岐は出来る(当たり前)別にCOBOL覚えたからといって、自分で他の言語を勉強してはいけないということはない今は様々な言語のフリーの処理系をより取り見取りで入手できるから困難なハードルは存在しない(昔はコンパイラ買えなかった、パソコンで動くコンパイラが無かった)問題は最初に覚えた言語しか出来ないプログラマになる人が多いことや、一般的なプログラミング言語ならなんでもこなせる基本的な素養を時間をかけて教育出来る余裕が会社に無いこと#JavaやJavascriptやPythonやRubyが使えるのに、COBOLが分からないなんて馬鹿じゃない?
> #JavaやJavascriptやPythonやRubyが使えるのに、COBOLが分からないなんて馬鹿じゃない?
COBOL の言語仕様が分かっても、 COBOL で書かれたあのコードが一体何をしているのか分からないということは普通にありそう。
# COBOL に限らずスパゲッティコードってそういうものだよね。
言語仕様なんて、適当でOKどこで使われるか? DBの構造がどうなってるかの方が問題。それが分かれば、COBOL, Fortran程度の言語仕様なんてどうでも良い。PC環境だと、UI仕様の方が問題だったりする。
Forthとか、Prolog, Lisp ...まだあったかな。そんなの見たら、誤差。
DBの構造は大事だ。でもCOBOLだと下手するとNDBとかだぜ? その意味でも応用は効きづらいよ。
今のCOBOLはオブジェクト指向もサポートされてるみたいだけど、過去のソースはアレレレレみたいな感じかもね。
>過去のソースはアレレレレみたいな感じかもね。
コピペ百列拳の伝承者がゴロゴロ。
典型的なCOBOLに無知な上司の言だね。
COBOLは昔にやった事あるけど、かなり考え方が違う。共通の考えはあるけど、CとCOBOLで言えば、ユダヤ教とイスラム教のようなもんかな。
ユダヤ教とイスラム教ってのはCとJavaの関係だろ。
COBOLはバラモン教みたいな別系統の古代宗教だと思う。
アルゴリズムがそもそも違った様な…
私が習った時はIF文使用禁止って言われたし、ループの条件もC言語系と逆?trueの間回ってるんじゃなくて、trueになったら抜ける?
よくわからんけど、アセンブラでループを書くときはJNZって命令があってif(i != 0) goto loop; のような書き方になるので、そのせいかな
repeat untilとかwhileって英語の意味を考えたら(英語圏の人間には)自明なんだけどね。
COBOLのやたら冗長な文法って英語として自然に読み書きようにと言う思想が根底にあったような。構造化という考え方すらなかった時代に設計された言語だからな
長年改修が続いたシステムが多いのでドキュメントの漏れやドキュメントと実装の差異に悩まされるのでは?そのへんをユーザとのやり取りや処理の流れ、コードの行間などを通じて把握するスキルが他の言語よりも重要なのでしょう。要するに初心者向けとは言い難い。でもものにすればどの言語でも役に立つスキルだと思う。
コードクローン大量生産が正義だから他言語でトラブル撒き散らすんだよ。
> コードクローン大量生産が正義だから他言語でトラブル撒き散らすんだよ。
元祖プロトタイプベースオブジェクト指向プログラミングだよ!# インスタンスはファイルだよ!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
よくわからん (スコア:1)
COBOLは触ったことがない身だけど、COBOLって習得してしまうとほかの言語を扱うことができなくなる呪いでもあるの?
// ファーストインプレッションの言語によってプログラムの思考法がその言語ベースになっちゃいがちってのはあるだろうけど、矯正できないわけでもなく
Re:よくわからん (スコア:4, おもしろおかしい)
んなこたーない
無いけど、最近の言語に比べるととっつきにくいという点では学習コストも
安くないから、それ専門でやろうとするとどうしても専属になりがちになる。
(それに今どきCOBOLやりだしたら、みんな寄ってたかってお願いされて
なおさらほかの言語なんて触る暇なくなる)
という意味では呪いかもしれん
Re: (スコア:0)
アンソニー・ホプキンスのレクター博士があまりにも怪演過ぎて、
しばらくサイコパスな殺人鬼役しかオファーが来なくなり、
「もうレクターはこりごりだよ」って言ってたの思い出した。
Re:よくわからん (スコア:3, 興味深い)
行長さや変数名長の制限がある古い COBOL の相手をさせられ、それが良いものだと教えられた人は可哀想だと思いますね。
古い C しか書けない、読めない、認めない職場ですが、
・変数名、関数名が 6 文字以内(変な略語ばかり、かつコメントがないのでわけがわからない)
・変数定義を関数先頭で全部やる(百以上あるので、それだけで画面が埋まる)
・関数分割しないので数千行の関数がゴロゴロ
みたいのを新人に押しつけて何人辞めていったことか……
そして生き残った人間もそれを量産し、C はおろか C# や Java でも同じようなコードを量産して一向に成長しない。
言語も進化している、もっと良い書き方がある、現代的なテクニックがある、ということを教え、成長させる余地を作れるなら、COBOL でも BASIC でも育てるには良いとお思います。
# 新人に「リーダブルコード」を渡したら上司に持って行かれた AC
Re: (スコア:0)
>変数定義を関数先頭で全部やる(百以上あるので、それだけで画面が埋まる)
それって、先頭で宣言するしないという問題じゃない気が・・・。
Re:よくわからん (スコア:2)
機能機能(=関数)毎にExcelで書かれた変数表とかが対応づけられていて、その順番に宣言していないと怒られるとかそういう現場を想像した。
あくまで想像だよ。
Re:よくわからん (スコア:1)
そして変数名は「モジュールコード2文字+4桁連番」
Re: (スコア:0)
俺の最初の職場で上司は、「1つの関数にすべての処理を書くのが理想。関数を分割するのは邪道」と宣ってた。
逃げて正解だったとは思っているが、複雑な気分になることがあるのも確か。
Re:よくわからん (スコア:3, 参考になる)
二十年以上前に経験したオッサンですが
矯正出来なくはないけど、あれを一番にやったら
ヘンな癖が付きそうだとは思う。
・オブジェクト指向以前に構造化すらろくに出来てないスパゲッティが多い
・古いコードにはバージョン管理なんてされてない部分がある
・メーカー、バージョンによって方言が多い
・上流の仕事を大手元請けや一次請けが占めてるのでいつまでも設計関連の仕事に携われない
COBOL出来る人が足りないと言われているけど、
ああいう汎用機メインの仕事は大手元請けから始まるかなりの多重下請け仕事が多くて
末端の実際の作業員に割り当てられる金額は少ないからたいした稼ぎにもならない。
小規模でも新しい潮流の仕事をやったほうがはるかにいいと思う。
Re: (スコア:0)
>・オブジェクト指向以前に構造化すらろくに出来てないスパゲッティが多い
>・古いコードにはバージョン管理なんてされてない部分がある
ちょっとした(繰り返す必要のない)流し作業のために俺が先週書いたコードそのものじゃないか
#やっぱりやり直す必要があって今日読み直して「作者何考えてんだ」ってブチ切れそうになったとも言う
Re: (スコア:0)
おっさんな、情報処理試験向けにBASICより先にCOBOLを覚えたけど、今はJavaScript書いとるで。
Re:よくわからん (スコア:2)
そりゃ、情報処理試験向けならちょこっと教本眺めるだけなのでクセ付きようも無いでしょう。
Re: (スコア:0)
この通りかなー。職場的にCOBOLがある現場にいるけどかなりわかる。
特にCOBOL経験すると希少種だから優先してアサインされちゃうだろうしね。負のスパイラル。
Re: (スコア:0)
リーマンショック直後の転職フェアでコボラ―時代の先輩社員に合ったことあるな。
やっぱり就職に苦労しているようだった。
Re:よくわからん (スコア:1)
COBOLの問題は、言語や技術にあるんじゃなくて、その仕事環境なんだよね。
まさに「袋小路」なんだよ。
先がないのは目に見えているんだけど、専門的な修行(習得よりも修行と言ったほうがいい)
をしないと使いこなせない。
新規案件は無いんだけど、新たな仕事はある。
人材不足なんだけど、どこも積極的に供給しようとしない。
あらゆる点が矛盾だらけだけど、一定の金額のマーケットはある。
Re: (スコア:0)
一定の必要性が有るならCOBOLに対して不利な発言はヘイトスピーチとして
検挙するとかしかないかも。
Re: (スコア:0)
クラシックな言語だから、今のモダンな言語のような至れり尽くせりの便利な機能は欠けている
だけどプログラミング言語だからループ、条件判断、分岐は出来る(当たり前)
別にCOBOL覚えたからといって、自分で他の言語を勉強してはいけないということはない
今は様々な言語のフリーの処理系をより取り見取りで入手できるから困難なハードルは存在しない(昔はコンパイラ買えなかった、パソコンで動くコンパイラが無かった)
問題は最初に覚えた言語しか出来ないプログラマになる人が多いことや、一般的なプログラミング言語ならなんでもこなせる基本的な素養を時間をかけて教育出来る余裕が会社に無いこと
#JavaやJavascriptやPythonやRubyが使えるのに、COBOLが分からないなんて馬鹿じゃない?
Re:よくわからん (スコア:1)
> #JavaやJavascriptやPythonやRubyが使えるのに、COBOLが分からないなんて馬鹿じゃない?
COBOL の言語仕様が分かっても、 COBOL で書かれたあのコードが一体何をしているのか分からないということは普通にありそう。
# COBOL に限らずスパゲッティコードってそういうものだよね。
Re:よくわからん (スコア:1)
言語仕様なんて、適当でOK
どこで使われるか? DBの構造がどうなってるかの方が問題。
それが分かれば、COBOL, Fortran程度の言語仕様なんてどうでも良い。
PC環境だと、UI仕様の方が問題だったりする。
Forthとか、Prolog, Lisp ...まだあったかな。
そんなの見たら、誤差。
Re: (スコア:0)
DBの構造は大事だ。でもCOBOLだと下手するとNDBとかだぜ? その意味でも応用は効きづらいよ。
Re: (スコア:0)
今のCOBOLはオブジェクト指向もサポートされてるみたいだけど、
過去のソースはアレレレレみたいな感じかもね。
Re: (スコア:0)
>過去のソースはアレレレレみたいな感じかもね。
コピペ百列拳の伝承者がゴロゴロ。
Re: (スコア:0)
典型的なCOBOLに無知な上司の言だね。
Re: (スコア:0)
COBOLは昔にやった事あるけど、かなり考え方が違う。
共通の考えはあるけど、CとCOBOLで言えば、ユダヤ教とイスラム教のようなもんかな。
Re: (スコア:0)
ユダヤ教とイスラム教ってのは
CとJavaの関係だろ。
COBOLはバラモン教みたいな別系統の古代宗教だと思う。
Re: (スコア:0)
アルゴリズムがそもそも違った様な…
私が習った時はIF文使用禁止って言われたし、ループの条件もC言語系と逆?trueの間回ってるんじゃなくて、trueになったら抜ける?
Re: (スコア:0)
よくわからんけど、アセンブラでループを書くときはJNZって命令があってif(i != 0) goto loop; のような書き方になるので、そのせいかな
Re: (スコア:0)
repeat untilとかwhileって英語の意味を考えたら(英語圏の人間には)自明なんだけどね。
COBOLのやたら冗長な文法って英語として自然に読み書きようにと言う思想が根底にあったような。構造化という考え方すらなかった時代に設計された言語だからな
Re: (スコア:0)
長年改修が続いたシステムが多いのでドキュメントの漏れやドキュメントと実装の差異に悩まされるのでは?
そのへんをユーザとのやり取りや処理の流れ、コードの行間などを通じて把握するスキルが他の言語よりも重要なのでしょう。
要するに初心者向けとは言い難い。でもものにすればどの言語でも役に立つスキルだと思う。
Re: (スコア:0)
コードクローン大量生産が正義だから他言語でトラブル撒き散らすんだよ。
Re: (スコア:0)
> コードクローン大量生産が正義だから他言語でトラブル撒き散らすんだよ。
元祖プロトタイプベースオブジェクト指向プログラミングだよ!
# インスタンスはファイルだよ!