COBOLの難易度・壁の高さについて質問です。


現在、知り合いが勤めている会社(大手企業の地方工場?)にて
COBOLを扱える社内SEを募集しており、私が誘われています。

私はPHPの経験5年程度で、COBOLを扱ったことは全くありません。
ちょこっと検索して「COBOL入門」みたいなサイトを見ても、「なんか面倒くさそう」という印象でした。
こんな状態でゼロから勉強してもやれるものでしょうか? それとも難しいでしょうか?
あるいはどうせ勉強するなら、別の将来性ある言語をやったほうがいいでしょうか?

知り合いはあまり技術に詳しくない人なのでSE業務の詳細についてはよく分からないそうですが、
どうやら既にあるCOBOLシステムの運用と、それ以外のヘルプデスク的な仕事がメインのようです。

質問点を整理しますと、
1:PHPのみの経験者がCOBOLをこれから勉強してシステム維持・運用など可能なのか?
2:COBOLをゼロから習得するのと、他の言語(たとえばJAVAやC#、C++など)の習得、どちらが良いか。

回答の条件
  • 1人2回まで
  • 登録:2009/07/04 18:06:38
  • 終了:2009/07/11 18:10:03

回答(6件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/07/04 18:28:36

ポイント19pt

1:PHPのみの経験者がCOBOLをこれから勉強してシステム維持・運用など可能なのか?

アーキテクチャが同じであれば可能。

PHPの経験が主にWebアプリなのであれば、同じようなWebアプリのために書かれたCOBOLシステムに移行することは、それほど大変ではありません。


2:COBOLをゼロから習得するのと、他の言語(たとえばJAVAやC#、C++など)の習得、どちらが良いか。

PHPとCOBOLという言語の違いというより、アーキテクチャの違いの方が習得の障壁になります。


PHPが得意とするWebアプリと、COBOLが得意とする基幹業務系アプリとでは、ハードウェア、基本ソフト、ミドルウェア、ビジネスモデル、ユーザーインターフェースがまったく異なります。


これはJavaやC#についても言えることです。

PHPでクラスが使える方であれば、比較的すんなりとJavaやC#のコードは書けるはずなんですが、アーキテクチャが違うと、まず使用するフレームワークの思想が全く違いますので、いきなり壁が高くなります。


つまり、同じアーキテクチャなのであれば、COBOL、Java、C#のどれを選んでも、それほど大変なことはないと思います。

もしアーキテクチャが異なるのであれば、PHPに文法が比較的近いJavaから入るのが無難でしょう。もちろん、アーキテクチャをマスターすることが大前提ですが。

id:smile4ever

ありがとうございます。

大手メーカーですので、COBOLシステムはおそらく基幹業務系だと思われます。

そして私は基幹系の経験はなく、Webシステムの経験のみです。

クラス(オブジェクト指向)は一通り理解しているつもりです。

JAVAの本などをざっと見た限りでは、PHPでのOOP開発とさほど違いが無いように感じました。

PHP5よりもJAVAのほうがちょっと制約や決まりごとが多いだけかな・・・という印象です。

COBOLとなると、もうまったく意味が分からない、文法も難しそう・・・という感じでした。

将来的にはWindowsアプリも作りたいので、VC#.netかVC++.netが良いのかな、とも思っております。(Web系はもうPHP一本でやってしまう)

2009/07/04 18:55:51
id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/07/04 19:48:51

ポイント19pt

php も java も文法的には C の流れを汲むものですから似てますが、

COBOL の文法はまったく異なるため、まずはそれに面食らいます。

それから次にドキュメントの量に面食らう事でしょう。


他の業務を止めての準備期間一ヶ月だとしても、Linux+WebDBの経験からでは、

「COBOLを扱える社内SE」どころか「COBOLをかじりかけの人」として入るのが、

精一杯、無理ありすぎかと思いますので、私なら断ります。


しかしながら、もしも、もしもですが、そこまで要求されているのではなく、

これからの成長も見込んでくれているならば、枯れた技術(成熟した技術)を、

習得する良いチャンスと思います。


オープン系やWeb系ではおざなりになってしまいがちなドキュメント管理等の基礎、

からみっちりと身に付ければ、環境や言語が変わってもさしたる問題はないです。

言語の将来性などは瑣末な事です。時代時代にあったものをチョイスするだけです。

(この30数年、何種類覚えて、そして忘れたことか・・・)

id:MrOkada No.3

RareMetal回答回数8ベストアンサー獲得回数02009/07/04 20:15:15

ポイント18pt

PHPとかJAVAに比べてcobolは設計思想から大きく異なる前時代的言語です.

ただ、文法を学べば習得は容易です。

むしろ問題は、デバグの困難さですね。PHPなどのインタプリタ言語と違ってcobolはコンパイルして動かすため、デバグが困難です。

あなたにとって、この生産性の低さが大きな問題と感じます。

それとcobolエンジニアは団塊世代に腐るほどいて、退職してしるため低賃金で働きます。

ここで彼らと競合するのは得策ではないと思います。

また、死んだ言語を習得できても、将来性はありません。

Javaを学んだ方が、近いし将来性もあるので、お勧めします。

id:chuken_kenkou No.4

chuken_kenkou回答回数722ベストアンサー獲得回数542009/07/05 20:21:17

ポイント18pt

1:PHPのみの経験者がCOBOLをこれから勉強してシステム維持・運用など可能なのか?

COBOLの言語体系は、英文のようであり独特です。

しかし、代入、判定、繰り返しなどの処理は、他のプログラミング言語に慣れているなら、修得はそう難しくはありません。

また、COBOLの国際標準仕様の改定、それを反映したコンパイラが主要メーカーから次々と出てきており、アドレス操作、オブジェクト指向、オープンシステムへの対応も行われています。

階層型、ネットワーク型DBだけでなく、SQLでリレーショナルDBを使えるのはもちろんのこと、メインフレームからUNIXサーバ上のDBを操作したり、その逆の操作も可能となっているものも少なくありません。

ただ、それぞれの処理系により性能を出すための記述の仕方があり、文法を知っているだけではだめです。

また、SEという立場であれば、JCL(Windowsのバッチのようなもの)やOSの機能についても、いろいろ知る必要があります。


2:COBOLをゼロから習得するのと、他の言語(たとえばJAVAやC#、C++など)の習得、どちらが良いか。

COBOLによる新規案件が少なくなっているのは事実ですが、現在、世界で稼動中のシステムの過半数はCOBOLで構築されているという調査結果があります。また、COBOLの資産をすべて他の言語に書き換えるというのは容易ではなく、COBOLをWindowsやUNIX上でそのまま動かす形での移行を行っている例も少なくありません。

「今もCOBOLが使われているのは、金融機関くらい」と思っている人もいるようですが、ライフラインを支える多くのシステムで、現在もCOBOLが使われています。

CやJAVAを知っている人は多数おり、これからもどんどん増えていくでしょう。一方、COBOLの技術者は少なくなっており、そういった意味でも知っておいた方がいいかも知れません。

id:ttakao No.5

RON回答回数276ベストアンサー獲得回数312009/07/07 11:08:54

ポイント18pt

どちらもたくさんコードを書いた経験があります(笑)

1:PHPのみの経験者がCOBOLをこれから勉強してシステム維持・運用など可能なのか?

COBOLは簡単です。基本の本をぱらーっとめくって、他人様のコードを見ていれば、わかります。もともと「英語を書くようにプログラムができれば」の思想から始まってますし、そもそもメインフレーム系の言語は多くの人を集めて、分割して作ることを想定していますから、むつかしくないのです。

またFORTRANやCOBOLはコンパイラーとしては、非常にランタイムライブラリーが小さいのです。つまりコーディングされているステートメントは素直にアセンブラに展開されています。

CPUの動きに割合と忠実にできています。プログラムの上から下に向かってプロセッサーが処理していく、という原始的な流れです。

ただ、メインフレームの運用は文化的にオープン系とまったく違います。すべてをログしていく、というのが基本です。パソコンや端末から、オンラインでコマンド出して仕事終わりとはなりません。多くの場合、バッチという形で証跡を残すことを求められます。これは言語の問題じゃないですが、一番戸惑うところだと思います。

2:COBOLをゼロから習得するのと、他の言語(たとえばJAVAやC#、C++など)の習得、どちらが良いか。

技術的興味からすれば、Javaでしょうね。もっとも新しいプログラミング言語の思想の元に作られていますし、莫大なライブラリーがあり、なんでもできてしまいますから。また、オブジェクト指向に始まり高度な概念が多くふくまれており勉強になります。高い生産性を誇ることができます。

しかし、COBOLがダメかというと疑問が残ります。Javaは基本的に文字列のふりをしているStringはクラスです。単純に業務で文字列と数字の処理をする時、メンドクサイ面もあります。大量データ処理とだけ考えると、COBOLはみんなが知らないまま批判するほど悪い言語とも思えません。要するにメインフレーム批判と同じで、知らないから一方的な批判をしているとしか思えないです。

言語の学習は、数種類覚えなければ、すぐれたエンジニアにはならないでしょう。ひとつの言語を覚えたからなんとかなる、なんていう幻想はやめましょう。

私ですらWEBアプリならPHPで書きますが、内部からTCP/IPでいろいろやらねばならんのなら、そこはJavaで書きます。データを集積してレポート作るならVBがやっぱり手っ取り早い。適材適所で言語は使うものでしょう?そのノリでCOBOLくらい覚えちゃってください。いろいろなことができるというのは価値があがりますよ。

また、どなたかが退職した団塊の世代が低賃金で働くから、低賃金のままだといっていますが、それは今の労働市場と違っています。当初はそういう予想がされていました。しかし、現実の団塊の世代の行動は、いまさら低賃金で若造に使われるのはイヤだといって、ほとんどが職場に戻ってくれなかったのです。それゆえ、COBOL専門の会社が立ち上がったりしています。残り物に福あり、のパターンになりつつあります。

id:sphire No.6

sphire回答回数115ベストアンサー獲得回数122009/07/07 21:16:05

ポイント18pt

COBOLという言語の習得は簡単です。

障壁となるのは、その現場で使われているライブラリ群(私が昔働いていたF社系COBOLな現場では「サブルーチン」と呼んでいたなぁ…)への適応でしょう。

あとは、通信プロトコルとか(HTTPとか、なんて楽)。

基幹系なら、定年までCOBOLやれますよ。

私には無理でしたけどね、、(遠い目

  • id:kn1967
    準備期間はどのくらいとれそう?
  • id:taknt
    新しい言語を身につけることはいいことだと思うよ。
    将来性は あやしいけど、考え方とかは 役に立つと思う。
    新しい言語を身につけることにより、PHPが より理解できる可能性もあるしね。

    コボルでは こうするけど PHPでは どうする?などと考えたりすれば。
  • id:smile4ever
    smile4ever 2009/07/04 18:58:11
    >kn1967様
    準備期間は長くても一ヶ月、短ければ1~2週間という感じです。


    >taknt様
    なるほど、そうですね。
    でもどうせ新しい言語を習得するなら、将来性と応用性がある言語のほうが良いかなぁとも考えまして。
    COBOLの未来は・・・(^^;
  • id:kmond2
    > 回答者:kn1967 2009-07-04 19:48:51
    > (この30数年、何種類覚えて、そして忘れたことか・・・)

    > 回答者:kn1967 2009-07-04 00:53:29
    > エンサイクロペディアアスキーの1冊目。
    > 子供ながらに将来手にすることを夢見て何度も読み返してました。
    http://q.hatena.ne.jp/1246630768

    エンサイクロペディア・アスキーの第1巻が出版されたのは1978年。
    この方の誕生年は、たしか1967年。
    ということは、パソコンを私有していない就学前~小学校低学年の頃からコンピュータ言語に慣れ親しんでいたということですね。お見それいたしました。
  • id:doumoto
    BASICが触れればCOBOLなんて親戚みたいなもんだけど。(´ー`)y-~~。
    構造化とかクラスとか、そういうの無縁でgoto文バンバンで組めちゃうというか、そうやって書かれた過去のドキュメントを読むのが大変かなあと。COBOLとか触ってると、C++とかは宇宙人が喋ってるような感じだけど、その逆もまた然りなのかも。でも、COBOL自体はそれほど難しい言語じゃないと思いますよ。

この質問への反応(ブックマークコメント)

トラックバック

  • 中年独身男性の生態 「ハルヒのエンドレスエイト」や「ひぐらし」などの時間ループモノの起源とされる作品は何なのでしょうか?またこのような物語の筋を専門用語(?)でなんという
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません