- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Admin
it is certainly easy to bash RPG as a language, but the underlying issue most people have with IBM's language is not the RPG itself, but the proprietary platform that it runs on, instead of being on an open source machine.
i have been using RPG since 1983 and have grown with it, as it evolved from a fixed format language supporting field names with a max length of 6 characters.
would i go back to the 1980's (or even 2000) version of RPG? of course not, unless the paycheck was astronomical. but i will defend RPG as being a relevant language.
i base this on:
the language has evolved greatly;
the language now (and has for a while) supported modular programming in the form of true modules;
supports nearly unlimited field name lengths
runs on an OS and machine that are up over 99.9% of the time, which i do not know of a linux or unix based system that is used in the business world, with that kind of up-time;
supports nearly ALL previous iterations of the language, including the 1980's version upto present, just for the really old guy's, which keeps them employed;
runs on a machine iSeries (AS/400) that can run Windows, Linux,IBM OS, etc...
has an upgrade path that contiues to evolve and include the neat features of other languages;
there are other things i could say to promote the language, but unless one has used it, in earnest, they cannot see the usefulness and forethought behind the language and machine.
-sarge
"some people are like a slinky...not really good for much, but they bring a smile to your face when you push them down the stairs." -unknown
Admin
I learned this language at a private college I attended in the late 90's. After completing my diploma I swore I would never work in that language or with the AS/400 ever again. From what I can remember this college is the only school outside of IBM their selves who teach this arcane language! I can't believe anyone would still be using this, or the AS/400 mini-computer.
My brain hurts, my body aches, and I am scared!
Admin
Oh,I have since moved on to get a real degree in a real university!
Admin
I work with RPG programmers who've moved on to Java. The problem here is totally different:
void getOrderListData(OrderListData data)
or at least bassakwards.
Admin
However, I'm not quite sure how, in at least its original incarnation as a "Report Generation Language," RPG could ever be described as suitable for mission-critical applications. Coming soon to a Hospital soap near you:
Dr De'ath: "Nurse Goody, we need to pull up this patient's medical history right now! And while you're at it, hook up the RPG-powered Cardio-doofo-scanner!"
...ten minutes later...
Dr De'ath: "Goody!! Where's the darned Cardio-doofo-scan?"
Nurse Goody: "Sorry, doctor. The RPG medical history report iterated through all 250 million US medical records, the circuit trip on the printer's air-con failed, it set fire to itself, and now the Goober wing of the hospital is toast. The scan is coming up right now."
Patient: Aaaack...
(Although I'm sure that IBM's RPG IV has inbuilt thread support now, so sequential processing like that would never be a problem.)
But seriously, who, other than managers, thinks that producing reports is "mission-critical?"
Mind you, I do agree about the Linux-weeniedom. I love Linux; it's robust; but I'd never rely on it out-of-the-box for 99.999% up-time, let alone proper fault-tolerance. Not yet, anyhow.
Admin
ROFL!
Admin
Actually, it hasn't been called the "iSeries" for more than three years now. In April or May of 2004, IBM changed the name of the iSeries to the i5 (because it included a Power5 processor). At the same time, they grouped all of the different models (AS/400, iSeries, i5) together and collectively called them the "System i".
Beginning in the first wuarter of next year, IBM will begin rolling out a System i model that uses the Power6 processor. Lord knows what they are going to call that! :)
Admin
It doesn't say much for your arguement when you need to resort to picking apart terminology. I can only speak for DB2 on the AS400. I can't speak for DB2 on windows, linux, etc. What I do know is that I've seen an extremely high transaction logistics system run using RPG, DB2, AS400. Locks rarely are a serious issue, and when they are they are easy to resolve. We had a team of two to maintain all aspacts of the AS400 programming included. By comparison, windows, SQL Server, IIS, .NET suffered horribily during peak usage, Locks were a continual issue, runaway processes could easily bring the server to it's knees, timeouts and errors were a regular occurance. Of course. the windows serves had 2 network admins, 2-3 DBAs and 2-3 programmers at all times.
I've seent he same scenerio at two companies over the past 10 years. AS400s/DB2 are rock solid, and require a minimum of manpower to maintain. Are they for everyone? No. Are they the way to go for mission critical systems that you can't afford an unplanned outage of even a short time on? Yes.
IBM concentrated on what the AS400 needed to do it's job even better. The AS400 does not try to be the best at everything. The AS400s core functions of Data Entry, Data Processing, Data Storage, Report generation, and communications however, it does VERY well.
Admin
I'll argue that. My primary responsibility for a while was to do DBA work on an AS/400. IBM has done a great job of letting you deal with "the real business of business" but a database without a DBA tends to be a tad inefficient. Yeah, it runs. But as a DBA I reduced the processor load on my company's AS400 by 30% while we experienced 30% growth. Would we habe been OK without that. Yes. but now there's a lot more room for growth.
A side note though. DBA being my primary responsibility means I got to dedicate 2-3 hours of my 8 hour day towards doing DBA work. AS400s do NOT require a seperate full time DBA, but all databases can use some tweaking and maintenance.
Admin
That's one of the great things about the AS400. A runaway application on most other platforms will cripple the server. AS400s don't allow that to happen. They limit the processor a given session can use. And most have a helpdesk, or sys admin that would catch a serious runaway within a few min and verify the user actually wanted what they were generating (screen reports would only query 1 screen or results, and cache the next. printed reports will throw a operator alert if they exceed a certain length, and then pause)
RPG is used for warehouses, manufacturing, insurance companies, hospitals, universities, and banks. Many of them really do have mission critical applications running on their systems. They also have operators monitoring jobs. But, the point is, one runaway job will now have a serious impact on anyone else on the system. Even if the system is not very well maintained.
I love the AS/400. I don't like RPG... it's a bit of an oxymoron... but mostly that I just have a hard time reading RPG code. (lack of experience with it) I can read it, but it's so rare I need to go back and look at old RPG code I tend to forget how all the commands compare to languages I use more often (and need to debug FAR more often)
Admin
RPG IV wasn't that bad at all. In fact it was resembling C more and more each version, with the ability to still use the fixed format version.
When I started in RPG in the 90's at a company I had never seen RPG before. RPG III code wasn't that bad, was stuck with the fixed field lenghts, but the hardest part was the 6 char limit on var names. Including file columns.
RPG II code, however, wsa horendous. I hated touching old RPG II code. It was my vision to convert all the RPG II code to RPG III code. Fairly simple to fix some of the formatting issues and recompile and run, but then it wouldn't work if the RPG II program used ... I forget what they were called, screens with rows and overlays. RPG III had a different cycle than RPG II and just wouldn't work if converted. And it was no easy task to convert the display form to work with RPG III becuase the logic was then all screwed up.
I wound up converting most of the RPG II code to RPG III that didn't have issues with the display files, and then started converting to RPG IV which was rather painless. Very few issues with RPG III not working with RPG IV. But when I left that company in the early 00's there were still RPG II files hanging about. Although at that time the company had been bought out by another company and their mini-mainframe was being used instead so the code was pretty much dead. And, yes, the company that bought them out was using an AS/400 and RPG.
Admin
It's a shame you included "free format" RPG IV code in this WTF. "Old" RPG code would have been so much funnier.
When I was an RPG programmer (I'm 30 years old, I programmed RPG during my early 20s), we used small programs to share code. The small programs would do things like conversions (specifically date conversion prior to Y2K).
So we didn't cut and paste, we had programs named CVT423 and such to do stuff. It was much clearer :)
Admin
Admin
Just posting this for people who aren't familiar: when we're talking about DB2 on the AS/400, the database is integrated into the operating system, and it always has been since the system was launched.
A "physical file" is a table, a "logical file" is a view and the idea was that you could manipulate them transparently through either RPG/COBOL or through database functions. However, I don't think DB2 for AS/400 supported SQL until the 90's, before that the database used proprietary interfaces.
The database isn't an app packaged with the OS -- DB2 code is directly hooked into all layers of the OS stack, and part of the kernel is the database query engine. So if you're running an AS/400 it might make sense to refer to it interchangeably with DB2 or SQL Server.
It's technically possible to run other databases on the platform, but there's not much reason to. MySQL has an agreement to support the System i platform, but this is being marketed as mostly as a way to run packaged LAMP webapps on the platform.
Admin
I find it strange that people are complaining about fixed columns and stuff when languages like Python (and some functional languages) use fixed indentation in their syntax, which is more prone to error. Even C (and hence C++) still requires the # of a preprocessor command to be in the first column.
Admin
Wow! What arrogance. Now I can understand something about the push to offload development out of the US. Why pay a sniveling little developer 90-grand a year (+ bennies) when it can be outsourced for 1/8 the cost, PLUS you don't have to look at nor listen to their worthless opinions on what makes the company money.
Continuing on that example, when the cost of one developer is reduced from 90k to 10k, that MAKES THE COMPANY 80-GRAND (for just one developer for just one year). Note that no amount of wizardry from an ASP developer can yield that kind of return. That's why the ASP developer's job is outsourced and CEO/CIO's position ISN'T.
Admin
Actually, the proper way to code this in free format RPG would be:
num = Putclientno();
In extended fixed format you would have:
c eval num = Putclientno()
Admin
Hmmmm.
shrug why couldn't a CIO position be outsourced?
Frankly considering some of the nonsense I've seen CIOs do I would think that a company could save itself millions by outsourcing the CIO work.
Admin
The story of looking into denigrate RPG as a Business Language goes back long time ago. But as a pain in the back for some people trying to do so, RPG remains live and walking to the future, as always.
Admin
Admin
You can't believe it. Of course, you can't, cause you don't have experience at all. RPG and the IBM Series I ("mini As/400") are the strongest support for business, software and hardware since they were out in the market.
Admin
Java's stuff is scary for them too, believe me.
Admin
Java's stuff is scary for them too, believe me.
Admin
The other way around could be difficult for you, right?
Admin
you have no idea what you're talking about. Mumps isn't just a programming language, it's an associative knowledge store that using a graphical representation of objects and data rather than a relational one. In the billions of 'records' if you must call it that, the associative methodology is much more effiecient than the use of joins and tables in a relational system. Cache is a very good product, it's just not the type of thing your average developer can get his head around. It's also a niche tool for Very large data. (It can be used for smaller systems, it's just not all that helpful over relational bases at smaller scales, and it's not worth the learning curve.) To say that it's not going anywhere is silly of you, and you obviously don't know what it's actually used for (it's very prevalent in even modern brand new off the shelf medical records tracking systems, and many companies are converting their data systems TO Cache, not away from it.) So before you WTF, make sure you know wtf.
Admin
I see arrogance on the developers side and ignorance on yours. Yes, the VP makes money. They make business decisions that make or break the company. It's a very important position.
But you are ignorant in thinking that the only cost involved in making software is related to the salary of the developer. The 10K developer may make it in 10x the time. They make it take 10x more time to maintain. They may make 10x the bugs. From what I've heard, they OFTEN make it impossible to make version 2 of the app by updating version 1: usually the code is so unmaintainable that version 2 has to be started from scratch. From what I've heard, they OFTEN don't follow specs correctly and you end up getting an app that isn't what you asked for.
Your ignorance is based on the fact that you are thinking in the short term. If you could avoid a lot of cost long-term by paying a little more short-term, wouldn't you do it? Probably not, I imagine you'd take credit for the short term success and blame the developers for the long-term failure :)
Admin
And just as clearly, you've never used an RPG editor. It's actually difficult to to put the word "CHAR" in the wrong position... unless you're foolishly trying to do manual formatting. Would you try to type a Word document into Notepad, entering the formatting codes manually?
It's not much different from entering something as widely used as HTML. While it can be a challenge typing decent HTML tables into Notepad and getting all the rows and columns correct, using any mediocre HTML editor makes all the difference.
Admin
Being able to produce statutory reports such as end-of-year accounts, accept sales orders, pay vendors, etc is conidered by a lot of people to be mission critical.
Producing a medical history report, on the other hand, probably isn't, besides 250 million records on the System i would be a snip - of course it would be a pretty poor programmer - that is, one who isn't used to writing serious business programs and how to limit the amount of data that a program needs to access - that would allow the program to read that many records or even use the figure as an example.
Intelligent programmers who know what they're talking about. It seems fairly obvious that you don't know anything about RPG even after reading the previous comments (I'll give you the benefit of the doubt that you did read the comments). Yes, RPG stands for Report Programmer Generator as that is what the language was originally designed to do at a time when report were the norm. Just because the name hasn't changed (other than showing a version) doesn't mean that the language still only has the same function as it did originally.Or maybe you think that BASIC and VisualBASIC are tantamount to the same thing?
Admin
Clearly you haven't. I've programmed in RPG for over 20 years and I can honestly say I have never come across the keyword CHAR in any version of the language. Unless, of course, you're using CHAR as a variable name in your program? Is that it? Do you limit your programs to having three variables? CHAR, NUM and FLAG? Wow, I'm impressed.
Admin
RPG is used at my place of work. In fact, AS/400 is a pretty darn essential part of our system. So I found this article rather amusing - I just hope RPG is not as sucky as the article makes it out to be!
Admin
Admin
No, you shouldn't ignore them. Just get them to describe how well they speak whatever second-language that they know. I'm pretty sure most of them won't know another language as well as you do.
Admin
Well, after reading the mass of replies to this article, I just couldn't help but getting my two cents into this thread.
I have programmed in RPG since I graduated from college, 17 years ago. I have had exposure to other languages and see the merits in each. One of the posters referenced that. I have programmed RPG to deal with a myriad of different applications not just reports, but a Pharmacuetical system that depended on determining drug-drug and drug-allergy interactions. I would call that 'mission-critical'. RPG can be used to do most anything as long as the programmer is capable of producing the code. I don't believe the argument here should be about the capabilities of the language as much as it should be about the capabilities of the programmer using the language.
As for the merits of VIP/CIO/Management vs. the programmer....both have their places within the corporate structure. A company cannot operate without either. Both make money for the company in their own ways. Both can be accused of loosing money for the company as well....it just depends on the capabilites of the person in their respective job.
Admin
The reality of RPG & AS/400 platform for a business pssst - the business guys paying for the platform haven't realized this yet. This stuff is only known in IT circles.
1 - Many of the iseries & AS/400 shops are frozen in time in the pre-internet era. Their IT processes and methods regarding purchasing, programming, security!, tuning, user needs, etc. are from another era. Ask TJX/TJ Maxx how that worked out for them. The cost of running it the old way was cheap but the modern risk & impact is devastating. Remember the early 90's for IT? weren't they fun?
2 - new COTS software (enterprise and SMB) with modern features is increasingly not written for AS/400 & RPG. It's only getting harder to find modern packages for the AS/400. If you don't need SOX capabilities, PCI compliance, regulatory compliance, your business needs wont ever change, AND you like paying incredible amounts for the inexpensive commodity hardware and software on other platforms = congrats - the AS/400 has your name on it!
3 - Staffing issues. It is hard to find staff that know the new RPG (using the post 1999 features). Most only know the ways described in item 1. You will find staffing costs aren't very low cost to deliver the same IT services to the business you can provide on an intel platform. You will end up with two IT departments - one dedicated for the AS/400 that is incapable of modernizing and another IT group that knows the modern IT platforms and is capable of change.
This is the WTF in the example. They typical RPG skilled staff don't see the point in the post 1990 IT world.
Admin
Admin
There has been a market for this for nearly 15 years and the market still exists. Not ".NET" as such, but Visual RPG (from IBM, comes along with the other compilers and tools at no additional charge) is developed in a GUI IDE, compiles and runs under Windows, and even generates equivalent JAVA if you wish. It can call Windows .DLLs or interface with a remote System i or pretty much anything else that a Windows app can interface with. A System i in the network is not required for the resulting app.
So far, I haven't seen that anyone has been able to demonstrate this as long as a basic assumption is that the code that's being converted has been reasonably maintained and updated to take advantage of basic platform improvements. It doesn't have to be fully state-of-the-art, just reasonably maintained and updated. Lots of clueless claims exist about how wonderful things would be if it were converted, though.
The last such conversion that I had experience with started with an estimated 6 months to convert to Oracle. My experience began at the 18-month point in that project and the estimated remaining time at that point was -- 6 months. The project was originally approved based on the so-called expert opinion that it all could be done so much easier/cheaper/faster by converting. Had there been any honesty up front, the project never would have been approved.
Obviously, if the conversion is from ancient RPG II (or worse, RPG) within an ancient app design, then it's no different from converting Dartmouth BASIC to a more modern equivalent. But those who have no clue of how the language has evolved should at least learn how to find clues first.
I'm sure many conversions could be done as you said. However, the statement is false as far as the vast majority of apps I've worked with over the past twenty years (to stay mostly in the AS/400 and its successors' times). I do remember one in particular that desperately needed such a rewrite but couldn't get approval due to... well, governmental obstacles. Otherwise, your assertion simply hasn't held true.
Admin
Admin
Hmmmm. EVERY Access application I've used has almost ALWAYS had to be re-written, tested and debugged after a new verions of MS Access is introduced. Yeah - that's really cost effective - and the reason why I stopped recommending use of or doing any access development in 2001. RPG applications written in 1983 for a System/36 can run unmodified today on any flavor of AS/400/iSeries/System i.
Admin
Admin
Editing the code is not too bad, if you have the right tools. I had to write an editor ("SEU" emulation) for RPG (in C) that would flip between a "normal" text window and a templated form for each F, I, C, O line as appropriate. The company I worked for at the time was in the business of selling a product that translated RPG into C code which could be run on newer, cheaper hardware.
Most clients (RPG using IT shops) simply used the product as an alternate compiler, of course...
Admin
But that's purely on an equivalence level, not on an equality level. So it only really works on containers. Such as either toilets, or AS/400s.
I don't really have a problem with RPG: it's never going to have much of an impact on my life. I do find it interesting that so many RPG apologists (and, please note, "apologist" does not mean that you are "apologising" for it: more that you are defending it, as is your right) have come out of the woodwork on a site like TFWTF.
Is there some sort of Evil RPG Network out there, propagating the need to leap to the language's defence?
The only sensible defence that I can see, given perfectly reasonable alternatives that do not cost management $150 per hour to maintain -- see, I do read each and every comment -- is that there's a Godawful number of RPG systems out there, and re-writing them is not cost-justified.
This is in and of itself a sad commentary on IBM's continuing commitment to the language. I'm pretty sure that they could have produced a spiffy AST generator from the trivia that is RPG II, and probably even from RPG III, and generated some sort of real and maintainable language out of it ... instead of morphing into the dead-end that RPG IV seems to be.
Look. You can put lipstick on a pig, but it's still Paris Hilton.
Oh yes, and you seem to completely miss my point about the concept of "mission critical." Sure, management reports are "mission critical" (unless you're Enron management). However, they do not need to be delivered within the next millisecond or so, with a guaranteed latency, etc. That's mission-critical.
Admin
Heheh! I remember studying this in college, here in Ireland, and in fact this college was the only one in the country to house an AS/400 system (www.lit.ie) within the college campus and we learnt RPG IV and COBOL/400. Mind you it can be a numb experience remembering which columns to put in code sequences, but it was fun and a lot of us (including myself walked away with AS/400 skillsets!) Ahh! Those were the days! This was back in 93/94/95!!!!
Tom.
Admin
A said in the original post (i am the original poster), the as/400 (or i5 as it is called now) is quite a modern platform. It's a unix flavor under the hood, and i5/OS (formerly OS/400) is a very elegant, simple and robust environment, compared to unix for example. It's architecture is quite modern (from the 70's, as opposed to the 60's where unix came from). It is very versatile and supports all modern technologies like websphere etc. But it also still supports 5250 screens, of course. I like i5/OS but i don't like RPG (for obvious reasons). The real WTF here is that most as/400 programmers still do the same thing they did 20 years long, and dont want to learn. This is THE reason why much of the apps are using green screens. It's not the as/400 which just supports it for backward compatibility, but the programmers who do not want to learn something new. Phew.... it's almost impossible to learn an old-school RPG programmer the concept of pointers. Making abstractions is key to making good software, but most RPG programmers never learned this because they were never exposed to a language with local variables for example. Everything that's more abstract and does not let the program twice as fast or let's the programmer create a "working" program twice as fast is just not understood. Also because these people generally do not have a technical background or even interested in technology. The brighter side of this is that most RPG programmers tend to be more aware of their "business" then "technology". So this is a good thing. But a good programmer is both. In the first place he is a technician (because thats the job he is doing, technical). But he also has to relate this to business.
Admin
I wouldn't be proud to be the original poster for this thread, I would feel guilty for making outrageous accusations without any evidence to back them up. All you have succeeded in achieving is slagging off a language for no other reason than you think it is fun to do so, and inflaming others to stand up and defend it.
Admin
And for all of you who think RPG is a dead end, here's something else you can do with it - and it's still RPG...
http://www.itjungle.com/fhs/fhs082107-story03.html
Admin
or at least he does not suck generally ...
Admin
For heaven's sake. He's talking about power failures. Are you trying to say that you don't need electricity?
I suggest that you reserve your opinions for things that you've actually done. To compare even the current level of RPG that is taught at schools with real life is like deciding not to read literature based on a boring high school history class (also not reflecting on the importance of history).
I believe the point of the article is that the early construct of the language only attracted those in life that lack both imagination and ambition (along with proper education). On this I am dismayed to agree.
As a EE, I could never have imagined working on any business type language, and laugh because I was working on MUMPS when my employer wanted to convert from a S/3 to a S/38. I was not amused, but ended up out of boredom one day picking up the manuals. I have found that it's a heck of a machine.
At the time I did not expect the platform to expand, it just paid a little more at the time as nobody else knew how to use the machine. I wanted to buy a new stereo in 1979 and I haven't turned around. I work on other machines, but still prefer the basics of what I can do with iSeries. Even Apple used this platform to run their business.
I say push for better coding on the platform, be a part of the solution or a part of the problem.
Admin
RPG IS a vital and viable programming language! anyone who doesn't know this is either a Windoze Microclone or Unix-head. I have programmed on Windoze, Unix with several languages. on the System i (the latest moniker for the AS/400) you can create web apps using websphere, RPG-CGI, PHP, run Apache and Tomcat and tons of other stuff. the nice thing is that a lot of the functionality can be written directly in RPG IV, C, C++, COBOL all on the same machine. RPG is my favorite language. there are several reasons:
I don't have to code all the file definitions, opens, closes, etc. the compiler does it for me. i also have the option to control those functions when needed.
the language has evolved through the years...(unlike COBOL, BASIC, PL/I, (and really java...), C, C++ (the .NET stuff is really a different iteration of the language).
it can be used for creating windows apps via Visual RPG (ASNA or IBM flavors).
RPG is robust and evolving rapidly. unlike the aforementioned languages.
Admin
I agree with Mr. Holden. I have worked with clumsy java and C++ programmers for a few years in a mixed programming shop. I can generally do in rpg what they do in java and in less time. I find it interesting that they complain about the 400 so much when it's nearly always the windows and linux machines that are problems. Get a real computer you little dweebs.
(Now sit back and watch their heads explode.)