Gibt es außer für ältere Software Gründe für die Verwendung von COBOL?

11

COBOL wird immer noch (stark?) Für das Financial Computing verwendet. Es ist eine alte Sprache, und AFAIK die meisten Programmierer hassen COBOL oder mögen es zumindest nicht. Dies wirft die Frage auf: Ist der einzige Grund, warum COBOL immer noch verwendet wird, dass ältere Software es verwendet, oder hat es echte Vorteile gegenüber anderen Programmiersprachen?

Nur neugierig.

Anto
quelle
3
Alt ist kein Grund für sich.
Nein, aber es fehlen höchstwahrscheinlich moderne Funktionen. Das ist jedoch nicht so wichtig, wenn die Sprache ansonsten gut gestaltet ist.
Anto
Auch immer noch stark in der Regierung eingesetzt, nicht nur im Bankwesen.
BBlake
6
"Die meisten Programmierer hassen COBOL" - nun, ich bin mir ziemlich sicher, dass die meisten Programmierer es auch noch nie benutzt haben. Es würde mich wundern, wenn mehr als 5% dieser "Hasser" eine Vorstellung von ihrer Syntax oder Form hätten. Sie verwenden es nur als Beispiel für das Übel von Legacy-Systemen, ohne wirklich zu wissen, was los ist. Ähnlich wie FORTRAN oft angesehen wird.
TZHX
@TZHX: Das ganze Zitat sollte jedoch "AFAIK die meisten Programmierer hassen oder zumindest nicht mögen COBOL" sein. Ich sage nicht, dass es so ist , es ist nur so, wie ich die Situation interpretiert habe . Aber was Sie sagen, mag wahr sein, aber ich weiß es nicht gut genug, um selbst etwas zu sagen. Ich habe nur persönliche Beobachtungen über die Meinungen der Menschen gemacht (die möglicherweise unter genau dem leiden, was Sie gesagt haben).
Anto

Antworten:

12

Es ist jetzt größtenteils Vermächtnis. Viele kritische Geschäftssysteme befinden sich immer noch in COBOL, nur weil sie so groß und integriert sind, dass sich die Kosten für das Umschreiben nicht lohnen. Das Schreiben eines neuen Systems in COBOL ist wahrscheinlich nicht mehr möglich, da die meisten COBOL-Entwickler so selten sind, dass sie eine beträchtliche Menge Geld für die Fachkompetenz einbringen können (ähnlich wie bei einem Foxpro-Entwickler jetzt). Es gibt nur wenige oder gar keine Gründe, eine COBOL-App beizubehalten, aber leider ist die häufigste Argumentation, dass die COBOL-App bereits vorhanden, vertrauenswürdig und eng mit anderen Systemen verbunden ist und nicht ersetzt werden kann. Genau aus diesem Grund sollte es ersetzt werden, bevor es zu einer Situation kommt, in der die einzige Hardware, auf der die App ausgeführt wird, aus Ebay-Teilen aus den 80er / 90er Jahren hergestellt werden muss.

Ryan Hayes
quelle
Warum sagst du "Es ist jetzt größtenteils Vermächtnis"? Ich glaube nicht, dass Sie wirklich wissen, wovon Sie sprechen. Ich arbeite gerade an einem neuen COBOL-Projekt im Wert von mehreren Millionen Dollar. Ich kenne auch einige andere sehr große neue Entwicklungsprojekte, die COBOL als Hauptimplementierungssprache verwenden. Wunschdenken von Ihrer Seite macht es nicht Wirklichkeit.
NealB
1
Nimm es mir nicht ab. Untersuchungen von O'Reilley zufolge gibt es im Vergleich zu jeder anderen Sprache kaum Cobol-Buchverkäufe. Das liegt entweder daran, dass die Entwickler kein Interesse daran haben, oder es gibt nicht genügend Entwickler, die es verwenden. Ich bin sicher, dass Sie mit COBOL neue Entwicklungen finden können, aber es ist immer noch das MEISTE Vermächtnis (nicht alles Vermächtnis). Ich bin sicher, dass jemand wie Sie, der sich auf COBOL spezialisiert hat, Verbindungen zu anderen Leuten haben würde, die ebenfalls nur COBOL verwenden. Genau wie bei mir bedeutet nur Freunde zu haben, die eine Sprache sprechen, nicht, dass ich nicht die Minderheit bin.
Ryan Hayes
In unserem Unternehmen kopieren / fügen wir vorhandenen Code ein, passen ihn an unsere Bedürfnisse an und sagen "erledigt". Zum Glück kann ich meine Entwicklung in C # / VB
Wayne Werner
4

COBOL wird immer noch (stark?) Für das Financial Computing verwendet.

Ist es?

