The IBM AS/400 is well known in the Hotel/Casino industry, here in Las Vegas and
Atlantic City as well. Programmers tend to either be AS/400 programmers, or
non-AS/400 programmers. That is, they either know and love the machine, or steer
clear of it. I haven't come across many non-AS/400 programmers that know much
about it at all, which is very unfortunate for them.
It is unfortunate, because the operating system (the boringly named 'OS/400') is
the best ever created for enterprise systems. Better than Unix. Better than
Windows.
They key features include command prompting, fine-grained security, centralized
logging, work management, and a well organized file system.
The bad part is that you can only run it on an AS/400. I don't want an AS/400. I
want the freedom to continue running Windows, Linux, or Solaris in my computer
room, depending on where I get the best hardware for what I need.
What is needed is a platform independent implementation of OS/400. That is, I want
the best features of OS/400, but written in Java. Ideally, under a non-restrictive
open-source license.
You would think that the geniuses who brought us the internet would have new and
better ways to do all these things. They don't. In fact, a whole generation of
engineers have entered the job market and matured, and never been exposed to any
system with a higher level of organization than Unix.
I once participated in a beta program with a major database developer, and in a
conference call with the core team, the actual engineers who built the engine,
my question was regarding how to set a low priority on a SQL connection, for a purge
or long-running report. E.g., a long-running background task. Their answer was:
"Why would you want to do that?" For them, everything runs at the same task level.
There is no notion of a "batch job".
The amazing realization is that the IBM engineers who developed the System/36, System/38,
and AS/400 had the vision and experience to chart the best course. Feature-wise, the
machine is still far ahead of its competition. And the core concepts were developed
over 20 years ago. Wow.
I've had a go at implementing some of the missing functionality. I have a somewhat complete
J2EE library that implements Work Management, including Jobs, Job Descriptions, Job Queues,
and Subsystems. Without a user-interface, however, its not very useful in a production
environment (yet).
I've also toyed with the notion of trying to implemented the missing features on top
of an Open Source operating system such as Linux. At present, that's just too big
a project for me to consider.
Until I make some kind of progress on this, I'll just have to live with my AS/400 envy.
More information on the AS/400 from wikipedia:
http://en.wikipedia.org/wiki/ISeries