このフォーラムには、Cobol プログラミング言語の関連性に関するスレッドがいくつかあります。たとえば、このスレッドはそれらのコレクションにリンクしています。ここで私が興味を持っているのは、1997 年の Gartner による調査に基づいて頻繁に繰り返される主張です。当時、約 2000 億行のコードが実際に使用されていたということです。
関連するいくつかの点を検証または反証するために、いくつか質問をしたいと思います。私の目標は、この声明に真実があるかどうか、またはまったく非現実的であるかどうかを理解することです.
確信が持てないことについて、私の考えや私自身の意見を述べるのが少し冗長であることを前もってお詫びします。 .
「2000 億行」という数字には、実際に使用されている任意の言語の全プログラミング コードの 80% に相当するという追加の主張が付随する場合があります。また、80% は単にいわゆる「ビジネス コード」 (または、読者が主流のソフトウェア、組み込みシステム、または Cobol が実質的に存在しないその他のものをカウントしないことをほのめかす他の漠然としたフレーズ) に言及している場合もあります。以下では、コードには同じソフトウェアの複数のインストールの二重カウントが含まれていないと想定しています (これは不正行為であるためです!)。
特に 2000 年問題以前には、多くの COBOL コードがすでに 20 ~ 30 年前のものであることが指摘されていました。つまり、60 年代後半から 70 年代にかけて書かれたということです。当時、市場のリーダーはIBM/370 メインフレームを搭載した IBMでした。IBM は、彼の Web サイトに、価格、構成、および入手可能性を引用した過去の発表を掲載しました。シートによると、価格は最大 0.5 メガバイトのメモリを搭載したマシンで約 100 万ドルです。
質問 1:実際に販売されたメインフレームの数は?
それらの時間の数字は見つかりませんでした。最新の数値は2000 年のもので、これも Gartner によるものです。:^(
実際の数は数百または数千に上ると思います。2000 年の市場規模が 500 億で、市場が他のテクノロジと同様に指数関数的に成長した場合、1970 年には数十億に過ぎなかったかもしれません。数万台のマシンで(そしてそれはかなり楽観的です)!
質問 2:プログラムのコード行数はどれくらいでしたか?
そのアーキテクチャの 1 行のソース コードから生成されるマシン コードのバイト数はわかりません。しかし、IBM/370 は 32 ビット マシンだったので、アドレス アクセスには 4 バイトと命令 (2、おそらく 3 バイト?) を使用する必要がありました。オペレーティング システムとプログラムのデータを数えると、0.5 メガバイトのメイン メモリには何行のコードが収まるでしょうか?
質問 3:標準ソフトウェアはありませんでしたか?
販売されたすべてのマシンは、標準的なソフトウェアなしで独自のハンドコーディング システムを実行していましたか? 真剣に、すべてのマシンがレガシ コードを再利用せずに最初からプログラムされていたとしても (待って... それは私たちが最初から始めた主張の 1 つに違反しませんでしたか???)、O(50,000 loc/machine) になる可能性があります。 * O(20,000 マシン) = O(1,000,000,000 loc)。
それはまだ2000億にはほど遠いです!ここで明らかな何かが欠けていますか?
質問 4: 2000 億行のコードを書くのに何人のプログラマーが必要でしたか?
これについてはよくわかりませんが、1 日あたり平均 10 loc を取得すると、これを達成するには 5,500 万人年が必要になります。これは、20 年から 30 年の時間枠で、200 万から 300 万人のプログラマーが絶えずコードを書き、テストし、デバッグし、文書化していたことを意味します。それは、今日の中国にいるプログラマーの数とほぼ同じ数になるのではないでしょうか?
編集:何人かの人々が、自動テンプレート システム/コード ジェネレーターなどを作成しました。誰かがこれについて詳しく説明できますか?これには 2 つの問題があります。a) システムが何をすべきかをシステムに伝える必要があります。そのためには、コンピューターと通信する必要があり、コンピューターはコードを出力します。これはまさにプログラミング言語のコンパイラが行うことです。したがって、基本的に、別の高水準プログラミング言語を使用して COBOL コードを生成しています。Cobol の代わりに他の高水準言語を使用するべきではないでしょうか? なぜ中間業者?b) 70 年代と 80 年代、最も貴重な商品は思い出でした。したがって、プログラミング言語で何かを出力する場合は、簡潔にする必要があります。編集の終わり
質問 5:コンテストについて教えてください。
ここまでで、次の 2 つのことを思いつきました。
1) IBM には独自のプログラミング言語PL/I がありました。上記では、コードの大部分が COBOL のみを使用して記述されていると想定しています。しかし、他のすべての条件が同じであるとすると、IBM のマーケティングが自社のマシンでの COBOL を支持して、自社の開発を市場から追い出したのではないかと思います。PL/I に関連するコード ベースは本当になかったのでしょうか。
2) ときどき (上記のスレッドのこの掲示板でも) 「2,000 億行のコード」は「政府、銀行など」以外の誰にも見えないという主張に出くわすことがあります。実際、国防総省は、費用対効果を高め、プログラミング言語の普及を抑えるために、独自の言語に資金を提供していました。これが Ada の使用につながりました。COBOL を主に使用していた場合、非常に多くの異なるプログラミング言語を使用することについて本当に心配するでしょうか? 主流のコンピューティングの認識の外にある「政府および軍事」システムで実行されている言語があるとしたら、その言語は Ada ではないでしょうか?
誰かが私の仮定や結論の欠陥を指摘し、上記の主張に真実があるかどうかを明らかにしてくれることを願っています.