Es hängt davon ab, was Sie Financial Computing nennen. Wenn Sie den gesamten Code aufrufen, der von Finanzinstituten ausgeführt wird, ist dies wahrscheinlich der Fall. Die meisten haben Geschäftsregeln, die in den 60er und 70er Jahren geschrieben wurden. Das Risiko und die Kosten für die Aktualisierung solcher Systeme auf eine neue Umgebung sind es nicht wert. Ich bezweifle, dass da draußen jemand neuen COBOL-Code schreibt. Es gibt heute COBOL-Compiler, die beispielsweise in den .NET-Stack integriert sind. Oft gibt es Tools zum Integrieren und Nutzen älterer Anwendungen in moderne Software-Stacks, aber diese Tools sind Menschen, die sie nicht verwenden müssen, oft unbekannt, da es sich um einen sehr Nischenmarkt handelt.

Wenn Sie Financial Computing als eine Art Software für quantitative Finanzen bezeichnen, habe ich noch nie von jemandem gehört, der COBOL verwendet. C ++ ist in einigen Nischensprachen wie k, einem APL-Derivat, weitaus häufiger anzutreffen.

Vitor Py
quelle
kund sein Nachkomme qsind solche Schmerzen
Andrey
@ Andrerey Es ist Geschmackssache. Ich genieße es.
Vitor Py
glücklich bist du. Eines der größten Probleme für mich ist das Fehlen einer normalen IDE und nutzloser Fehlermeldungen
Andrey
2
@Andrey Ja, die Abkehr von der Mainstream-Entwicklungsumgebung ist das größte Problem bei der Verwendung von Nischensprachen. Ich habe vor der Verwendung vorlagenlastigen C ++ - Code erstellt, daher bin ich an nutzlose Fehlermeldungen gewöhnt :)
Vitor Py
@Andrey, IBM verfügt über Eclipse-basierte Tools für Cobol.
4

COBOL sieht derzeit hauptsächlich Legacy-Nutzung. Die Benutzerbasis schwindet langsam durch Abrieb, da keine neuen Anwendungen geschrieben werden und alte langsam, aber sicher auslaufen.

Die meisten COBOL-Systeme, die schnell und kostengünstig ausgetauscht werden konnten, wurden bereits ausgetauscht. Diejenigen, die nicht immer teurer zu reparieren oder zu ersetzen sind, aber im Vergleich zu neueren Systemen immer billiger zu warten sind - sie laufen gut mit billiger, veralteter Hardware und sind nach vielen Jahren des Dienstes keine zeigt länger keine neuen Fehler. Die meisten Fehler wurden entweder behoben oder haben eine lange Tradition, die als Workarounds geeignet ist. Die Wartung wurde in der Regel auf ein oder zwei spezialisierte Mitarbeiter reduziert, die nach langer Arbeit am System das Wissen besser kennen, als Sie sich vorstellen können.

Selbst aus technischer Sicht gibt es normalerweise gute Gründe, die alten Systeme beizubehalten. Sie sind relativ stabil, wurden größtenteils behoben und sind dem Endbenutzer bekannt / bekannt.

Sie werden jedoch sehen, dass das System irgendwann ersetzt wird. Typischerweise kommt dieser Schritt von der geschäftlichen Seite der Dinge:

  • Die Benutzer des aktuellen Systems werden durch jüngere Benutzer ersetzt, die nicht überzeugt werden können, den Umgang mit der archaischen Oberfläche zu erlernen
  • Das Unternehmen kann niemanden finden, der für die Wartung des Systems eingestellt werden kann. Das Gehalt ist im Vergleich zum Gehalt anderer Mitarbeiter nicht unverschämt
  • Jemandem mit einem großen Budget ist es peinlich herauszufinden, dass ein Kernsystem des Unternehmens auf Hardware läuft, die durch eine VM auf einem Laptop ersetzt werden kann
  • Es kommt ein neues Warensystem, das wirklich sehr, sehr billig zu bedienen ist
  • Das Unternehmen, das die älteren Systeme verwendet, wird übernommen, geht in Konkurs oder hört auf andere Weise auf, wirklich zu existieren
  • Ein entscheidendes Stück neuer, dringend erforderlicher Funktionen kann nicht billig für die Interaktion mit dem Altsystem hergestellt werden
Blaubeerfelder
quelle
2
Was ist Ihr Hintergrund, um so sicher zu sein?
Ich kann nachdrücklich sagen, dass Ihre Gewissheit fehl am Platz ist - wir haben mehrere jüngere (20-30 Jahre) neue Mitarbeiter, die neuen Cobol-Code schreiben (Aktualisieren und / oder Kopieren und Ändern bestehender Systeme), und wir haben mindestens 10% unserer ~ 200 Entwickler, die verbringen 80% + ihrer Entwicklungszeit in Cobol. Ich denke, Sie werden feststellen, dass die meisten Orte, die Cobol verwenden, genau das Gegenteil von dem sind, was Sie beschreiben.
Wayne Werner
4

