33

C++JavaPythonなどの言語があるにもかかわらず、なぜ COBOL はビジネスの世界で好まれる言語なのですか?

なぜそんなに人気があったのですか?

4

11 に答える 11

49

コード慣性。 COBOL で書かれた膨大な量の既存のコード = すべてを別の言語に切り替えるには法外なコストがかかります。 ウィキペディアによると、2,000 億行を超える COBOL コードが使用されています。

ポリシー慣性。 COBOL が実際に深く使用されている場所は、変化が遅いことで有名な政府機関や大企業である傾向があります。

人間の慣性。 コードを書いて生計を立て、多くの言語を知っている人は、新しい言語を学ぶことを大したことだと考える可能性は低くなります。1 つの言語を学んだ人は、そうでなければ「ビジネス」の仕事を遂行するためにそれを知る必要があるため、言語を変更しようとは思わないかもしれません。

于 2010-01-08T05:38:00.077 に答える
31

COBOLが大企業や政府に好まれているかどうかはわかりません。寛容という言葉の方が適切かもしれません。

なんで?

  1. 大きな政府/企業は、金融システムの管理に関してリスクを負っているためです。ここで失敗すると、企業全体が危険にさらされます。壊れていない場合は、修正しないでください。

  2. 何百万行ものコードを含むミッション クリティカルなシステムを、「私の言語はあなたの言語よりも優れている」というタイプの議論に置き換わるという確固たるビジネス ケースを作成することは困難です。ビジネスケースは難しい。

  3. 取引量。COBOL アプリケーションは、スループットのために最適化される傾向があります。大量のデータのバッチ処理は、COBOL が真価を発揮するところです。Java アプリケーションは、スループットを最適化するのがやや難しくなります。これは、プログラムと「金属」の間にインフラストラクチャ層が増える傾向があり、処理の抵抗が増えるためです。大企業や政府機関は、システムを介してプッシュする大量のデータを持っており、スループットが不可欠です。

  4. トランザクションあたりのコスト。すべての要素が含まれている場合、COBOL は通常、トランザクションあたりのコストが低くなります。これは、処理時間にコストがかかり、一般に COBOL アプリケーションの方が効率的であるためです。ただし、COBOL アプリケーションは、開発/保守コストも低いようです。

最後のポイントでみんなが私を飛び回る前に、説明させてください...

私は非常に大きな工場で働いており、数年前、すべての新しいシステムを Java で構築するという経営陣の決定が下されました。COBOL は、既存のレガシー ソフトウェア ベースの保守のためにのみ保持される予定でした。完全な段階的廃止は、15 年の期間で計画されていました。

最高で最も優秀な Java の頭脳の何人かがトレーニング、ベスト プラクティスの設定、インフラストラクチャの構築、および大規模な Java 開発のサポートに参加しました。このイニシアチブはよく計画され実行されました。その後、多数の Java アプリケーションがデプロイされた後、「Bean カウント」が開始されました。その結果、COBOL アプリケーションの開発、保守、サポート、および実行のコストは依然として低くなりました。

COBOL が復活しましたが、完全ではありません。新しいエグゼクティブの方向性は、重労働 (バックエンド トランザクション処理) およびバッチ指向アプリケーション用に COBOL を維持することです。基本的にCOBOLは、数値計算とビジネスルールの実装に使用されます。Java が前面に出て、GUI タイプのインターフェースと軽量処理を提供します。

これはおそらく業界の傾向だと思います。COBOL がすぐになくなることはありませんが、前もって新しいプレーヤーをサポートしている舞台裏で見えなくなる可能性があります。

于 2010-01-08T20:32:38.267 に答える
7

まず、私は Micro Focus で働いているので、利害関係者です。しかし、私は質問をそれ自体に戻します。なぜだめですか?C++、C#、または Java は新しいため、当然より優れたものになるという固有の前提があります。しかし、COBOLは立ち止まったわけではありません。複雑な構文のせいもあって、COBOL に新しい機能を追加できることが証明されており、競争力を維持しています。人々は COBOL がいかに「悪い」かについてよく話しますが、30 年前の COBOL を C# や Ruby などの最新バージョンと比較しています!

