Est. 1981 Intermediate

OpenEdge (Progress 4GL)

Progress Software's English-like fourth-generation language with a tightly integrated relational database, powering enterprise business applications for over four decades.

Created by Data Language Corporation (Joseph Alsop, Clyde Kessel, Mary Szekely, Chip Ziering)

Paradigm Multi-paradigm: Procedural, Object-Oriented
Typing Static, Strong, Late-bound
First Appeared 1981
Latest Version OpenEdge 12.8 (January 2024)

OpenEdge ABL — historically known as Progress 4GL — is a strongly typed, English-like fourth-generation language built around a tightly integrated relational database. For more than four decades it has been a quiet workhorse of enterprise software, letting small teams build and ship complete data-driven business applications without stitching together a separate language, database, and data-access layer.

History & Origins

Data Language Corporation (1981)

The language was designed in 1981 at Data Language Corporation (DLC), a company founded the same year by Joseph Alsop, Clyde Kessel, Mary Szekely, and Chip Ziering. Joe Alsop served as the company’s longtime CEO. The “DLC” name survives to this day as the default installation directory for Progress and OpenEdge products.

From the outset the product paired a programming language with its own integrated database, deliberately designed to be architecture-independent so applications could move across the many minicomputer and Unix platforms of the era without rewrites.

From DLC to Progress Software

In 1987 the company renamed itself Progress Software, after its flagship product. In 1991 Progress Software completed an initial public offering and listed on the NASDAQ exchange under the ticker symbol PRGS, where it trades today.

Rebranding as OpenEdge (2000s)

The OpenEdge platform branding arrived with version 10: OpenEdge 10.0A shipped in late 2003, followed by 10.0B in 2004. In 2006 Progress officially renamed the language itself from “Progress 4GL” to “OpenEdge Advanced Business Language” (OpenEdge ABL) — a move widely understood as an effort to counter the industry perception that 4GLs were less capable than mainstream third-generation languages.

Design Philosophy

Progress ABL was built on a few durable ideas:

  • The database is part of the language. Database access is a first-class language construct rather than an embedded-SQL afterthought. Tables, record buffers, transactions, and queries are written directly in ABL syntax with full awareness of the schema.
  • Record-based, not result-set-based. ABL processes data record by record (for example, FOR EACH Customer:), in contrast to the set-oriented processing of traditional SQL languages. This data-centric model maps naturally onto business reporting and transaction logic.
  • Readable, English-like keywords. Statements such as DEFINE VARIABLE, DISPLAY, and FOR EACH make programs approachable and self-documenting.
  • Architecture independence. The same application source could be deployed across a wide range of operating systems, a major selling point in the heterogeneous Unix and Windows world of the 1980s and 1990s.

A First Look

The idiomatic Hello World is a single statement:

1
DISPLAY "Hello, World!".

A short example shows the data-centric style, iterating over database records and displaying them in a screen frame:

1
2
3
4
5
6
7
8
DEFINE VARIABLE iCount AS INTEGER NO-UNDO.

FOR EACH Customer NO-LOCK:
    DISPLAY Customer.Name Customer.Balance.
    iCount = iCount + 1.
END.

DISPLAY iCount LABEL "Total Customers".

Here FOR EACH walks the Customer table directly — no connection objects or query-result cursors required — and NO-LOCK controls record locking. The DISPLAY statement renders fields into a frame, ABL’s unit of screen layout for both character (CHUI) and graphical (GUI) interfaces.

Key Features

Integrated Database

The Progress/OpenEdge RDBMS is the platform’s signature feature. Because the language is schema-aware, developers reference tables and fields by name with compile-time checking, wrap logic in transaction blocks (DO TRANSACTION: ... END.), and rely on built-in buffering and locking — all without a separate data-access framework.

DataServers

Introduced around Version 6, DataServers let ABL applications read and write non-Progress databases (such as Oracle and Microsoft SQL Server) using the same record-based language constructs, broadening where Progress applications could be deployed.

Procedural and Object-Oriented Styles

ABL began as a procedural language organized around internal and external procedures. Object-oriented programming — classes, inheritance, interfaces — was added in OpenEdge 10.1, and the two styles can be mixed within an application, letting legacy procedural code coexist with newer class-based design.

Application Server Components

  • Classic AppServer — the original server for hosting ABL business logic and serving it to remote clients.
  • WebSpeed — a long-standing component for building web and transaction applications in server-side ABL.
  • PASOE (Progress Application Server for OpenEdge) — the modern, Tomcat-based application server that first appeared in the OpenEdge 11.x line (reportedly in 11.5) and became the standard in the 12.x line, superseding the classic AppServer.

