OpenEdge Advanced Business Language: Difference between revisions

Content deleted Content added
subjective ce
No edit summary
 
(3 intermediate revisions by 3 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.<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.<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==
Line 34 ⟶ 32:
==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 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. 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>
* 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]