確かに、COBOL の歴史そのものが進化していますが、後方互換性が維持されていることは、企業が COBOL に投資する強力な理由です。書き直す必要がないため、TCO が削減されます。

COBOL の最新バージョンの詳細については、Managed COBOL のコミュニティ サイトをご覧ください。

http://knol.google.com/k/alex-turner/micro-focus-managed-cobol/2246polgkyjfl/4

于 2010-06-05T12:54:58.003 に答える
5

これらの言語はどれも、Cobol が提供するものを提供していません。大量のデータのバッチを高速かつ効率的に処理します。グラフィックスは必要ありません。ビットをいじる必要もありません。得意なことをするだけで済みます。主に会計処理です。

C++ と C は、システム スタイルのものの代用としては問題ありませんが、固定小数点演算とレコード指向の I/O の強力なサポートに落ち込んでいます。ほとんどの金融およびビジネス アプリが存在する領域である z/OS では、Cobol と z/assemblyr の両方が、これらのことに対するより優れたネイティブ サポートを備えています。

Java は優れていて、安全で、実行可能です。また、IBM メインフレームでは、Java と Cobol が非常にうまく相互運用されます。しかし、Cobol で行うのが簡単ないくつかのことは、Java で行うのが非常に難しく、その逆も当てはまります。それらは互いに補完し合っているのであって、置き換わっているのではありません。Java は、ライブラリ呼び出しを介してすべての固定小数点演算も実行しますが、これはネイティブ オペコード サポートよりもはるかに低速です。

Python は、固定小数点演算とレコード I/O にライブラリ (別名モジュール) サポートを使用します。また、インデントを使用してスコープを区切るという致命的な設計上の欠陥もあります。これは、ISO8859-1 文字セットのいくつかのバリアントを使用する Mac/Windows/Unix の比較的均一な環境では、かなり問題なく動作します。ASCII 中心の世界と EBCDIC 中心の世界の間を行ったり来たりすると、行末記号が「\n\r、\r、\n」のように単純ではなく、ファイル転送パッケージの設定ミスがある場合に問題が発生する傾向があります。 、文字変換ルーチン、または異なる文字セット用に構成された端末による編集は、ソースのスコープを破壊します。

あなたが言及したすべての言語は、重要なビジネス ニーズに弱点があり、Cobol が最も強力です。

于 2010-06-08T08:21:42.550 に答える
5

なぜそれが流行ったのですか?

1950 年代後半に、米国政府は、ソフトウェア ベンダーが政府向けにアプリを販売したりアプリを作成したりする場合、言語は cobol でなければならないと布告しました。

その結果、何十年もの間、それをサポートするコンパイラー・ベンダーの最大のセットを持っていたのは言語であり、ISO 標準化の程度が最も高い言語であり、FORTRAN だけがそれに近づいていましたが、FORTRAN は明らかに完全に異なっていました。対象者。

2 番目の理由: かなり頻繁に発生する特定のビジネス上の問題の特定の側面については、今日でも、私が知っている他のどの言語よりも優れているからです。これらの側面の中で最も重要なのは、10 進演算です。Cobol はそれをネイティブに持っています (PL/1 などの場合のように) が、「より現代的な」言語と言われているものには当てはまりません。ちなみに、「お金の値を格納するのに最適なデータ型は何ですか?」という質問が非常に多いのは、まさにそのためです。これらの質問をしている人々は、IT の世界全体がオブジェクト指向言語と ORM ツールで構成されていることをよく知っており、そのような「お金の算術」がコンピューター言語でネイティブにサポートされるのになぜ役立つのかを理解していません。、つまり、コンピューター言語に、bigint (プログラマーが小数点以下の桁数を追跡する必要がある) または float (プログラマーが小数点以下の桁数を追加する責任がある) 以外の、組み込みのネイティブ データ型を持たせる必要があります。あらゆる場所で正しい丸めロジック)。

于 2010-06-05T13:09:08.457 に答える
3

これは、任意のハードウェアをホットスワップできるマシンで動作し、プロセッサが停止した場合に正常に機能を低下させます。数十億ドルを扱う場合、信頼性がすべてです。

これらのマシンは、途方もなく大きな I/O 速度もサポートしています。1 日分のトランザクションをリアルタイムで処理できない場合は、廃業です。

