RPG IV, A Modern Language
In 2001, with the release of OS/400 V5R1, RPG IV offered even greater freedom for calculations than offered by the Extended Factor-2 Calculation Specification: a free-format text-capable source entry, as an alternative to the original column-dependent source format. The "/FREE" calculation does not require the operation code to be placed in a particular column; the operation code is optional for the EVAL and CALLP operations; and syntax generally more closely resembles that of mainstream, general-purpose programming languages. However, the free format only applies to the calculation specifications. F and D specifications still need to be in column-dependent format.
Today, RPG IV is a considerably more robust language. Editing can still be done via the simple green screen editor (even though syntax checking is not supported for features introduced from OS 7.1 onwards) or it can be edited via PC using IBM's Websphere Development Studio, now named RDi (Rational Development Studio for i) a customized implementation of Eclipse. IBM is continually extending its capabilities and adding more built-in functions (BIFs). It has the ability to link to Java objects, and i5/OS APIs; it can be used to write CGI programs with the help of IBM's Cgidev2 web toolkit, RPGLIB (a collection of hundreds of pre-written RPG IV routines), CGILIB, the RPG Toolbox, and other commercial Web-enabled packages. Even with the changes, it retains a great deal of backward compatibility, so an RPG program written 37 years ago could run today with little or no modification.
Furthermore, with the implementation of the SQL Precompiler, current RPG developers can take advantage of IBM's cost-based SQE (SQL Query Engine). As opposed to the traditional F-Spec approach, where a developer identified a specific access path to a data set, a developer can now implement standard embedded SQL statements directly in the program. When compiled, the SQL Precompiler transforms the invalid embedded SQL statements into valid RPG statements that call the database manager programs that ultimately implement the query request.
OS/400 was later renamed i5/OS to correspond with the new IBM System i5 branding initiative; the 5 was later dropped in favor of just System i. In March 2008 i5/OS was renamed IBM i as part of the Power Systems consolidation of System i and System p product lines. The new Power Systems also adopt more mainstream version numbers, substituting 6.1 for the twenty year old V1R1M0 notation. The latest release is now referred to as IBM i 7.1 and fully supports the RPG IV language, as well as many others. WebSphere Development Studio Client (WDSC) is now referred to as Rational Developer for i (RDi), of which three product levels are available. They are called Rational Developer for i (RDi), RDi Service Oriented Architecture (RDi SOA), and Rational Application Developer (RAD). The new lineup provides in more granular packaging all of the development tools and support previously offered by WDSC and WDSC Advanced Edition.
Some of the more unmodern features of the language include the dependency on the EBCDIC character sets which means that use of UTF-8 requires considerable effort and is quite risky (the programmer has to take responsibility not to get his/her character data mixed up with a single byte CCSID), whereas 16 bit characters (e.g. UTF-16) are supported directly via a separate datatype (Graphic). The threadsafeness of the language is also a bit odd as the compiler team has solved this by giving each thread its own static storage, rather than make the RPG run-time environment re-entrant. This has been noted to meddle up the distinction between a thread and a process (making RPG IV threads a kind of hybrid between threads and processes).
Read more about this topic: IBM RPG
Famous quotes containing the words modern and/or language:
“The medieval university looked backwards; it professed to be a storehouse of old knowledge.... The modern university looks forward, and is a factory of new knowledge.”
—Thomas Henry Huxley (18251895)
“Theoretically, I grant you, there is no possibility of error in necessary reasoning. But to speak thus theoretically, is to use language in a Pickwickian sense. In practice, and in fact, mathematics is not exempt from that liability to error that affects everything that man does.”
—Charles Sanders Peirce (18391914)