Evolution

EraReleaseNotable additions
1981Designed at DLCLanguage + integrated database
1989Version 6DataServers for foreign databases
1991Version 7Graphical user interface support
1995Version 8Expanded development toolset
1998Version 9Dynamic queries, ADM2 framework (last “Progress 4GL”)
2003–2004OpenEdge 10.0OpenEdge platform branding
2005OpenEdge 10.1Object-oriented ABL
2012OpenEdge 11.0PASOE arrives in the 11.x line (11.5)
2019OpenEdge 12.0Modernized runtime and app server
2024OpenEdge 12.8Long-Term Support release

Version-specific years for the older releases are drawn from community lifecycle records and Progress documentation; individual minor-release dates should be treated as approximate.

Current Relevance

OpenEdge is actively developed and supported by Progress Software Corporation (NASDAQ: PRGS). The latest Long-Term Support release, OpenEdge 12.8, shipped in January 2024, and the 12.x line continues to receive maintenance. According to Progress’s platform documentation, OpenEdge runs on Microsoft Windows and on Linux distributions, with a long history of support across commercial Unix platforms; for an exact, current operating-system matrix, the authoritative source is the official OpenEdge Platform & Product Availability Guide.

The platform’s center of gravity remains the large base of mission-critical business applications written in ABL — most visibly QAD’s ERP suite, but also countless mid-market manufacturing, distribution, financial-services, and logistics systems. These applications, often maintained for decades, give OpenEdge the kind of longevity associated with COBOL: not fashionable, but deeply embedded in the operations of the businesses that depend on it.

Why It Matters

OpenEdge (Progress 4GL) is a case study in the productivity promise of the fourth-generation language movement. By folding the database, the data-access layer, the UI framework, and the programming language into a single coherent environment, it let modest teams deliver complete enterprise applications — and then keep them running, and evolving, for thirty or forty years. Its survival into the 2020s, still commercially supported and still underpinning major ERP platforms, is a reminder that a well-integrated, business-focused toolset can outlast many of the more celebrated languages that came and went around it.

Key Takeaways

  1. 40+ years old and still actively developed by Progress Software.
  2. The database is built into the language — record-based access, not embedded SQL.
  3. English-like 4GL syntax with constructs like FOR EACH and DISPLAY.
  4. Procedural roots plus object-oriented ABL since OpenEdge 10.1.
  5. Renamed Progress 4GL → OpenEdge ABL in 2006, with OpenEdge branding from 2003–2004.
  6. Powers QAD ERP and a broad base of enterprise manufacturing, finance, and logistics applications.

Timeline

1981
Data Language Corporation founded; the Progress language and integrated database designed as an architecture-independent system
1987
Data Language Corporation renames itself Progress Software, after its flagship product
1989
Version 6 released, introducing DataServers for accessing non-Progress databases
1991
Progress Software completes its IPO and lists on NASDAQ (ticker PRGS); Version 7 adds graphical user interface support
1995
Version 8 released, expanding the development toolset
1998
Version 9 released with dynamic queries and the ADM2 application framework — the last release to carry the 'Progress 4GL' name
2003
OpenEdge 10.0A released (followed by 10.0B in 2004), introducing the OpenEdge platform branding
2005
OpenEdge 10.1 introduces object-oriented programming (classes) to the language alongside its procedural roots
2006
The language is officially renamed from Progress 4GL to OpenEdge Advanced Business Language (ABL)
2012
OpenEdge 11.0 released; the 11.x line later introduces the Tomcat-based Progress Application Server for OpenEdge (PASOE), which first appeared in OpenEdge 11.5
2019
OpenEdge 12.0 released, modernizing the runtime and application server architecture
2024
OpenEdge 12.8, a Long-Term Support release, ships in January

Notable Uses & Legacy

QAD ERP

QAD's manufacturing ERP products (MFG/PRO and QAD Enterprise/Standard Edition) are built in Progress ABL and run on the OpenEdge database, serving global manufacturers.

Manufacturing & Supply Chain

Widely used for ERP, warehouse management, and transportation/logistics systems where the bundled database and 4GL lowered development cost.

Financial Services

Powers mortgage and auto-loan origination systems and related back-office business applications.

Retail & Distribution

Used to build point-of-sale, inventory, and distribution applications for mid-market enterprises.

Reservation Systems

Historically used for rental-car reservation and other transaction-heavy booking systems.

Language Influence

Influenced By

None widely documented

Influenced

None widely documented

Running Today

Run examples using the official Docker image:

docker pull
Last updated: