It is extremely disturbing to review recent AS/400 developments -- in particular the Version 2 Release 1 announcement details.
When SAA was first introduced, there was concern on the part of the 3X population because RPG was not included in SAA. We assumed that RPG was not a strategic language and, furthermore, that we should not be programming in it, despite the fact RPG was and still is the dominant language on the 3X boxes. IBM subsequently allayed these fears by incorporating RPG into SAA.
Once we had an idea of what SAA was really about, there were a lot of us who raised concerns with regards to the "lowest common denominator syndrome." That, simply put, meant we were afraid that the AS/400 would be shackled because of the limitations of the PS/2 and 370 architecture machines. We were assured by IBM at a number of COMMON conferences that nothing could be further from the truth. IBM stated that SAA was an answer to customer demands for a single operating system, or at least portability of code. Despite IBM's claims to the contrary, it seems apparent that SAA does, in fact, suffer from the "lowest common denominator syndrome."
In retrospect, it appears we made a strategic error in opposing SAA. What we should have been trying to do was to redirect SAA. How many people are going to code in SAA RPG if it means they cannot use subfiles to easily code programs which roll through files, or they do not have DDS available to externally define files? While there have certainly been some non-SAA enhancements made to the AS/400 in V2R1, it is abundantly clear that IBM's resources are primarily committed to SAA products, and not to enhancing the native machine.
Understand what we assume SAA is supposed to mean. Originally, it was supposed to mean that we could develop code under SAA standards such that we could port our code to any of the three SAA platforms -- the PS/2, the 370 architecture machines or the AS/400. The theory behind SAA appeared to be that developing and maintaining a single system would be far less expensive than having to maintain code for multiple systems.
IBM appears to have subsequently decided that what customers really want is to be able to leverage the talents of their technical staffs with standardized interfaces across platforms and to easily incorporate advanced technologies, including cooperative processing, distributed processing and distributed data bases in a non-disruptive manner. Code portability became a side benefit. Well, let's take a look at what SAA means to the AS/400.
By utilizing the standardized interfaces in V2R1 SAA Print Manager, it now takes some two pages of code to do in SAA RPG what you can do with a single Override Printer File (OVRPRTF) command in CL. And that does not include the copied-in code. That's absolute insanity!
If it takes 1,000 hours to develop a system on the AS/400, taking advantage of the native facilities of that machine, and it takes 1,000 hours to develop that same system on the PS/2, taking advantage of the native facilities of that machine--guess what? It's going to take us 4,000 hours to develop the same system under SAA guidelines!
Being able to leverage the talent of our technical staffs, non-disruptively take advantage of advanced technologies, and easily port our code from one platform to another are laudable goals. But IBM is not yet there. And, while these goals may, in fact, be achieved some day under SAA, their achievement will be for naught because of the loss of productivity incurred. It's totally counter productive to expect us to code in a language that has nowhere near the productivity that the native languages on the AS/400 have!
The reason we have AS/400s and the reason the AS/400 is so successful is because it has a proprietary operating system -- and that is contrary to conventional wisdom. Conventional wisdom says open systems are the direction which all vendors must take and the machines of the future will be open systems machines. Most of us in the 3X world will tell you that is not true - - or at least we used to believe it was not true.
The AS/400 has the best operating system of any machine on the market today -- bar none. And what is being done to that operating system is a crime. IBM is garbaging up the system with SAA, ignoring the capabilities of the machine and not exploiting the strengths of the machine simply because it wouldn't be compatible with a PS/2 or a 370. If we wanted to code on a PS/2 or we wanted to code on a 370, we would have bought one instead of an AS/400!
The vast majority of AS/400 customers and potential AS/400 customers are not concerned with SAA -- not if it means a major loss of productivity and a more expensive machine because of the costs of developing software no one is going to use. How many licenses of 370 SAA RPG does IBM expect to sell versus how many licenses will have to be sold to recover development costs? Maybe that's why IBM charges up to $199,900 for 370 SAA RPG!
The bulk of the AS/400s are single-site machines or installed as part of a homogenous network. Most sites have neither an interest in, nor a need for, SAA. Any possible SAA benefits would by far be outweighed by the productivity loss of SAA inherent in the standardized interface approach.
Now a consistent user interface -- yes, most of us have some concern in that area. And most of us applaud the standardization. While we may not have all agreed initially that we should be using Command Key 3 instead of Command Key 1 or Command Key 7, at least there is finally some measure of consistency and everything on the AS/400 now looks and feels the same.
That's fine. But trying to force upon us an SAA architecture that totally kills our productivity is not only economic suicide, it is also doomed to failure. And don't tell us we don't have to use SAA. In fact, what IBM is doing is not enhancing or developing products that take full advantage of the proprietary architecture of the AS/400 -- because of SAA.
The reason we do not have update-capable joins and referential field validity checking in DDS is because they are not part of the SAA definition. The new distributed data base and date and time field types supported in V2R1 require you to use SAA SQL to take advantage of features which should have been available using DDS and RPG, COBOL, and other high level languages and utilities.
I seriously doubt anything is going to reverse the direction of the IBM flagship with regards to SAA. It seems that nothing will deter IBM from SAA. But what we have to do is to redefine SAA, not in terms of the lowest common denominator, but in terms of the highest denominator -- period. And that highest denominator today, without a doubt, is the AS/400, and to some extent the PS/2, in terms of iconic interfaces, graphics capabilities, etc. That's the direction we have to take.
If we are not able to accomplish this and we are not able to get IBM to exploit the architecture of the AS/400 and make the product more cost competitive, then perhaps we should in fact be looking at abandoning the AS/400 and looking at some other architecture.