Years ago, to talk about what language to use when you were going to write a program would be somewhat silly. You would use the language that came with the computer. Often, you would only have one language to work with - COBOL, RPG, BASIC, PL/I, C, or whatever. As microcomputers came on the scene, you still had few options beyond BASIC and Pascal, due to the small amounts of memory available. This, of course, changed as time went on, but if a shop had a particular language they worked with, they generally wanted to use that language only.
An interesting example of this was the situation a fellow RPG programmer once told me about. It was an engineering shop, apparently, but the only computer available was the IBM System /34 or System/36; the only language available on the machine was RPG. They had scientific calculations to do; so they got together with the programmer and described to him how sines, cosines, and suchlike things were calculated, and he proceeded to implement those calculations in RPG, which didn’t have much to work with in mathematical opcodes except ADD, SUB, MULT, DIV, and SQRT (square root). Apparently the results were acceptable.
Today, however, many more options are available. As AS/400 programmer now has RPG, COBOL (probably few installations have both, since they cover the same business programming ground), C, C++, Rexx, Java, and no doubt others. I have even come across a website that made available a Python interpreter for the iSeries (AS/400). If a person has a function for which he believes C provides a better alternative, he can, by implementing the proper subprocedure hooks, use that C function in his RPG IV program.
If you are a PC programmer, the answer is clear- learn whatever you need to learn. Get a book, take a course, play with the new language and learn it. It is easier these days, because it is quite possible that the new language you wish to learn has some compiler and/or IDE (Integrated Development Environment) available free for download.
It is not so easy for the AS/400 programmer. Even mainframers needed to learn CICS, an external package, if they wanted to create interactive programs. However, on the System/34, System/36, System/38, and AS/400, the midrange had no need to go outside the minicomputer framework to do normal processing. They had SDA(Screen Design Aid) to design screens, and the RPG program could interact with the “display files” created by SDA to handle interactive data entry. The screen was treated just like any other data file that the programmer could read.
Now, the demands of the marketplace are pushing on the IBM midrange. IBM has steadfastly refused to give the RPG programmer a tool that he could use to create Web access HTML. External tools have been produced within IBM, like CGIDEV2, but they have never been sponsored by IBM as a preferred tool; those who use it seem to be viewed almost as guerrilla warriors in a battle against… what?
Java was the first thing IBM gave us to access the Internet. They were really gung-ho on it. They were so obtuse that they put ads in trade publications implying that if you didn’t set RPG aside and learn Java, you would end up flipping hamburgers at McDonald’s. (Hopefully, the person who designed that ad campaign was canned. But maybe he was only doing what he was told…)
But that didn’t work. Java was and is used by some adventurous and smart programmers, but for the most part it laid an egg in the AS/400 community. The learning curve was far too steep and long.
In the meantime, third-party software firms have stepped into the gap to provide solutions for the problem. But for those who don’t really want to be tied to an outside source, the problem still remains.
So now, IBM steps in and says the solution is EGL- another programming language. Even if it is easier than Java, why doesn’t IBM get the point? Why can’t they listen to the programmers who want natural access from RPG to the Internet instead of the Rube Goldberg apparatus they have been given? Why can’t they just mainstream CGIDEV2, or just create another, more direct access to create HTML? They even have an HTML keyword in DDS (the Data Description Specifications used to build data entry screens). If all they did was create a way to allow those HTML specifications to be built by SDA or something similar, it would be a step forward. The RPG programmer doesn’t need to produce HTML capable of showing an avatar of the customer running the 100 meter dash at Beijing. All the customer (or whoever) wants to do is enter data- he doesn’t need, and likely doesn’t want, anything too clever or sexy.
The real problem becomes that a company who needs to maintain its systems has to find programmers who know multiple languages, or it must find individuals who know both languages. If any other language is used but RPG, that code is going to have to be maintained by someone who knows the language. These individuals are hard to find. Non-RPGers don’t seem to care to come in and learn RPG-it is an “old” language. And RPGers have been spoiled too long in an environment that supplied all their language needs without going “outside” the AS/400 world. They want to do their job within the RPG framework, not go outside and be forced to use a new language. Aaron Bartell, a fine young RPG/Java programmer, talks about the problem of multiple languages in a blog post:
“We are reaching a point in the IT dept infrastructure where “framework evaluator/builder” is actually going to be a job description. I predict that in the next 5 to 8 years we are going to find that people will see the mess they created by adopting 5 different languages for different apps based on a variety of personnel hires, vs. sticking it out with whatever language they are most competent in (whether that be RPG, .NET, Java, EGL etc). “
So what can be done? I don’t know. Whether you talk about the RPG person reaching out, or the outsider reaching in, there is a problem. The outsider is prejudiced. The RPG programmer is getting older (and if he is my age, a little more tired; is tireder a word?), and unless his intellectual curiosity is high, he will not see the point in reaching out, especially if his shop is not reaching out to the Net or already have other personnel dedicated to that task.
It’s just a shame that IBM, for all their brain power, can’t give their AS/400 programming customers what they want- and I don’t mean another language.