Back to 1987 rockin' with the "NYNEX/DPI Telco Friendly" system on original System/38, later AS/400. Nice table-driven structures for toll call classing, rating and billing. RPG III was like working in some bizarre structured assembly language with a db query front end... but the granular nature of the filesystem's storage and OS-maintained/enforced file indices were super performers.
Going from the CP/M world of dBASEII/FoxBase and CBASIC to IBM was strange and I remember thinking, "The money's better, but I look forward to unlearning all this some day." I did, and rejoined the ASCII world with no regrets. Except the pay. Did I mention the pay?
I did manage to save my company more than a year's worth of my salary once. Telephone calls were recorded on 6250BPI mag tapes and the ITT 1210 telephone switch dumped call information to the tapes twice a second to clear the queues and protect from data loss. You could see the tapes advancing in little spurts. This resulted in a dismal blocking factor since there is a physical ~1/2" leader per block, and they were required to archive the information for several years in a fireproof vault. The vault was full of these $250 tapes and they were on the verge of building an additional vault!
One day I was puttering around and noticed that the block factor was a major problem. I wrote a simple CL command to recopy and re-block the tapes to regroup the data into blocks 10x the size. After some very careful testing (my supervisor was very dubious at first) they were able to recopy their entire archive and recover 80% of the original tapes.
I admin a few of iSeries, one large LPAR with half a dozen others. We have zSeries and pSeries around too and nothing small.
With regards to iSeries we have developers who have put in place more than a few REST services both with IBM code and Profound Logic code. IBM provides both custom web service programs (think collection of DLLs) and other simpler interfaces. The key is you can reuse a lot of existing code by putting a good web interface on the front of it and your customers would never know.
The number of large companies using the platform is quite high and includes many big names people would not expect as well as a certain major league sport. Overseas it seems more accepted to say you are on one.
Good names for iSeries development are Jon Paris and Scott Klement. See Scott's page at https://www.scottklement.com/
the standard language for coding, RPGLE has morphed through the years to where it is as free form as any other language while being 100% backwards compatible, the confusing part is you can mixed fixed format and free form stuff all at once. With ILE programming you can bind in C and JAVA too.
For the most part these hang on and get new deployment because of a combination of code that works every day and that business math while simple has to be sure. Throw in that the system is in effect a DB2 database with full support for SQL and more and its easy to see its longevity. Now if someone can convince IBM to not keep renaming it.
Early in my career I programmed the IBM System 36 and always envied the System 38 for having RPG III instead of the RPG II we were stuck with. When the AS/400 came out I was even more envious!
I began my programming career in 1997 with the IBM AS/400 and a Windows version of a 5250 terminal emulator. Setting up an intelligent colour scheme was considered a talking point at water towers. COBOL and RPG were the only two business compilers on it and DB/2 was stock. DB/2 kicked ass as it was one of the few RDBMSs at that time to allow new generation heretics like us to do in-line SQL directly in our COBOL and RPG "pgms". I still remember the animated discussion the older members of the team had arguing against direct SQL in the COBOL programs. "Rather stick to OPEN file, (sequentially) READ file, DO WHILE loops with NESTED IF statements to select your records into WORKING MEMORY. And don't forget to CLOSE the damn FILE!"
I also fondly remember that all our compiles had to be done by exiting the editing screens and separately scheduling a BATCH job for the compile, and then reading the output of the BATCH job to see if your PGM compiled successfully. If not, you'd have to read the JOB LOGS to see where you committed syntax errors. No debugging at runtime, no IDEs. You had to read your own code top to bottom, scatter a few PRINT statements around (also viewed in the JOB LOGS) to see if your PGM worked at all.
One of the many things that amazed me at that time (1997) was that AS/400 had a robust ODBC CLI for both Windows and OS/2 Warp. This allowed the pointy haired bosses to enjoy results of data warehouse projects directly from their Windows PCs using Microsoft Access (of all things). In Comic Sans fonts to boot!
EDIT: Oh, I forgot to mention - I still haven't seen documentation for systems, compilers and databases as useful, user-friendly and comprehensive as the manuals compiled, printed and bound by IBM. There was absolutely no need for Google.
OS/400 -- now called IBM i -- sounds like it was ahead of its time:
IBM designed IBM i as a "turnkey" operating system, requiring little or no on-site attention from IT staff during normal operation. For example, IBM i has a built-in DB2 database which does not require separate installation. Disks are multiply redundant, and can be replaced on line without interrupting work. System administration has been wizard-driven for years. This automatic self-care policy goes so far as to automatically schedule all common system maintenance, detect many failures, and even order spare parts and service automatically.
Another peculiar feature is that this system was one of the earliest to be object-based. Unlike traditional OSes like UNIX and Windows NT, there are no files, only objects of different types. It implemented one of the earliest-known systems for persistent objects. Further, the objects persist in very large, flat virtual memory, called a single-level store.[1]
Tandem was doing the same thing as far as redundancy and ordering it's own maintenance. Tandem even had redundant CPUs that would execute instructions in lock-step and compare results. They were very popular in banks.
There are stories of parts showing up without customers even being aware any hardware had failed because they were so reliable.
> The IBM Future System (FS) project was a design effort to succeed the IBM S/370 architecture that was adopted company wide in 1971. FS was based on a single-level store with automatic data management. The project is reputed to have cost more than $1B when it was cancelled in February 1975, but the single-level store idea was adopted by System/38, AS/400, and iSeries.
Single-level store is IBM's cutesy way of saying that there's no application-level distinction between disk and RAM: It's all data, applications access data (or don't, depending on a security model), and the OS handles persistence the same way it handles caching; that is, transparently.
Anyway, security was important to IBM, particularly the security to be free from people making clones of FS hardware. This had unfortunate effects on the systems's comprehensibility:
> Some suggest that this memo[0] was the beginning of the end of IBM’s Future System. The section of the memo with “security” in the heading, concerns keeping the architecture secret, from most of those working on the project. Quote:
>> Tight security prevents a potential thief from stealing a system design. But good communication is necessary to design a system that is worth stealing. The recent version of the RIPON architecture has been issued in 15 separate, registered confidential documents. A programmer who gets authorization to learn about the addressing structure has to demonstrate a separate need to know to learn the instruction set. The avowed aim of all this red tape is to prevent anyone from understanding the whole system; this goal has certainly been achieved.
> In 1978, a scaled-down version of FS was announced as System/38. The greatest strength of HLS, AFS, and System/38 was a “one-level store”: a virtual memory that eliminated the distinction between RAM and files on disk drives. That made System/38 much easier to program than earlier computer systems or even most systems today. But the instruction set of System/38 was essentially System/370 with descriptors. The microcode of any 370 system could have been modified to support it, and programming for FS could have begun in 1971.
> As another option, John Cocke had designed a RISC machine, which eventually became the Power PC. In 1994, under the name AS/400, it ran a later version of the System/38 software. But as early as 1971, Cocke had persuaded the AFS group that a conventional computer with the HLS descriptors and a well-designed compiler could run the FS software. That computer could be a modified System/370, his RISC design, or both. The first FS machine could have been delivered as an “option” of the IBM 3033, which was announced in 1977 and delivered in 1978.
> An even better option was a high-speed System/370-compatible machine that Gene Amdahl had designed in 1969. Unfortunately, that project was canceled for political reasons. Therefore, Amdahl left IBM, got funding from Fujitsu, founded the Amdahl Corporation, and delivered his 470 system in 1975. Until the IBM 3033 in 1978, Amdahl’s machine was much faster than anything IBM was selling. With suitable microcode, a design by Cocke or Amdahl could have served as the high-end hardware for FS. System/38 would have been the entry-level version for smaller systems.
Awesome. I've been wanting to get an AS/400 for quite a while, but every time I look they cost much more than I would spend for that side hobby. Plus, a lot of them seem very clunky (more so if you're willing to spend less, it seems), and then it wasn't always entirely clear to me whether I'd separately need to buy licenses.
AS/400 (or iSeries now) is so very different, but with many interesting concepts that did not end up getting used in mainstream desktop and now server computing, that it always seemed very compelling to play around with. Take the 128bit flat address space for example, that addresses both memory and storage.
> 1994
>A new generation of AS/400 computers called the AS/400 >Advanced Series is introduced in
>May, including the AS/400 Advanced System, AS/400 Advanced >Server and the AS/400
>Advanced Portable.
I have one. Even at the time it was considered a toy, too small to do anything serious. Another 9401 model called "Advanced Entry" was significantly more capable, and was the smallest anyone would actually buy. Documentation (last updated in 2013, about 20 years after the machine was current): http://www-01.ibm.com/common/ssi/printableversion.wss?docURL...
Battleship, blackjack, minesweeper, video poker...
That site has a bunch of useful stuff on it, actually.
Zend also has PHP which you can install. And IBM has WebSphere which is based on an ancient version of Apache, you can actually serve web pages with it, and build your own web apps that interact with DB2. Fun stuff!
What you want to do is find a copy of IBM iAccess tools (iNavigator etc) and you can do some fun stuff with it.
As as been pointed out elsewhere S/38 AS/400 OS is a SASOS (Single Address Space Operating System). However, the other really new innovation was the capability based security system. This was based on the 9 bit byte. Object pointers had to have the 9th bit set throughout to be legal pointers. Only a limited number of instructions could produce a validated pointer. It was physically impossible to construct a pointer except through the security system. I very much doubt that an AS/400 has ever been hacked.
I know many, many, many companies still using AS/400 daily. And in about 30m i will be making a demo of a logistis software to be integrated with AS/400. It's still alive and in good shape!
I am using this system (IBM i) daily. Mostly supporting clients who want to run Node.js (or some other open source package) on there system.
I also maintain a basic IDE for writing code on this OS (replacement for SEU, which was used in the article) and IBM also supply Rational Developer for i.
The OS gets one or two large patches a year, but generally not many new 'features'. I've done and still do my fair share of RPG and ILE C on this system too.
> There are no games, no leisure programs, only business.
Back in the late 90s, for some reason I had to attend work the last week of the year. There was barely anything to do, so I entertained myself doing an AS/400 Reversi game. It had a rudimentary AI inspired by the way the CPU played the same game on my cheap Ericsson phone: most squares had a value (3 for corners, 2 for notable squares and 1 for everything else), and it just summed up the values of the squares that would be captured with each possible move.
I was sure more games had to exist out there, but in retrospective, AS/400 were expensive to run, and I guess nobody wanted to be caught using it to make or play games.
There was (is?) a whole suite of games for the /36 system, which would presumably also run on the AS/400. This suite included Black Jack, dice games, and a very nice adventure game, which I enjoyed playing in the 80s as a kid on my dad's /36 (for which he ran a business). The screen showed a map with treasures, enemies, coins, and other stuff. You could move around, fight monsters and do trading. An interesting feature was that the weight of stuff you carried around mattered. And since one coin had a weight of 1 (whatever weight unit), it often made sense to overpay for an item so you could reduce the overall weight you were carrying around. Unfortunately, I don't remember the name of the game and I also don't have the gaming libraries anymore. I have an AS/400 (even two of them, hehe) and I would love to run the adventure one more time :-)
Wow, interesting! My first real job involved several as/400 machines. If the OP of this blog is reading here, you should try to get a program called "iSeries client access". There are GUIs for administering a lot of the things now. It also comes with DB2 drivers and soforth.
Something like this is kinda how my whole career in the tech industry started.
A little backstory: I was taking classes at Brunswick Community College, working on an A.S. in Computer Programming. I knew the instructor who taught a lot of the programming classes, because I'd had him as an
instructor on my previous go-round at BCC, when I took a couple of programming classes as electives.
Anyway, I signed up for a class titled something like "Survey of Operating Systems", where I had presumed I'd learn all about Windows, and maybe some kind of Unix (this was about 1996, so Linux wasn't ubiquitous yet). So I show up for the first day of class, and the instructor was like "Oh, Phil, I have something for you."
He proceeds to point me to a room with a huge behemoth of a machine, which appears to be some kind of computer, along with several boxes of tape reels, and a stack of bound manuals about as tall as myself. "Install the OS on that AS/400, and get it running and connected to the Internet, and you're done for the semester with an 'A'", he tells me.
It took a while... I mean, I was still pretty green in those days, and I'd never touched an AS/400 before. But with lots of trial and error, digging through manuals, and blood, sweat, and tears, I managed it. I guess he was impressed, and took a special interest in helping me find a job, as a little later he referred me to what would become my first job in the IT industry - as an AS/400 operator / Netware administrator for a little scientific glassware manufacturer in Wilmington.
There was no programming involved, but it paid better than working as a parts clerk at Advance Auto Parts, and I got to gasp work with computers professionally! Hey, that was a big deal for this young kid in 1996. Even better, it was an evening shift job, so I could still go to school by day, and then work at night.
I wound up spending a couple of years doing a lot of AS/400 related work while I was working my way through college. Never did any programming on them professionally though, even though I took two semesters of RPG programming in college.
Note: if you're wondering... the machine I had to work with was MUCH larger than the one in the story linked here. I'm not sure what the vintage of the thing was, but it was old enough that some company had decommissioned it and then donated it to the college I was at. So I'm pretty sure it was several generations older than the one shown in the article.
Also of note: the machine in question supported telnet, but as the article notes, AS/400's use a 5250 terminal by default, not something like the more familiar VT-100 (or related). Of course I didn't have a 5250 terminal emulator program available, but it turns out simple telnet client was enough to at least log in, even though it was hard to do some things since the AS/400 interface is so menu and command-key driven. I don't know if tn5250 existed back then or not, but I found it and started using it at some point.
I learned programming on some old AS/400 in school. The server was standing at the local state office and we had an ISDN connection there from school. I remember the manual stack, it was a couple of meters in the shelf.
We used 286 computers with windows and a terminal emulator that converted the control buttons to enter.
The server was shared with the states programmers as their test server so we had to wait our turn for compiling and running code. Could be a good 20 minutes to get the output of the program on the printer sometimes :-)
Tried getting a job as an RPG programmer in some companies in the area but all that was about to buy one ended up going with PC's instead. And the ones that had an AS/400 decommissioned it so didn't need programmers. But I did some work for the state, like fixing the y2k bug with birth year in the database :-)
I recall helping IBM to implement an AS/400 system in a local government department here back in the mid 80's. I cannot remember the exact model, but it was definitely a lot larger than the one in the article. Basically the size of two filing cabinets placed front to back. And beige, not black, which would have been way cooler.
I wasn't in charge of the software on that - mainly just helped with hooking it up to the local (Token Ring, IIRC) network in the building. I did however look after the backups on a VAX PDP/8 on another floor in the same building! :)
My uncle's company used to have a System/36, predecessor to the AS/400. It was the size of a large refrigerator turned on its side. I think it had 256K (yes, K) of RAM and 200 megabytes of HD. It had roughly 12 terminals and a couple of huge line printers. Interesting stuff.
In the 90's, they replaced it with a bunch of networked PC's.
Going from the CP/M world of dBASEII/FoxBase and CBASIC to IBM was strange and I remember thinking, "The money's better, but I look forward to unlearning all this some day." I did, and rejoined the ASCII world with no regrets. Except the pay. Did I mention the pay?
I did manage to save my company more than a year's worth of my salary once. Telephone calls were recorded on 6250BPI mag tapes and the ITT 1210 telephone switch dumped call information to the tapes twice a second to clear the queues and protect from data loss. You could see the tapes advancing in little spurts. This resulted in a dismal blocking factor since there is a physical ~1/2" leader per block, and they were required to archive the information for several years in a fireproof vault. The vault was full of these $250 tapes and they were on the verge of building an additional vault!
One day I was puttering around and noticed that the block factor was a major problem. I wrote a simple CL command to recopy and re-block the tapes to regroup the data into blocks 10x the size. After some very careful testing (my supervisor was very dubious at first) they were able to recopy their entire archive and recover 80% of the original tapes.