20 Years in the Making, GnuCOBOL Is Ready for Industry

GnuCOBOL’s Maturity and Standards Compliance

  • Seen as “ready” largely because of stability and high COBOL‑85 conformance (~97% of tests passed).
  • Commenters note that even many proprietary COBOLs never reach full standard compliance.
  • Uses GNU MP for arithmetic to match traditional COBOL fixed‑precision behavior rather than IEEE‑754 floats.
  • Lacks newer COBOL features like objects and messaging from recent standards (e.g., COBOL 2022/2023).

COBOL’s Role in Current Systems

  • Most production COBOL is on IBM mainframes, tightly coupled with JCL, databases (DB2, IMS, DMS), and transaction monitors (CICS, ACMS).
  • Also common on non‑IBM platforms: OpenVMS, OS2200, various Unix flavors, and x86/Linux with vendors like Micro Focus.
  • Used heavily in finance, payroll, billing, ERP, and other “boring but critical” back‑office workloads.

Mainframes vs Cloud and Reliability

  • Mainframes described as engineered for “five nines” availability, with extreme redundancy and very rare downtime.
  • Outages experienced by banks are often blamed on surrounding server infrastructure, not the mainframe core.
  • Cloud “five nines” is criticized as mostly a billing/credit SLA, not true nonstop operation.
  • Some report mainframe environments that are actually brittle in practice, so reliability claims are not universal.

Migration, Ecosystem, and JCL

  • GnuCOBOL is seen as only half a migration story: you still need JCL, CICS‑like transaction monitoring, and mainframe‑style databases.
  • JCL is considered essential for batch; REXX is often used to generate JCL rather than replace it.
  • Many migration attempts (including COBOL‑to‑C transliteration) are described as painful or resulting in hard‑to‑maintain systems.
  • Failed or endlessly repeated modern rewrites of COBOL systems are cited as a common pattern.

Numerical Correctness and “Money Math”

  • COBOL’s decimal arithmetic and fixed precision are key for financial systems.
  • Porting to languages that default to binary floating point is risky; correct equivalents (BigDecimal, etc.) exist but are not idiomatic and can be slow.
  • This mathematical behavior is a major reason organizations hesitate to move off COBOL.

Language Characteristics and Developer Experience

  • COBOL is verbose and data‑definition‑oriented, but many find it straightforward for its intended domain.
  • Strong static data layouts (PICTURE clauses) avoid buffer overflows and memory corruption; memory is explicitly defined, not dynamically allocated.
  • Hard parts are less about syntax and more about domain complexity and mainframe tooling.
  • There is ongoing, albeit niche, new COBOL development, often as part of larger ERP or legacy platforms.

Why Legacy COBOL Persists

  • Core accounting, payroll, and financial rules change slowly; existing systems embody decades of legislation, union agreements, and edge cases.
  • Often no complete set of current requirements exists outside the running code itself; the system is effectively the specification.
  • Incremental changes in COBOL are cheaper and less risky than full rewrites, especially when nobody fully understands all the business logic.
  • Many “old” systems are ships of Theseus: heavily modified over time but never fundamentally replaced.

Adoption Prospects and Skepticism

  • Enthusiasm for GnuCOBOL as a free, standards‑oriented compiler and potential migration tool.
  • Skepticism that large mainframe shops will switch due to regulatory constraints, ecosystem lock‑in, and risk aversion.
  • Some doubt whether many greenfield projects would ever choose COBOL today; most expect it to remain a maintenance and incremental‑change language.