OpenEdge Advanced Business Language: Difference between revisions

Content deleted Content added
grammar and word replacements
No edit summary
 
(9 intermediate revisions by 9 users not shown)
Line 1:
{{Short description|Business application development language}}
{{AdvertPromotional|date=January 2023}}
 
{{Infobox Softwaresoftware
| name = OpenEdge Advanced Business Language (ABL)
| logo = File:OpenEdge_logo.png
| screenshot =
| caption =
Line 11 ⟶ 12:
| genre = [[Relational database management system|RDBMS]]
| license = Proprietary
| website = {{URL|https://www.progress.com/openedge}}
| logo = File:OpenEdge_logo.png
}}
 
'''OpenEdge Advanced Business Language''', or '''OpenEdge ABL''' for short, is a business application development language created and maintained by [[Progress Software|Progress Software Corporation]]. Typically classified as a [[fourth-generation programming language]], it utilizes an English-like syntax to simplify software development.<ref name="p2">Campbell, John, ''Programmer's Progress, a guide to the progress language.'' white star software, 1991</ref> The language was called '''PROGRESS''' or '''Progress 4GL''' up until version 9, but in 2006, [[Progress Software Corporation|PSC]] changed the name to OpenEdge Advanced Business Language (OpenEdge ABL), in order to overcome a presumed industry perception that 4GLs were less capable than other languages.<!-- year? --><ref name="introABL">Salvador Vinals, Introducing OpenEdge Advanced Business Language (ABL), PSC whitepaper, 2007</ref>
{{Advert|date=January 2023}}
 
OpenEdge ABL helps developers to develop applications optionally using its own integrated [[relational database]] and [[programming tool|programming tools]]s. These applications are portable across computing systems and allow access to various popular data sources without having to learn the underlying [[data access]] methods. This means that the [[end-user]] of these products can be unaware of the underlying architecture.
'''OpenEdge Advanced Business Language''', or '''OpenEdge ABL''' for short, is a business application development language created and maintained by [[Progress Software|Progress Software Corporation]]. Typically classified as a [[fourth-generation programming language]], it utilizes an English-like syntax to simplify software development.<ref name="p2">Campbell, John, ''Programmer's Progress, a guide to the progress language.'' white star software, 1991</ref> The language was called '''PROGRESS''' or '''Progress 4GL''' up until version 9, but in 2006 [[Progress Software Corporation|PSC]] changed the name to OpenEdge Advanced Business Language (OpenEdge ABL) in order to overcome a presumed industry perception that 4GLs were less capable than other languages.<!-- year? --><ref name="introABL">Salvador Vinals, Introducing OpenEdge Advanced Business Language (ABL), PSC whitepaper, 2007</ref>
 
By combining a fourth -generation language and relational database, OpenEdge ABL allows the use of the [[Rapidrapid Applicationapplication Developmentdevelopment]] (RAD) model for developing software.
OpenEdge ABL helps developers to develop applications optionally using its own integrated [[relational database]] and [[programming tool|programming tools]]. These applications are portable across computing systems and allow access to various popular data sources without having to learn the underlying [[data access]] methods. This means that the [[end-user]] of these products can be unaware of the underlying architecture.
 
By combining a fourth generation language and relational database, OpenEdge ABL allows the use of the [[Rapid Application Development]] (RAD) model for developing software.
 
==History==
The original Progress 4GL was designed in 1981 as an architecture -independent language and integrated database system that could be used by non-experts to develop business applications by people who were not computer scientists but were knowledgeable in their business ___domain. At that time, business applications were often written in [[COBOL]] (for machines like corporate [[IBM]] mainframes) and sometimes in [[C (programming language)|C]] (for departmental minicomputers running the UNIX operating system). When the IBM PC became popular, it developed a need for business software that could be used on those and other inexpensive computers. The Progress system was created to be used on both IBM PC machines running DOS and on a variety of computers that could run UNIX and [[minicomputer]] operating systems such as [[OpenVMS]].
 
==Syntax and semantics==
Line 30 ⟶ 28:
Progress ABL is a strongly typed, late-bound, [[English-like programming language]]. Although initially designed as a procedural language, starting with version 10.1 it was enhanced with [[Object-oriented programming|object-oriented]] grammar elements, which can be mixed with the original procedural style. A block of code may have a transaction scoped to it, in which case database changes will be committed when it completes. An error raised within such a block will undo these changes. These defaults may be overridden by the programmer.
 
Simple programs run without a Graphicalgraphical Useruser Interfaceinterface, but there is syntax to create one programmatically, or programmers can use the provided tools to build one.
 
==Examples==
 
===Hello Worldworld===
{{mainMain|Hello world program}}
 
{{main|Hello world program}}
The following ABL code creates a window with the text "Hello, World!" and a button labelled "OK".
<syntaxhighlight lang="progress">
Line 45 ⟶ 42:
HEIGHT = 5
MESSAGE-AREA = FALSE
STATUS-AREA = FALSE.
 
CURRENT-WINDOW = w.
Line 66 ⟶ 63:
VIEW-AS ALERT-BOX INFO BUTTONS OK.
</syntaxhighlight>
Also, you can useThe <code>ERRORINFO</code> parameter controls the message icons, and can be replaced with <code>WARNINGERROR</code> instead ofor <code>INFOWARNING</code> tofor changedifferent the message iconslooks.
 
The simplestmost basic "Hello, World" program, though, is this:
<syntaxhighlight lang="progress">
DISPLAY "Hello ".
Line 103 ⟶ 100:
(Some assumptions have been made about indexing, locking and transaction scoping in order to keep this example simple.)
 
Data access in the ABL is record -based, asin opposedcontrast to the result-set -based processing found in traditional SQL-based languages. InWhile SQL operations worktypically act on a setsets of records, in the ABL, theprocesses operation is applied to aone record at a time, -similar much liketo using a cursor in SQL but much more efficient. Record-based processing provides a clean and reliable locking mechanism which allows the developer to EXECUTIVE-LOCK, SHARE-LOCK or NO-LOCK a record when accessed by the application.
 
Record-based processing provides a fine-grained locking model, allowing the developer to apply different lock levels (e.g., EXCLUSIVE-LOCK, SHARE-LOCK, or NO-LOCK) when accessing records.
 
This approach can offer predictable memory usage, especially in environments using shared memory connections, where the application and database reside on the same host. In client-server (networked) deployments, however, each record or block of records fetched typically involves a network round trip. For example, with a default prefetch size of 50 records and a network latency of 50 ms, retrieving 1,000,000 records may result in up to 1,000 seconds of latency. This illustrates a potential drawback of record-by-record access in high-latency environments.{{Citation needed|date=August 2025}}
 
==Application areas==
Line 109 ⟶ 110:
The language is used in a wide variety of application areas, some examples:
 
* Mortgage and Autoauto Loanloan Originationorigination at US Banksbanks
* Rental Carcar Reservationreservation Systemssystems
* Manufacturing ERP
* Wholesale Distributiondistribution ERP
* Warehouse Systemssystems
* Transportation Systemssystems
* Commercial Serviceservice Forceforce Dispatchingdispatching
* Security Cardcard Systemssystems
* Gaming Systemssystems (think Las Vegas, not video)
 
OpenEdge can be used for:<ref>{{Cite web |date=2024-01-26 |title=Use Cases of Progress OpenEdge 2024 |url=https://www.trustradius.com/products/openedge/reviews?qs=product-usage |access-date=2024-06-26 |website=www.trustradius.com |language=en-US}}</ref>
OpenEdge can be used for:{{fact|date=January 2023}}
* Microsoft Windows GUI (Graphical User Interface)
* WWW Programmingprogramming (UNIXUnix and Windows)
* CHUI (CHaracter User Interface) (UNIXUnix and Windows)
* JSON and XML appserver programming (UNIXUnix and Windows)
* as well background process programming (UNIXUnix and Windows).
 
==Notes==
 
<references/>
 
==References==
 
* Sadd, J. ''OpenEdge Development: Progress 4GL Handbook'', Progress Software Corporation, {{ISBN|0-923562-04-4}}, {{ISBN|978-0-923562-04-5}}
* Kassabgi, G. ''Special Edition : Using Progress'', Que Publishing, {{ISBN|0-7897-0493-5}}
 
== External links ==
* [{{Official Website|https://www.progress.com/openedge Official Website]}}
 
* [https://www.progress.com/openedge Official Website]
* [https://community.progress.com/community_groups/openedge_general OpenEdge Community]
* [https://docs.progress.com/category/openedge-information-hub OpenEdge Resource Hub]