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

COBOLはまだまだ終わらんよ 96

ストーリー by GetSet
適材適所で 部門より

pinbou 曰く、

本家/.の記事より。チューリング賞受賞者エドガー・ダイクストラ曰く、
「COBOLの利用は精神を損なう。よって、COBOLを教えることは犯罪行為とみなされるべきだ」
……とはいえ、このDr. Dobb's Journalの記事によれば、COBOLのしぶとさには度外れたものがあるらしい。21世紀に入ってもCOBOLは最も広く使われている言語であり、今日のソフトウェア開発における最もホットな領域のいくつかで重要な地位を占めている。あなたが次に学ぶべき言語はCOBOLかもしれないのだ。
1997年、Gartner Groupが発表した調査によれば、現在使われているアプリケーションのうち2400億行はCOBOLで書かれており、毎年何十億行ものCOBOLコードが新たに書かれている。加えてCOBOLはXML/メタデータ、ウェブサービス、SOA、eビジネスと言った分散型ビジネスソフトウェアアーキテクチャコンセプトの具現化においてカギとなる存在なのだそうだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2008年09月21日 9時30分 (#1423566)
    > 現在使われているアプリケーションのうち2400億行はCOBOLで書かれており


    過去にソフトウェアの生産性を計られたとき、その結果としてC言語よりCOBOLの方が数倍も生産性が高いのでCOBOLを使うべし、という報告が出て来たことがあったのを思い出した。
    COBOLで書かれたプログラムが多いのは認めるが、単純な行数比較はあぶないぞ。

    • Re:プログラム行数 (スコア:2, すばらしい洞察)

      by saitoh (10803) on 2008年09月21日 9時44分 (#1423570)
      プログラムのロジックじゃなくて、帳票の定義がその2400億行のほとんどだったりして
      親コメント
    • by Anonymous Coward on 2008年09月21日 10時47分 (#1423603)
      「C言語とCOBOLを同じ土俵で比べること自体無味じゃ」と思うのはオレがジィなのか?
      親コメント
    • by naruenosekai (13637) on 2008年09月21日 13時46分 (#1423678)
      > 現在使われているアプリケーションのうち2400億行はCOBOLで書かれており

      プログラムの量ならC言語に勝てないから、こういった微妙な言いまわしになっているんだろうね。
      まあ、C言語の手続の多さや基本関数の少なさは効率良いとはいえないけど、COBOLで何でもできる
      わけでもない。
      他の言語の方が効率が良い場面は多々あるので適材適所で使い分ければいい話。
      問題は、使い分けられるほどプログラマーが多数の言語を習得してないことだよね。

      根本的な問題として、COBOL→C言語のコンバーターとかで解決しないのかな?

      ああ、そのままならいいけど、改良や、ベースに仕様変更する場合はダメか...
      C言語のソースの読みにくさは、格別だからなぁ
      いっそのことpascalに....
      親コメント
      • Re:プログラム行数 (スコア:3, すばらしい洞察)

        by firewheel (31280) on 2008年09月21日 14時03分 (#1423690)
        >根本的な問題として、COBOL→C言語のコンバーターとかで解決しないのかな?
        そういう自動変換されたソースは普通は死ぬほど読みにくいですよ。
        #手動変換されたソースでも、死ぬほど苦労したことがある。orz

        >C言語のソースの読みにくさは、格別だからなぁ
        普通レベルだと思います。
        (トリッキーなテクニックを駆使した)Perlに比べれば可愛いもんですよ。

        マクロの乱用などがあれば別だけど、そういう糞プログラマが書けば
        どんな言語だろうとスパゲッティプログラムになることでしょう。
        親コメント
      • これが解決しない限りなかなか踏み切れんところがあるんじゃないですかね
        親コメント
  • 加えてCOBOLはXML/メタデータ、ウェブサービス、SOA、eビジネスと言った分散型ビジネスソフトウェアアーキテクチャコンセプトの具現化においてカギとなる存在なのだそうだ。
    カギって、具体的にどういう役割を果たすというのだろう?
    まさか、XMLパーザやウェブサーバやアプリケーションサーバ自体をCOBOLで書く気ではあるまい。 またウェブサーバやアプリケーションサーバにアクセスするためのクライアントライブラリもCOBOL自身で書きはしまい。
    COBOLのプログラムは、それらのライブラリやサーバを利用して従来COBOLが得意としていた金計算を行うだけではないのか? COBOLがコンセプトなるものの具現化のカギになるのではなく、そのコンセプトと称するものがCOBOLの延命のカギになっているのではないのか? COBOLの立場は、C, C++, C#, JavaよりもむしろPHP, Perl, Ruby, Pythonに近づいている気がする。
    • by deleted user (3598) on 2008年09月21日 13時42分 (#1423673)

      するどいですね.原文読まれました?>#1423575
      興味がでてきたので4ページ目 [ddj.com]を粗訳してみました.

      CobolはWebとのゲートウェイか?

      しかしCobolを学ぶ魅力的な理由がある.単に古いコードを保守や移植するんじゃなく.

      Cobolはモダンな分散型ビジネスソフトウェアアーキテクチャのコンセプトを具体化するキー要素だ. そのコンセプトとはXML/メタデータ,Webサービス,サービス主導アークテクチャ(SOA),そしてeビジネスである. トレンディな要素,つまり次回のWeb 2.0 カンファレンスでCobolのセッションがあるかもしれないというだけでなく,決定的な要素でもある. Lemmel (この人 [www.ecdl.at]かな?) はメタデータのエッセンスを,CobolのIDENTIFICATIONおよびENVIRONMENTセクションと,Webサービスが利用するCICSトランザクションの中に見ている.

      Cobolアプリケーションの真のコンセプトは,oversimplication(シンプル化のやり過ぎ)とでもいうものだ. Cobolプログラマは,SOAモデルに類似した方法でまとめられたテクノロジの集合体を扱う. Scott McMahan [scottmcmahan.net] はeメールで次のように述べている. “モダンなCobolを理解したければ,glue(接着剤)言語だと思えばいい. IBM [ibm.com] はデータ処理用にCICS, DB2, IMS, VSAM, ISPFなどのテクノロジの‘スタック’を持っており,それらはCobolでつなげられている.”

      トラディショナルな実装からWebベースのモデルへの移行におけるCobolプログラマの役割は,いろいろな姿をとることができる.

      プログラマはCobolコードと新しいアプリケーションを橋渡しするかもしれない. それにはCobolと,レガシなCobolコードの背後にあるビジネスルールと,そしてモダンな言語とシステムの理解が欠かせない. SOAおよび共通ランタイム環境を持つIBMの言語環境の出現によって,既存のCobolコードは他のコードと,より容易に統合できる.

      CobolとWebの統合に利用できるツールは急速に進化している. Veryant [veryant.com]社はWeb 2.0の開発をCobolの中で直接行えるようにしている: “最新のWebアプリケーションの多くに含まれるウィンドウのグラフィカルなサイズ変更と同じことが,今やCobolプログラムのエンドユーザに対しても容易に実装できる.” Micro Focus [microfocus.com]社はMicrosoft [microsoft.com]社とのパートナーシップを通じて,Cobolアプリケーション開発に向けた強力なSOAサポートを開発中だ. さらに富士通 [fujitsu.com]は,コードの統合より“数歩進んで”CobolプログラマがWebを直接プログラムできるようにすることを検討している. 例えばASP+ページにCobolコードを埋め込んだり,CobolでWebサービスを直接書くことができる.

      “これは静かなる現実だ”とCrookは言う. “ビジネスの世界はCobolに載って動いている. [そして]今のCobolはとてもモダンな言語で,新しい価値をビジネスへ迅速にもたらすという昔からの力を,引き続き及ぼしている.”

      --
      =^..^=
      Enjoy Computing, Skiing, as much as Horse Racing.
      親コメント
    • by Anonymous Coward on 2008年09月21日 10時14分 (#1423584)
      >まさか、XMLパーザやウェブサーバやアプリケーションサーバ自体をCOBOLで書く気ではあるまい

      某社が作った某システムでは、COBOLで書いたCGIが動いてたなぁ.....(遠い目)
      親コメント
      • >某社が作った某システムでは、COBOLで書いたCGIが動いてたなぁ.....(遠い目)

        可変長レコードの問題がなければ、画面=レコードのメタファが効いて、かつ
        セッションレスな一過性オンラインであるCGIは、COBOLで書くオンラインシステム
        との親和性は高いと思うよ。

        CGI黎明期に、C/Sやってた人は、どうしてもセッションレスオンラインの概念が
        理解できてなかったけど、COBOLやってた人はすんなり入った。まあ狭い経験論
        だけど。
        --
        -- Tig3r on the hedge
        親コメント

    •  "分散型ビジネスソフトウェアアーキテクチャの実現"に当たっては、
       既存/新規のCOBOLで書かれた膨大な業務ロジックの実装を、
       きちんと理解して利用する必要がありますよ。

      と、いうことではないかな?

      結局の所、各サービスの断片においては、
      外界とのやり取りの形式に変化はあったとしても、
      本質的な部分は何も変化がありませんよね。と、
      そういうことを言っているのかと思います。

      実装がCOBOLでもPL/1でもFORTRANでも、
      既存の優れたものは膨大にあり、さらに、これからも、
      古典的な言語で優れたものは生み出されるでしょうし。
      --
      -- LightSpeed-J
      親コメント
  • XML/メタデータ、ウェブサービス、SOA、eビジネスと言った分散型ビジネスソフトウェアアーキテクチャコンセプトの具現化
    これって要するに
    「XMLでデータ吐いてくれれば他システムとの連携や再利用しやすいよ」
    って言ってるだけみたいな感じで、
    別にCOBOLそのものはカギでもなんでもないのでは?

    帳票出力部分をXML出力にする?

    --
    --------------------
    /* SHADOWFIRE */
  • でも、CはCOBOLっぽく感じないのはなぜだろう?
    いずれにせよ、COBOLもjavaも適材適所だね。
  • 要するに「安くできるから」COBOLなんでしょう

    もちろん、今ゼロから作るならJavaでFAですが
    「納期」「要求仕様」以外に「既存システム」という前2つと相反する要素が出てくるので
    システム拡張という名目でツギハギをしようとした場合にCOBOLが使われているだけの話でしょう。

    COBOLだから良いのではなく、前もCOBOLだったから次もCOBOLなんです。
  • COBOLトピを読んでると、岩田聡の名言が浮かぶのは私だけでしょうか。
  • by Anonymous Coward on 2008年09月21日 9時57分 (#1423577)
    COBOLは現役ですが40代半ばのCOBOLERが終わっています。
  • by Anonymous Coward on 2008年09月21日 9時58分 (#1423579)
    一度ある程度広まった言語で、今じゃほぼ廃れた高級言語って何があるんですか?
    • Re:反対に (スコア:3, おもしろおかしい)

      by Anonymous Coward on 2008年09月21日 10時09分 (#1423582)
      ラテン語。
      親コメント
      • Re:反対に (スコア:1, 参考になる)

        by Anonymous Coward on 2008年09月21日 15時28分 (#1423729)

        ラテン語。
        何を言ってる。ad hoc も de facto も in situ も、 N.B. e.g. id. op.cit. みんな現役のラテン語だ。
        親コメント
      • by Anonymous Coward
        ラテン語なんてそんな事言い出したら色々廃れた古語ってのはあるわけで・・・
        大体それ自然言語だし。
        あと、ラテン語ってまだ専門用語では使うしな、学名とか。COBOLもそんなんだな・・

        しかしスパン長過ぎだ。生きてる間にはわからないってレベルじゃないか・・・

        えーと、そうだな、プレーンなBASICを初心者に教えるのは廃れたと言っても良いかな?
        • by robo229 (7383) on 2008年09月21日 10時36分 (#1423596)
          > えーと、そうだな、プレーンなBASICを初心者に教えるのは廃れたと言っても良いかな?

          JIS Full Basic ですが、(仮称)十進BASICは、
          複数の高校数学の教科書で紹介されています。

          http://hp.vector.co.jp/authors/VA008683/ [vector.co.jp]

          教える側が慣れているということもあるのですが、
          数学的なサンプルなども豊富なので、結構悪くない選択だと思います。
          親コメント
    • BASIC
      --
      I'm out of my mind, but feel free to leave a comment.
      親コメント
    • アセンブラ...
      親コメント
    • by ncube2 (2864) on 2008年09月21日 10時43分 (#1423599)
      PL/I
      親コメント
    • by Anonymous Coward
      68系時代にAppleお気に入り開発言語まで上り詰めたPascal
      • by phenix (31258) on 2008年09月21日 11時54分 (#1423622)
        少なくともうちの大学で最初の数ヶ月習うのはPascalですが。
        Cから始めると、世の中C言語しかないと思ってしまうということらしい。
        親コメント
        • Re:反対に (スコア:2, おもしろおかしい)

          by Anonymous Coward on 2008年09月21日 12時09分 (#1423629)
          うちの学科ではFortranで計数工学を教えています。

          「なんでCじゃないんですか」と尋ねる学生も毎年いくらかは現れますが
          こういう学生はつまり「自分はCなら既に知っているから講義もCなら楽なのに」と考えているので
          こちらは「新しいことを学べて嬉しいだろ」と答えています。
          親コメント
          • こちらは「新しいことを学べて嬉しいだろ」と答えています。
            そりゃ学ぶこととしては新しいかもしれないが、言語としては古すぎるし汎用性がなさすぎる。
            Cが新しいとは思えないが、Fortranはそれ以上に新しくない。

            CならC++にもJavaにもつながるかもしれないが、Fortranを覚えたところで何になるんだ?

            高校の時に商業科(?)の奴が授業でCOLBOLやってる orz と言っていたのを聞いて同じ事を考えてた。
            ちなみにそのときには「COBOLは10年前くらい前の本に"COBOLは古すぎて使ってられない"って書いてあった」って言っておいた

            親コメント
            • by Ryo.F (3896) on 2008年09月22日 7時31分 (#1423958) 日記

              Fortranを覚えたところで何になるんだ?
              役に立つものだけを教えるのでは、大学とは呼べません。
              一見無駄なことが、人間の幅を広げる効果があったりするんですよ。
              親コメント
              • by Tsann (15931) on 2008年09月22日 9時12分 (#1423981)
                私もRyo.Fさんに同意。別に義務教育じゃないんだから、学んだことをどう生かすかは本人次第。

                元コメントに対して…

                CならC++にもJavaにもつながるかもしれないが、Fortranを覚えたところで何になるんだ?
                そんなこと言ってたら、shとかLispとかBasicとかアセンブラとか毛色の違う言語には手が出せませんね。
                結局、言語というのは、他の言語と共通する部分と、他の言語とは異なる部分の2種類しかないわけで、その差分を理解していく、もしくは歴史の流れを理解していく、いい足がかりになると思いますけどね。

                そうすればJavaScriptのコンストラクタに感動したり、変数のスコープでクロージャが実現されているのかと理解できるってもんです。
                親コメント
            • by saitoh (10803) on 2008年09月22日 11時55分 (#1424045)
              大学でPascalを教えるのはPascalプログラマになるためではなく、(手続き型)プログラミングを学ぶためです。 あくまでも教材。
              親コメント
        • Re:反対に (スコア:1, すばらしい洞察)

          by Anonymous Coward on 2008年09月21日 17時45分 (#1423781)
          せめてLispあたりを教えてほしいところですね。
          Pascalじゃ、世の中Algol60しかないと思ってしまうことに変わりはないでしょう。
          親コメント
typodupeerror

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...