Java, .NET on iSeries Programmers Minds, RPG in Their Blood
June 1, 2004 Timothy Prickett Morgan
In April, we polled the readership of our OS/400 newsletters about their programming preferences and the composition, by language, of the applications at their shops. RPG may not be the only language in use at OS/400 shops, which also have lots of Windows servers and a smattering of Unix, Linux, and other platforms, but it dominates. However, our survey suggests that OS/400 shops are expecting to code in new languages alongside RPG as they modernize their applications.
Before I get into the specifics of our Guild Companies poll (which was written very quickly just to test some new survey software), I want to point out that it really was a straw poll. I do not claim that the data in the presentation accompanying this story is statistically uncontestable. It is just an interesting starting point for a dialog as we all contemplate what the eServer i5 means in OS/400 shops that are anticipating the adoption of Java and .NET, as well as a slew of other languages, like php, Perl, and Python. I also would like to apologize for the confusion the survey format caused some of you. I think it held down responses by requiring that every line of every question be answered. I think we got better data that way, but I know we confused some people. This is a learning process, and you are watching us learn. One last thing: I also realize that we did not put in the large number of 3GL, 4GL, and other tools that are hybrid RPG-other technologies used by tens of thousands of OS/400 shops. We’ll save that for another time.
The first question we asked was designed to knock people a little off balance and to elicit an immediate and honest response. By doing this, we figured we could assess each programmer’s comfort zone. The question was: “If someone put a gun to your head and told you to start coding an ERP system right now, which language would you use?” Of the 192 respondents to the survey, 65.6 percent said they would choose ILE RPG and another 14.1 percent said that they would use an earlier implementation of RPG. (I suspect that there are some curmudgeons in the OS/400 base who probably still think RPG II and RPG III were perfectly fine languages and that there was no need to get all excited about object-oriented programming concepts, be they incorporated in ILE RPG or languages like Java. Such behavior is not only human, it is humorous and contains more than a pinch of truth.) Another 8.9 percent of the people who responded said that they would pick COBOL, and they are probably companies in the healthcare and insurance industries, which started out in COBOL back when mainframes roamed the earth. (Hey, I’ve got nothing against COBOL. In college, I was afflicted with Fortran, and like many kids of my generation, I picked up Basic at the dawning of the PC era.) Another 5.2 percent of respondents picked Java as their ERP language, another 1 percent picked C/C++, and a half-percent picked a .NET language (C# and other languages supported inside Microsoft‘s Common Language Runtime, or CLR, environment. Not surprisingly, no one picked Fortran. (Yes, that was a scrub on the data, since people who said they would code an ERP system in Fortran should have their head examined.) An another 4.7 percent said they would use another language.
The preference for RPG is unsurprising, of course. In the survey, 87.5 percent of the respondents characterized themselves as RPG programmers, by which we meant they had been coding RPG in production for at least two years. The remaining 12.5 percent were presumably less experienced or were MIS managers who do not code but who took the survey anyway. (We did not put a scrub in for this.) When asked if they were Java programmers (again, meaning they had been using Java in production for at least two years), only 6.3 percent of respondents said they qualified for that title.
We didn’t want to simply know how many RPG and Java programmers there are in the OS/400 base, but wanted, instead, to get a sense of how different languages are being used to create applications at OS/400 shops. To this end, we asked the respondents to estimate what percentage of the applications hosted on their AS/400 and iSeries servers were coded in particular languages. There is no good way to characterize this, but we figured that a rough reckoning in terms of the percentage of lines of code by language would be an interesting piece of data to see. We then extended this line of reasoning to get a breakdown across all machines that supported enterprise applications at their sites, and went even further and asked them to make an estimate of what the code line count distributions by language would be five years from now. The data is too complex to summarize in a few sentences, so please take a look at the summary table and then come back to reading this. (By the way, I have given you all the raw data as well as the percents.)
As you might expect, the applications residing on AS/400 and iSeries machines cluster around ILE RPG and earlier RPG versions. The 17.2 percent of respondents say that 81 percent or more of their code is in RPG, and another 14.6 percent say they almost exclusively use ILE RPG. About the same percentage of people who said they don’t use RPG said they did use COBOL (which is comforting), but 75 percent said they did not use COBOL and 66 percent said they did not use Java. Of those using Java, 30.2 percent said that somewhere between 1 and 20 percent of their lines of code were in Java, and Java use quickly tapered off. The vast majority of respondents said that they did not use C/C++ or .NET, but a small percentage seems to be tinkering around with it for real applications. (I realize, of course, that these are guesstimates on the part of respondents and not precise measurements, and also that we picked wide brackets.)
When you zoom out to the entire data center, not just the OS/400 platform, RPG still dominates, but the use of Java, C/C++, and .NET for at least some applications (again, generally comprising 20 percent or less of the code base) rises by approximately 10 percent. Interestingly, the number of respondents that say their companies are heavier users of Java doubles, triples, and quadruples, but the number of companies that are heavy Java users is still quite small. The same trend holds for .NET and C/C++, but Java has a much bigger presence, which stands to reason given IBM’s seven-year push to make Java the lingua franca for application development. This preference for Java probably will change, though, as Microsoft ramps up the .NET languages and companies (like ASNA, just to name one) provide tools to integrate .NET and CLR applications with the OS/400 platform. I would not be at all surprised if a future OS/400 release supported native CLR (like earlier releases had an AIX runtime), leading to an eventual port of Windows to the Power-based server platform (as IBM has done with the eServer i5).
The interesting bit of the survey, at least as far as I am concerned, was when we asked programmers to fast-forward five years and give us the same code base count by programming language across all platforms. The data shows a decline in RPG and ILE RPG code as a percent of the code base and a decent increase in the use of .NET and Java. C/C++ pretty much stays the same. We did not normalize for the code base counts, of course. The decline in RPG could mean people actually unplug RPG code, or that the amount of new Java and .NET code wrapping around OS/400 databases is going to grow so fast that it dwarfs the stable base of RPG applications that sit beside it.
The last question asked was the counterpunch to the first question (which language would respondents use for coding an ERP system). We now wanted to let them pick languages based on their merits. Specifically, we asked what programming languages respondents would like to learn if money and time were no object, and we let them pick as many as they wanted. The main choices were the same as at the beginning of the questions. Of the respondents, 23.4 percent said they wanted to learn ILE RPG, while only 3.1 percent picked earlier versions of RPG, and 3.1 percent picked COBOL. The 78.1 percent picked Java, 44.3 percent picked .NET, and 33.3 percent picked C/C++. A few people picked Fortan (which is useful for calculations inside some business applications), and in the “others” column, Perl, php, and Python were frequently mentioned, as well as Visual Basic, LANSA, ASNA, and Visual RPG. Some wiseguy even wrote in French: Plus ca change, plus c’est la meme chose.