Ich frage mich, was Sie mit "Die meisten Programmierer" gemeint haben. Ich arbeite in einem großen IT-Shop auf derselben Etage wie Cobol-Programmierer, Java-Programmierer, .NET-Programmierer (im Singular) und VB-Programmierer alten Stils. Es gibt keinen Hass oder Abneigung. cobol ist eine Sprache wie jede andere Programmiersprache - Leute, die in cobol programmieren, tun dies, weil es für sie keine andere Aufgabe ist, als in Java zu programmieren oder einen LKW zu fahren. Entgegen der weit verbreiteten Auffassung in den USA wird weiterhin viel Cobol geschrieben, nur das meiste davon in Indien, wo jeden Tag neue Cobol-Programmierer ihre Arbeit aufnehmen.

Ich denke, der Grund, warum nicht zu viele neue Netto-Systeme in Cobol geschrieben werden, ist, dass die Art von Systemen, für die Cobol geeignet ist (großvolumige Dateiverarbeitung), alle bereits geschrieben sind. Heutzutage werden nur sehr wenige neue große Unternehmen gegründet. Und diejenigen, die dies tun, könnten Dinge wie Gehaltsabrechnung und Sozialleistungen an Unternehmen auslagern, die ältere Cobol-Systeme betreiben.


quelle
2

Ein großer Teil des Kerncodes in PeopleSoft ist in COBOL geschrieben.

Bit-Twiddler
quelle
Aus dem Gespräch mit PeopleSoft-Vertretern auf einer IT-Konferenz im Jahr 2004, bevor Oracle sie erwarb, wurde mir klar, dass sich zu diesem Zeitpunkt nur noch ein Modul des Produkts in COBOL befand.
Kennah
Wie verschafft dies COBOL überhaupt einen Vorteil gegenüber anderen Sprachen?
Matthieu
2

Mit 20 Jahren COBOL-Erfahrung auf drei verschiedenen Mainframes gibt es meiner bescheidenen Meinung nach nur wenige echte COBOL-Programmierer. Stattdessen gibt es IBM-Programmierer, Sperry-Programmierer (Unisys 2200), Burroughs-Programmierer (Unisys MCP) und Tandem-Programmierer (HP NonStop). Programmierer. Um sie zu respektieren, muss ich auch die Anwesenheit von HP 3000-Programmierern, BULL-Programmierern und DEC-Programmierern erwähnen.

COBOL läuft größtenteils auf großen Eisenkästen. Vielleicht sind die einzigen echten COBOL-Programmierer nach meinen eigenen Maßstäben diejenigen, die COBOL auf einer UNIX-Box schreiben. Wow, ich werde davon hören.

Da die Hardware das zentrale Element ist, identifizieren sich die meisten Programmierer, die COBOL schreiben, anhand der Hardware, auf der der von ihnen geschriebene Code ausgeführt wird. Im Laufe der Jahre, als ich anderen Programmierern zuhörte, die mir von den Vorzügen von Sperry, Burroughs oder Tandem erzählten, habe ich mich oft gefragt, welche Art von Krieg sich ergeben würde, wenn ich sie zusammenfassen und in einen Raum stellen würde, der nicht in der Lage ist, sie zu verlassen vereinbarte eine Hardwareplattform für alle COBOL. Ich habe die anderen Plattformen nicht erwähnt, weil ich nie daran gearbeitet habe.

Ich habe viele IBM Programmierer getroffen und mit ihnen gesprochen, und sie werden sich selbst als COBOL-Programmierer bezeichnen. Wenn man sie jedoch in ein Gespräch verwickelt, verweisen sie schnell auf IBM spezifische Verfahren und Tools. Angesichts des hardwarezentrierten Charakters von COBOL ist dies für alle Hardwareplattformen sehr verständlich.

Da COBOL normalerweise an eine sehr teure Hardware gebunden ist, besteht kein starker Wunsch, aus Gründen der Migration von COBOL zu migrieren, solange auf dieser Hardware die darauf kompilierten COBOL-Programme ausgeführt werden. Bei einer alternden Bevölkerung von COBOL-Programmierern ist eine Migration jedoch unvermeidlich.

Da auf allen großen Eisenboxen, auf denen COBOL ausgeführt wird, auch Java ausgeführt wird, ist Java der natürliche Weg der Migration von COBOL weg. Code kann insbesondere jetzt in einer schwachen Wirtschaft zu einem recht günstigen Preis konvertiert werden. Sobald es auf dieser großen, teuren Hardware kein COBOL mehr gibt, sondern nur noch Java, wird sich jemand weiter oben in der Organisation fragen, ob es möglich ist, den Java-Code auf eine andere, viel kostengünstigere Hardware zu übertragen.

IBM-, Sperry-, Burroughs- und Tandem-Programmierer wissen dies, daher werden sie die Idee wahrscheinlich NIE anbieten. Für manche wäre es ein Sakrileg.

Kennah
quelle
+1, sehr teuer. Außerdem wird darauf hingewiesen, dass Java zum New Cobol wird - was ich selbst gesehen habe und nur ein junger Bock bin. Es ist also interessant zu sehen, wie jemand mit Erfahrung die gleiche Beobachtung macht.
Wayne Werner