12

The IBM AS/400, formerly known as System/38, subsequently known as i (sic), is remarkable in being essentially the most future-proof of all the minicomputers, thanks among other things to the use of byte code to screen programs from the CPU; this was conceptually similar to Java and .Net byte codes, but instead of being an optional extra, it was the only format in which applications were distributed, so seamless upgrade of CPU architecture was guaranteed to be possible. As a result, when the eighties became the nineties and other minicomputers like VAX and Wang were dead or dying, the AS/400 was just hitting its stride.

The first half of this is a good plain-English overview; the second half is the best computer marketing video I have ever seen: https://www.youtube.com/watch?v=5pY6Xxptp9A&ab_channel=AndyK

What programming languages were most commonly used on this system in the nineties? Of course, it ended up supporting every language under the sun (no pun intended) just by virtue of being used widely enough for long enough, but which ones tended to be actually used at that time? Probably not Fortran; the marketing guy in the above video was asked how many MIPS the system could do, and he replied, what are you going to use the machine for, solving the Schrödinger equation, or running payroll? But COBOL and RPG would surely fit. Was there a culture of continuing to use these old languages, or of moving to Pascal, C and C++ that were popular on microcomputers? Did the Java trend come to the AS/400? Was it a stronghold of PL/I? Did Smalltalk ever have its day on that machine?

5
  • 3
    "...the use of byte code to screen programs from the CPU;" Possibly a lesson learned from System/360, in which different members of of the product line had substantially different hardware architectures, but most were micro-programmed so that they all implemented the same instruction set architecture. Commented Feb 21, 2021 at 19:49
  • 2
    I worked 9 years writing Java software on and against the AS/400, with colleagues writing in OPM Cobol. The JVM was rock solid and well supported, and superficially looked like AIX but underneath it was just different. I really liked the way IBM used the library path for everything, but spent a lot of time figuring out how to emulate that in Java. Commented Feb 23, 2021 at 0:21
  • 1
    Also your assumption that just because it was used, every language under the Sun was supported is just wrong. This was most likely why PASE was created - to get access to the AIX ecosystem on this platform. Commented Feb 25, 2021 at 14:47
  • 2
    Small detail, but the AS/400 was not formerly known as System/38. AS/400 was the successor of both S/36 and S/38. I graduated moving an AS/400 security system from S/36-mode to native-mode. The AS/400 was very much based on the S/38 technology, but as far as I remember it didn’t have a S/38-mode, like it had a S/36-mode. Both S/36 and S/38 were replaced by AS/400.
    – ABM K
    Commented May 4, 2023 at 5:47
  • 2
    Clarification/expansion. Though byte code was used, it was generally turned into real code the first time it was run on a new platform. After that, it just ran the real code.
    – paxdiablo
    Commented May 4, 2023 at 21:14

1 Answer 1

20

IBM i is actually the name of an operating system rather than the hardware. So, it is the successor to OS/400 rather than AS/400. The current hardware is IBM Power Systems. These can also run AIX and Linux.

There was also the name iSeries between AS/400 and i.

Regardless of its name, RPG has been the dominant language though it has also changed a lot. Today, Java may rival it but whether it is ahead of RPG will depend on whether you are counting new programs being written or programs in use.

Cobol is far behind RPG. PL/I used to be popular for the odd tasks that RPG and Cobol struggled with. C has been gradually taking over this role. Anything else is minor e.g. C++. Basic is (was?) available but I have never seen it used. I don't think that a Fortran compiler was ever available.

A complication today is that the OS contains AIX so it can run anything that AIX can. (The Portable Application Solutions Environment or PASE for short.) In this indirect way, Fortran would be available. Also, the hardware can be split into logical partitions, some may be running i while others run AIX or Linux.

Addition

I did a little more research and I found this: Programming Languages Supported by the IBM i Operating System

I see that Fortran and Pascal are supported but the EPM is very significant. I had forgotten about it.

OPM, original program model, is how the system used to work. It did not support any Unix like linking. One source file became one executable program and tens of thousands of lines were not uncommon.

I had totally forgotten EPM, extended program model, until I found that page. I probably dismissed it as a bad dream, it was the first attempt to support C. It allowed the AS/400 to claim to support C but it was close to unusable.

ILE, integrated language environment, was the next and more successful attempt to support C but it was a major change. It made the system much more Unix like.

Java came next and required yet further dramatic changes to the OS.

Later again, a full copy of AIX was buried into the OS. You can now run Python but it is just as if you are using AIX. A lot of new software is actually AIX including the JVM for Java.

Further addition

In the link above, Basic, PL/I, and Pascal are labelled PRPQ. I had to remind myself what that meant. It is Programming Request Price Quotation. An approximate translation is: we will make up a price when you ask. It is not a standard price list item. These are products that IBM would like us to forget about.

Yet another addition

CL is Command Language. It is a rough equivalent to Windows batch files, Unix shell files, or job control language but it is more complex than any of those; for example it can even read a database file and handle a terminal. A further oddity is that it is compiled.

An obscure entry is MI: Machine Interface language. In the original program model (OPM), high level compilers generated an intermediate language called MI which went through a second stage compiler. This intermediate code was stored in the object and allowed the second stage to be rerun if the program was restored to different hardware (e.g. CISC to RISC). It was not widely publicised but it was possible to write MI and run the second stage compile. This gave access to deeper functions within the system. The new ILE program model uses a similar two stage compile for the same reasons but I am not aware of the ability to program in the new intermediate language.

There are / were further IBM only languages but I think that they are beyond the scope of this note.

14
  • 1
    I am struggling to remember or resesrch the role of Smalltalk on the AS/400. Smalltalk running elsewhere could access the AS/400 but I don't recall whether it could run on the AS/400 itself. I have a vague memory of a Smalltalk run time. In any case, the number of Smalltalk programs on the AS/400 will be somewhere between zero and very few.
    – badjohn
    Commented Feb 21, 2021 at 17:55
  • 1
    I was chatting with an IBM employee last year who said even today PL/I (a modern version) is used quite a bit on, ummm, z-series? Which I think is the new name for OS/400? Commented Feb 21, 2021 at 22:41
  • 3
    @OwenReynolds: z-series is the latest name of the mainframe family that started with the IBM 360. OS/400 has nothing to do with that, you may be thinking of OS/390, which was a previous name of z.OS. Commented Feb 21, 2021 at 23:15
  • 1
    @OwenReynolds As John Dallman says, zSeries is a new name for the mainframe. At the same time, the AS/400 was renamed as the iSeries and the RS/6000 as the pSeries. Later still, the hardware of the iSeries and the pSeries merged. PL/I is used on the zSeries and the iSeries and so is Cobol but, nonetheless, they are very different machines.
    – badjohn
    Commented Feb 21, 2021 at 23:29
  • 2
    I agree on the business orientedness. This is an expensive system so you only buy it if you need it. Consider it an 18-wheeler truck - you only get one of those if you need to actually transport things. Commented Feb 23, 2021 at 0:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .