パスワードを忘れた? アカウント作成
18306 story

COBOLコードの近代化はどのように進めるべきか 165

ストーリー by morihide
2000億行って多いの? 意外に少ないの? 部門より

Open Tech Pressに「2000億行もの負の遺産――COBOLコードの近代化はどのように進めるべきか」という記事が掲載されています。コボラー人口の減少に伴い保守が難しくなっているCOBOLアプリケーションをどうやって引退させるか、という記事です。要約すると、COBOLアプリケーションにも“グローバル変数やGOTOステートメントが無秩序に使われている”ダメダメなものから保守のことまで配慮して作られているものまであり、またアプリケーションごとに重要性も異なるので、既存のアプリケーションポートフォリオの状況をしっかりと把握し、個々のアプリケーションごとにどのような方法で近代化するか(あるいはしないか)をプランニングすることが重要である、とのことです。

終わってるITスキルトップ10」で堂々の第一位を獲得したCOBOLですが、皆さんの職場ではCOBOLアプリケーションの(近代化|延命)計画をどうしてますか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by gonta (11642) on 2008年01月18日 17時29分 (#1282883) 日記
    別コメントにもありますが、やたらコボラーに例えられます。

    以前聞いたことがあるのは、
    ・コボラーには2種類いた。「設計・実装バリバリ」と「言われたコードしかかけない」。
    ・前者はコボルが時代遅れになっても、別環境・別言語でやっていけた。
    ・後者はまさしく「負の遺産」。後者が(無理に)やった設計・実装も負の遺産
    だとか。

    自分自身のコードを見てて、後で再度見て理解できるものもあれば、目を覆いたくなるようなものもあります。後者の人が書いて、かつそれがメインストリームから外れたコボルだったとき・・・捨てるしかないんじゃないかな?「下手なリフォームは、新築より金がかかる。」

    自分も前者になれるように、日々精進です。
    --
    -- gonta --
    "May Macintosh be with you"
    • Re:Java屋なんですが・・・ (スコア:5, おもしろおかしい)

      by Anonymous Coward on 2008年01月18日 18時46分 (#1282946)
      オフトピですが…

      ソレ系業界の人間じゃないので,ふと興味を持ちました.COBOLプログラマを「コボラー」と呼ぶのであれば,Javaプログラマを「ジャバー」とか,Cプログラマを「シャー」とか呼ぶんでしょうか?
      親コメント
    • by Anonymous Coward on 2008年01月18日 18時07分 (#1282919)
      全くその通りなんですよね。

      ごく限られた本当に凄い人も、大部分のそうじゃない人も、箸にも棒にも引っかからない
      ダメな人も清濁併せ呑んでこそのマス言語、大衆言語であり、昔はそれがCOBOLだったし、
      今ならJavaになるんですかね?

      そういう言語があるおかげで、一部の貴族言語が「美しい設計」だの「〇〇使ってる技術
      者って優秀なヤツばっかりだよね」みたいな寝言を言ってられる訳で(笑)。

      みんなもっと、COBOLやJavaに感謝しようよ(笑)。

      親コメント
  • by Tatenon (20311) on 2008年01月18日 17時04分 (#1282855) 日記
    それが何で書かれていても、ちゃんとした仕様書や設計書が残っていれば別の言語で一から書き直すのはそう難しいことじゃありません。

    問題はそれらが無い場合。

    リプレースしようとするとまずCOBOLが読めないとお話にならない。
    なのでコボラーが生き残ってるうちにドキュメントをきっちり作らせておくべきでしょうね。

    それか、要求仕様から作り直すか。
    考えようによってはこちらの方が傷が浅くて済むかもしれません。

    # 「COBOL→Xなトランスレーター」ってのも考えたんだけど、
    # そんなものが吐いたコードを保守させられる状況を想像したら
    # この世の地獄以外の何物でもなかったので。
    • by hashitom (34540) on 2008年01月18日 17時47分 (#1282895)
       『ちゃんとした』という部分を満たす条件として、現行のプログラムと整合の取れたということと、特定のプログラミング言語を想定していない記述であることという二点を満たしていないとものの役には立たないと思います。  ドキュメントの再作成については、COBOLを読める人がすべて設計書を起こせるわけでなく、さらに詳細設計書から基本設計書、仕様書へと遡って、役に立つドキュメントを作れるとなるとさらに対象者は狭まってしまいそうです。もっともそれが出来る人はすでにその能力を生かしてCOBOLから去っているに違いないと思えてなりません。  やはり、仕様書から作り直す方が現実的に思えます。
      親コメント
    • by Ryo.F (3896) on 2008年01月18日 18時45分 (#1282945) 日記
      ドキュメント作らせるくらいだったら、別言語が解る人と組ませて別言語で書き直させた方がいいんじゃないかな。XPのペアプログラミングみたいにして。
      コボラーが書く仕様書は、COBOL色の強い(COBOLのコードに直接変換可能な)ものになる気がします。
      親コメント
    • by Anonymous Coward on 2008年01月18日 23時00分 (#1283062)
      30 年前でもバイナリしかないプログラムが月次処理をしていたのだよ。
      親コメント
  • 現役 (スコア:4, 興味深い)

    by Anonymous Coward on 2008年01月18日 17時57分 (#1282908)
    2007年4月入社でCOBOLでのプログラム書いてたりします。こういうタイプもまだまだ多いんじゃないでしょうか。
    なんだかんだ言われますが、よほどのことがない限りCとかJAVAより後世に残る気もします。負債なのは確かですが。
    未来はないけど食ってはいける?

    ちなみに同期の友人はPL/Iを…
    • by ncube2 (2864) on 2008年01月18日 18時20分 (#1282928)
      COBOLは未だ本屋さんでも参考書とか売ってるしフリーな処理系もあるようだけど、PL/Iって今でも何かあるんかいな?
      親コメント
    • Re:現役 (スコア:1, 興味深い)

      by Anonymous Coward on 2008年01月18日 18時31分 (#1282935)
      私も全く同じ境遇です。
      地方自治体ではまだまだ現役ですね。今後も当分は現役でしょう。

      うちの会社は実質三セクなので、
      お役所にシステムを作り直す余裕が生まれるまでは、
      COBOL仕事が途切れることはなさそうです。
      #そんな余裕が生まれる見通しは今のところゼロ。
      親コメント
  • by Anonymous Coward on 2008年01月18日 17時15分 (#1282865)
    いや、ホントにホントに。

    ここを無理やりCOBOLシステムとの併用→切り替えみたいな事するから、
    大惨事になる訳で。メインフレームからWS COBOLへの移行なんてムリ筋
    としか言えないと思うんですが。

    そりゃ、ケースバイケース、保守部品かき集めて、ぶっ倒れるまで使い
    続けた方がいい場合もあるんでしょうけどね。「COBOLコードの近代化」
    なんてのは正気の沙汰ではないですよ(ところでオブジェクトコボルなん
    て誰が使ってるんですか?)

    それにしても、そう遠くない将来、「えっ!?JAVAだって、そんな古臭
    い言語もう誰も使ってないですよ…」「いやだなぁ、Javaラーは考えが
    古臭くて…」「時代遅れのJavaコードをどう近代化するか?」なんて言
    われるようになるんですかね?恐ろしい…
    • Re:一から作り直せば? (スコア:2, すばらしい洞察)

      by Anonymous Coward on 2008年01月18日 20時28分 (#1282997)
      今はJ2SE1.4とJavaSE5.0との違いが大きくて移行できているかどうかでわりと判断できますな。
      親コメント
    • by Pen2 (18210) on 2008年01月18日 23時05分 (#1283064)
      書き直すべき実質は少ない!
      2000億行の 百分の1 で済むのでは、ちゃんと設計すると。

      ゴミの書き換えなんて、ばかばかしい。
      様々な原因で 「水増し」されたソースが主成分なので、
      水増しの要因
      1.死んだ、生きているか死んでいるか不明な ソース
      2.コピペで N倍になったソース
      3.新設計で M分の1になる ソース
      親コメント
    • かなり同意。
      COBOL時代に作られたシステムなんて相当長い間動いてるわけで、その間要件変更とか機能拡張なんが多数行われてつぎはぎだらけの構造になってる確率が非常に高い。
      そういうシステムで言語変更レベルの大手術をするなら、ついでに基本要件から見直してシステムを再構築したほうが短期間でいいものができるんでない?
      --
      しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
      親コメント
    • by NOBAX (21937) on 2008年01月18日 19時26分 (#1282979)
      それが出来るくらいなら何の苦労もないのよ。
      使わないマシンを保守しておいたり、
      出向先で定年迎えたおじいちゃんを呼び戻すなんて
      やりたくはない。
      しかし、人の登らぬ山にこそ宝があるのも事実なのです。
      親コメント
  • そんな場合に (スコア:3, 参考になる)

    by popn.ja (34724) on 2008年01月18日 22時16分 (#1283040) 日記
  • 簡単だけど難しい方法 (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2008年01月18日 17時16分 (#1282868)
    コボラーが他の言語を勉強する

    難点:彼らはCOBOL以外でもCOBOL風コードを書く

    # マジでお願いします
    • Re:簡単だけど難しい方法 (スコア:3, おもしろおかしい)

      by Anonymous Coward on 2008年01月18日 18時55分 (#1282954)
      >難点:彼らはCOBOL以外でもCOBOL風コードを書く

      あるRDBMSを使った環境に移植された元COBOLプログラム。テーブル定義を見ると「data varchar2(1024)」の列が一つだけ。そしてプログラムの側には、その「レコード」を構造体で分割して処理するコードが見つかった。

      あぁ、DATA DIVISIONの名残がこんなところに…… orz
      親コメント
    • by Anonymous Coward on 2008年01月18日 18時59分 (#1282958)
      COBOL以外にも普通に当てはまるでしょ、それ。
      BASIC(非VB)やってた奴が書いたVBなんてモロそれだし。
      Java臭い○○(お好きな言語をどうぞ)とか枚挙に暇がない。

      どんな言語でもそれらしく書ける人なんて、そうゴロゴロといるわけじゃない。
      親コメント
  • by Anonymous Coward on 2008年01月18日 19時20分 (#1282973)
    今のシステムは高度に分散化されている外部のコンポーネットに強く依存しているものが非常に多い。
    気にも留めずに使っているそれらの多くは詳細が非公開で互換性に関して保障され続けるわけではない。
    むしろ、存在そのものが無くなる可能性もあるわけで。

    そのような基幹システムが20年30年の時間の流れに抵抗できるかが正直判らないです。
    最終的には仮想技術使って単独環境にしてどうにかする事になると思うけど・・・

    #オプソス信者ではないけどね。
    #あと何か偉そうな事いってるのでAC
  • by elderwand (34630) on 2008年01月18日 20時14分 (#1282991) 日記
    システムが現役で動いてます。と、教えてくれた某金融系のオールドプログラマーがいました。私は、一瞬考えて、「エミュレータ・・・で、ですよね」と突っ込んでみた。ま、そういうことらしい。

    今、動いている COBOL プログラムは安定して動いているので、特にメンテナンスする必要もなかったりするのではないか。(わからないけど)触ると壊れるようなコードなので、誰も触れないとか。

    #書いてる内容は無責任だけど、もともと無責任なので、ID
  • by sayuporn (33927) on 2008年01月18日 21時23分 (#1283019) 日記
    COBOLERの減少というのがよくわかりません。
    仕事なので新人に「覚えろ」って言えばいいだけのような。
    他の言語解っていれば難しいこととは思えません。

    逆に「次世代言語COBOL!」とかCOBOLを知らない若者に覚えさせるとか。

    #他の人が使えない言語を使えるって、作業単価高くなると思うんだけどナー
  • 既得権益化 (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2008年01月19日 2時24分 (#1283150)
    COBOLの保守って、見ていると既得権益化してるところが多いんですよね。
    やってることは他と変わらない陳腐なメンテナンスや維持だけど、
    銀行なんかではびっくりするほど高給の人もいますし、定年まで純粋な技術屋を続けることができます。

    で、他言語や新技術に移行しようとすると、既得権益を確立したその人達が強行に拒絶するケースが少なくないです。
    一般のIT業界ならあっという間に切り捨てられるぐらい質が悪く高齢なのが露呈してしまいますから。
    移行がちっとも進まずに、依然COBOLが使われている理由の1つです。

    業界関係者なのでAC
  • by Seth (1176) on 2008年01月18日 18時28分 (#1282931) 日記
     コボル云々より、こっちの方の理解からして上にも
    下にも無いのに糸色望した!(どっちがどっちのパクリまでなんマイル?)
    --
    "castigat ridendo mores" "Saxum volutum non obducitur musco"
  • by Hatris (33732) on 2008年01月18日 21時52分 (#1283029) 日記
    COBOLプログラマーを延命しますかね。

    冷凍保存とか。

    #改造したいときには起こしてください。
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...