1985 年以来、廃止されたビットはほとんどなく、安定した言語です。

コードを別の言語に簡単に移植することはできません。開発者はそれが実現することを「計画」していなかったからです。今日のシステムを動かしているコードを別の言語に移行することはリスクであり、非常に大きなコストがかかります。

信頼性は重要であり、COBOL はそれを確実に備えています。

于 2010-04-14T20:54:30.273 に答える
2

なぜそれが流行ったのですか?

これは、IBM によって強くプッシュされました。これは、 PL/Iではありませんが、 Fortranと COBOLにとって大きな助けになりました。

1960 年以前に初めて登場し、非常に早い段階で入手可能でした。

アセンブラーを使用するよりもずっと簡単で、IBM System/360アセンブラー (ビジネス処理には非常に優れたものでした) を使用するよりもはるかに簡単でした。アセンブラよりもうまくやろうとしている多くの人々を取り上げました。

これは、当時の一般的なビジネス コンピューティングの慣行に非常によく適合していました。入力を受け入れ、小さな変換を行い、レポートを吐き出すのが非常に得意でした。(それについては今でもそうですが、今日の企業のニーズははるかに多様です。)

小数点を追跡しながらの 10 進演算や、ビジネスで非常にうまく機能するデータ型の記録など、いくつかの特別な機能がありました。

于 2010-03-26T15:13:45.097 に答える
1

私はaoc、c ++、javaも使用しました。すべてが前進nであり、移植的な特徴を持っています。しかし、コンピューティングの問題が発生した場合、それはビジネスの計算と推測だけでハードワークがないことを意味します。COBOLに勝る効率はありません。巨大なデータ処理、1日以上の処理、Javaまたは他の言語での処理!!! 忘れる。その唯一のCOBOLとメインフレーム。

  1. セキュリティの漂白剤。メインフレームには60年以上の漂白剤はありません。
  2. 緊急事態やショートッパーの状況で処理するコードの単純さ。
  3. java、vb.net allでフロントエンドを使用しますが、データを維持するにはDB2.soに依存する必要があります。

そのすべての理由は、主要な銀行会社がメインフレームから他のフレームに移行する前に10回考えている理由です。

于 2011-11-04T14:19:29.320 に答える
1

[ベンダーの投稿 - ただし必ずしもベンダーの公式声明であるとは限りません]

確かに慣性、インストール ベース、および変更のリスクは非常に正当な理由ですが、言語自体にも十分な理由があると思います。大量のデータ レコードのバッチ処理を実行したい場合、または財務計算を実行したい場合は、レコード レイアウトと数値データ型の定義が他のどの言語よりも優れています。

NealB が彼の投稿で説明しているように、私は、生来の環境と専門知識が Java であるユーザーと話をしましたが、COBOL が仕事に最適なツールであるため、COBOL でコア ロジックを保持しています。同じアプリケーション内で Java (主に Unicode 文字列操作とシステム統合用) と COBOL を自由に組み合わせます。Java で同じ作業を行うためのコード量を比較すると、まったく意味がありません。Alex Turner は、別の Web サイトに、COBOL と Java の典型的なビジネス機能を比較するいくつかの優れた例を投稿しています。

于 2010-03-26T14:56:40.343 に答える
1

多くの大企業、特に銀行では、複雑なシステムを COBOL で作成していますが、これらは単純に機能します。そのようなシステムの書き直しと設計は、時間とお金を含むリソースの無駄であると多くのそのような機関によって観察されています。また、特定の要件固有の機能が途中で失われるリスクもあります。したがって、古くからある表現は、壊れていない場合は修正しないでください。

于 2011-11-04T14:23:17.803 に答える
0

COBOLは、コンピューターについて何も知らない人がプログラムを作成できるようにするために発明されました。これはまさに、ビジネス、特殊性 アメリカのビジネスが繁栄する悪い考えです。

優れたソフトウェアには高度なスキルと優れたツールが必要ですが、そのうちのいくつかは、実際に使用するには実際の知識と理解が必要です。高いスキルレベルは高い報酬を要求する傾向があるため、スライバーバレットの検索が続き、高いスキルは積極的に抑制されます. 信じられない?これらのリンクを試してください

http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1284.html

于 2010-07-08T03:14:06.177 に答える