CL, RPGLE

From Wikipedia..."The IBM i Control Language (CL) is a scripting language for the IBM's IBM i platform (previously called OS/400 when running on AS/400 systems) bearing a resemblance to the IBM Job Control Language and consisting of an ever expanding set of command objects (*CMD) used to invoke traditional AS/400 programs and/or get help on what those programs do. CL can also be used to create CL programs (congruent to shell scripts) where there are additional commands that provide program-like functionality (IF/ELSE, variable declaration, file input, etc.)"

From Wikipedia..."RPG is a high-level programming language (HLL) for business applications. RPG is an IBM proprietary programming language and its later versions are only available on IBM i or OS/400 based systems. It has a long history, having been developed by IBM in 1959 as the Report Program Generator - a tool to replicate punched card processing on the IBM 1401 then updated to RPG II for the IBM System/3 in the late 1960s, and since evolved into an HLL equivalent to COBOL and PL/I. It remains a popular programming language on the IBM i operating system, which runs on IBM Power i platform hardware. The current version, RPG IV (a.k.a. ILE RPG), provides a modern programming environment."

From Ross...RPG and CL have been used for software development on IBM midrange systems for decades. CL is an extremely flexible and granular control language for controling system functions and can be run through scripts, from a command line and from inside RPG application code. RPG applications generally interact with users through 5250 emulation although it can be used to write CGI programs that can use a web browser as the interface. RPG code is extremely good for developing applications that do not require a GUI interface as it has "native" access to the iSeries DB2 database and executes and renders on the 5250 screen very rapidly. Sub second response times in interactive applications is the norm even in applicaitons that make complex queries to the database and return large result sets.