• (cs)
    Anon:
    So the WTF here is using "put" for input?

    Obviously! I can't see what else should be WTF?

  • Al (unregistered)

    I actually had to learn and (briefly) use some RPG back in the early 70's. It's the only language I've ever used where you actually needed coding forms to remember what went into column 56 of a particular statement.

  • scooter (unregistered)

    ugh...I just threw up in my mouth a little. I had almost forgotten about RPG.

    A couple of years ago, I had to fill in for an RPG programmer who was out on leave. I never wanted to kill anyone more than the manager who kept changing his mind about the number of input characters and why columns didn't line up on the screens.

  • Uknown RPG Coder (unregistered)

    Well agreed completely. I graduated college about 2 years ago and was hired to do Java devlopment and some RPG. Well that means that we are doing 90% RPG and 10% Java. I had absolutly no RPG/as400 experience what so ever when I started. They basically gave me a book and said learn. Well the book was a few years old so I first learned RPG the old way but that was alright since 75 percent of our code is still that way. But after I learned about some of the new and cool things we could do I have tried in vain to get the other guys to use them but they refuse so I have all but given up. There really is no way to get a guy who has been doing it for 2 decades to change his ways. But knowing RPG really gives you an appretiation(sp?) for other languages. Just don't bash RPG/as400 to hard it is hard to find a system that has a 99.9 percent uptime.

  • TR (unregistered)

    Where's the wtf. I didn't put this one..

  • (cs)

    This one hits close to home. I am one of 3 Java developers at a place full of RPG guys. It's scary stuff to me.

  • (cs)

    VSJ runs adverts and "advertising features" for cache every month? I can put one up if anyone is interested?

  • mh (unregistered)

    The WTF here is RPG itself. I had to learn it in college back in 1990-ish, and it was one of the vilest experiences ever.

    CAPTCHA: muhahaha - what the Great God of RPG said after unleashing his Diabolical Creation on an Unsuspecting World.

  • aaaaaaaaaaaaaaaaaaa (unregistered) in reply to scooter
    scooter:
    ugh...I just threw up in my mouth a little.

    Please, please, please... can we let this cliche fade into obscurity?

  • (cs)

    The RPG language is probably the WTF here. However, the manager's response about the name "Putclientno" makes a lot of sense and adds to readability if your language requires an op-first, L-to-R format, with return values on the R. E.g. in Java it reads well to say:

    int num = client.getClientNumber();

    Because the return value is on the left. What RPG does is something like

    Putclientno client num

    Which reads very nicely as "Putclientno (from) client (in) num". It doesn't read nearly as well with "Getclientno" or anything similar.

  • Zygo (unregistered)

    Until now, I thought CDC Fortran IV's usage of the first columns on each line was annoying and restrictive.

    Wow, I've almost forgotten them now. Let's see...

    Column 1 was for printer control (various characters meant things like "enable variable-width characters", "form feed", "overprint line"). You could use this column to emphasize comments or split code across pages or create images of nude women in ASCII art.

    Some columns (I forget which ones and how many) were for the optional line number.

    One of the columns told the compiler that the rest of the line was not Fortran code, but some kind of encoded data, or a template for text formatting, or a comment.

    The last column in the reserved columns was non-empty if the current source line is a continuation of the previous line.

    After that, the rest of the line is Fortran code.

    I forget how many columns were reserved this way. Either 8 (for 72-columns of source code per 80-column line) or 10 (for the number of characters in a word).

  • NotAMathMajor (unregistered) in reply to TR

    If you do the math, that means that the fields (“variables” in modern-speak) were restricted to six characters.

    I think I found the WTF: 25-12 = 6 characters! 49-36 = 6 characters! 63-50 = 6 characters! This must be a DBCS/MBCS language!

  • Lummox (unregistered)

    The real wtf is that the frist post in this series of comments has a quote from another comment. Uh, chicken and the egg problem?

  • (cs) in reply to Uknown RPG Coder
    Uknown RPG Coder:
    Just don't bash RPG/as400 to hard it is hard to find a system that has a 99.9 percent uptime.

    I could make all sorts of snide comments about this, but instead I'll just point out that 99.9% uptime means that you're down for eight hours and forty-six minutes a year.

    Any Linux system would laugh at a computer being down so long.

  • SomeCoder (unregistered)

    So... is the WTF that RPG exists?

    If you're going to do language WTFs, we could cycle through every programming language ever created and list WTFs from them. Personally, I like C++ but there's stuff you could find from it to put on a site dedicated to pointing out shortcomings in all languages.

    Honestly, I think RPG is a WTF language as is MUMPS but... I fail to see how this really should be featured on this site.

  • The Masked Director of Development (unregistered)

    RPG is the Awk of the 1960's.

  • Matt (unregistered)

    I worked at a company last year that used an iSeries to run it's accounting software all written in RPG.

    They decided to migrate to java and to retrain are their RPG resources on Java.

    They sent me to the same Java training because they were going to replace my .net boxes with Java as well.

    You know how the slower students in a class will cling to the faster student for help? I do. I didn't have any RPG experience, and I couldn't believe the things these people weren't grasping.

    It was as if they were learning to program for the first time. I helped them as much as I could.

  • Dave Brooks (unregistered)
    The “structured opcodes” like IF … END weren’t introduced until the late 1980’s.
    But you didn't need those things in RPG. If you needed conditional execution or output you used something called indicators!
  • RPGHater (unregistered)

    Coding RPG is akin to doing taxes. Blindfolded. While being whipped when you put a number in the wrong field.

  • RafBar (unregistered)

    RPG is all but deprecated. I work in a place where it sustains the daily operation of a 250-million-a-year-profit business.

    I work mainly on java.. when I Have to touch RPG I litterally feel that my neurons are commiting seppuku.

  • AnonCoder (unregistered) in reply to Matt
    Matt:
    It was as if they were learning to program for the first time.

    They were.

  • AnonCoder (unregistered) in reply to Matt
    Matt:
    It was as if they were learning to program for the first time.
    They were.
  • RafBar (unregistered) in reply to SomeCoder
    SomeCoder:

    Honestly, I think RPG is a WTF language as is MUMPS but... I fail to see how this really should be featured on this site.

    You have never worked with RPG isn't it?.--- That language was the phisical proof that satan exists!

  • Richard Asscock, III (unregistered)

    I still deal with other developers that can't shake their old-school ways. It's quite annoying in SAP's ABAP where customer exit programs are hacked together by 20+ developers (increases as system ages or company merges) You'll get one guy's code that is nicely formatted and clear, but then follows some other schmoe's that is left justified, all caps, and no comments. The ABAP editor even has a 'pretty printer' function, but these assholes with their 'Learn ABAP/4 in 31 Days' were never taught that...

    End rant, Dick Asscock

  • iToad (unregistered)

    There already is a Cobol.net (Fujitsu sells it). Why isn't there an RPG.net also?

    By the way, mentioning RPG or MUMPS causes bad flashbacks for a significant number of older programmers.

  • slapout (unregistered)

    I had to take RPG classes in college. It's the only language I like less than Cobol.

    I remember the coding forms and the max 6 character variable names...

    Strangely, I have more hatred for Cobol...

  • my name is missing (unregistered)

    I worked in a company with lots of AS/400 codors. The real WTF was that they used a 4GL tool to generate RPG programs. Thus they were using a Report Program Generator Report Program Generator. Plus they all thought themselves superior to the droll java coders who actually wrote code.

  • AnonRPGNET (unregistered) in reply to iToad

    There is an RPG.NET.

    http://www.asna.com/index/Company/News/PressReleases/04-28-04.htm

  • (cs)

    No WTF's here, I'd say. Except for some of the comments, as per usual.

    The concept of a record-processing report generator is perfectly understandable for anyone who has worked with a stream editor like sed or awk (or certain 4g report generators). Anyone who hasn't should, of course. Otherwise they are probably doomed to reinvent it badly, sooner or later.

    The idea of non-freeform programming shouldn't be scary unless you have serious issues with looking outside your comfortable Java (or whatever) environment. It's just another way of doing things. It's not more difficult, just different. Of course, lots of programmers seem to think that any language except their own favourite one is misdesigned and scary.

    Finally, like 'jaspax' says, naming that function "PutClientno" probably makes at least as much sense as naming it "GetClientno", in a language like that, and I can't see why it'd warrant so much as a raised eyebrow, let alone a WTF.

  • YourMoFoFriend (unregistered) in reply to aaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaa:
    scooter:
    ugh...I just threw up in my mouth a little.
    Please, please, please... can we let this cliche fade into obscurity?
    Let's not, because that's exactly the reaction I got after reading this article.
  • (cs)

    Don't knock RPG too much- I think it's the only language that was implemented in pure TTL hardware, circa 1968. The Univac 1004 "system" could execute RPG. Basically an army tank with a built-in line-printer, card reader, and just a few primitive circuit boards. Probably fewer logic gates than your microwave oven has. But it could run RPG. And take incoming mortar rounds.

  • (cs) in reply to RafBar
    RafBar:
    RPG is all but deprecated. I work in a place where it sustains the daily operation of a 250-million-a-year-profit business.

    I work mainly on java.. when I Have to touch RPG I litterally feel that my neurons are commiting seppuku.

    Just in case you're not already aware of this-- you suck at English.
  • (cs) in reply to Zylon
    Zylon:
    RafBar:
    RPG is all but deprecated. I work in a place where it sustains the daily operation of a 250-million-a-year-profit business.

    I work mainly on java.. when I Have to touch RPG I litterally feel that my neurons are commiting seppuku.

    Just in case you're not already aware of this-- you suck at English.

    At least he doesn't suck at relevance.

  • Jeffrey L. Whitledge (unregistered)

    Back when I was a computer science student in collage I was required to take a couple of MIS classes, so I took one on minicomputers. The only thing I remember from that course was the instructor’s obsession with RPG. He said it was the greatest language ever. There was no need for any other language. I think he was serious.

  • boooring (unregistered)

    That was a remarkably long story just to use a throwaway "lol get != put" joke at the end...

    Until I got to the end and realized what the point of all this was, I was ready to write a sarcastic remark about how MIPS and ASM must suck for the same reasons as RPG. I mean, why would anyone in their right mind ever use such a primitive language that's compact and requires individual opcodes (the horror!) to perform operations? But now I'll hold my tongue, as I can see that the first 1100 words of this article were clearly just introduction. Clearly.

  • (cs)

    A certain large car parts store around these parts hires primarily for coding in RPG. I had a friend who worked there, as an RPG coder. Sometimes he still wakes up screaming.

    All I can say to anyone considering the same is "Abandon all hope, ye who enter here."

  • robind (unregistered)

    I have a MUMPS T-Shirt.

    MUMPS means never having to say you're sorting.

  • veppy (unregistered) in reply to Khim
    Khim:
    No WTF's here, I'd say. Except for some of the comments, as per usual.

    The concept of a record-processing report generator is perfectly understandable for anyone who has worked with a stream editor like sed or awk (or certain 4g report generators). Anyone who hasn't should, of course. Otherwise they are probably doomed to reinvent it badly, sooner or later.

    The idea of non-freeform programming shouldn't be scary unless you have serious issues with looking outside your comfortable Java (or whatever) environment. It's just another way of doing things. It's not more difficult, just different. Of course, lots of programmers seem to think that any language except their own favourite one is misdesigned and scary.

    Finally, like 'jaspax' says, naming that function "PutClientno" probably makes at least as much sense as naming it "GetClientno", in a language like that, and I can't see why it'd warrant so much as a raised eyebrow, let alone a WTF.

    Not more difficult? Are you insane? Do you realize how troublesome it is when declaring a simple variable can be "wrong" because the word "CHAR" is off by 1 column? The mental overhead for even the most mundane things in RPG is enough to give anyone fits. Much of RPG is a silly hold over from punch cards and should have been "modernized" before I was born. (1981)

    Clearly you've never used RPG...

  • Cadoo (unregistered)

    PutClientNo makes perfect sense to me as does putpixel.

  • (cs) in reply to boooring
    Al:
    It's the only language I've ever used where you actually needed coding forms to remember what went into column 56 of a particular statement.
    Holy Cobol, Batman!
    boooring:
    I mean, why would anyone in their right mind ever use such a primitive language that's compact and requires individual opcodes (the horror!) to perform operations?
    To get a paycheck?
  • oldfart (unregistered)

    You young guys should learn from RPG before bashing it too quickly and repeating the same mistakes, only faster. The fact is that in the 1970's it was really good for doing what it was designed to do: Generate Reports from fixed record length files.

    The first screw-up was extending the model to support interactive processing on those new-fangled 80-character green screen terminals by treating the user's input as another fixed length record, instead of reading input from a file as God intended. Everything that happened after that was just more extending the model to places it shouldn't have gone. But if all you need to take data from fixed format files and print sorted, subtotaled reports on fan-fold paper, the original RPG will still compete with any modern language for being concise and quick to write. It's just that there isn't much call to do that any more.

    The WTF of RPG, that keeps getting repeated over and over again because new idiots are no smarter than old idiots, is taking a good tool and extending beyond the original problem domain for which the tool was designed. It's another version of "all I have is a hammer, so everything looks like a nail."

  • anon (unregistered) in reply to The Masked Director of Development
    The Masked Director of Development:
    RPG is the Awk of the 1960's.
    So it's like the coolest language ever?
  • BillyBob (unregistered)

    This WTF proves the theory that no matter the language there will always be a large number of people complaining about it and a small minority who support it - no matter how silly it is :-)

    Java - no good C - no good C++ - no good COBOL - no good VB - no good Delphi - no good perl - no good ADA - no good Smalltalk - no good Lisp - no good Pascal - no good, until it was all but dead, then it was good ... ad infinitum (or thereabouts)

  • GreyWolf (unregistered)

    [MUMPS] having about as much utility in modern software development as a sextant in modern navigation...

    Poor analogy, by a writer clearly ignorant of the reality of navigation. Sod's Law says that your electrical power and your GPS will die when you are far from civilization, and when you fire up your handheld there's only 10 mins in the battery. If you don't want to do a random walk till you die of thirst, you get out the sextant. You can navigate to anywhere on the globe with it to an accuracy of 1 nautical mile (provided you bothered to practise). We who look down on those do not do proper backups, should hold sextant users in high regard.

  • Anonymous Coward (unregistered)

    I thought for sure this would be a "tales from the interview" where the applicant ensures he has 15+ years experience in "RPG", and speaking about wizards or dragons (or whatever those RPGs are about). Am I the only one?

  • (cs) in reply to veppy
    veppy:
    Not more difficult? Are you insane?

    I'm sure it's a matter of opinion, but in my own opinion I am not. :)

    veppy:
    Do you realize how troublesome it is when declaring a simple variable can be "wrong" because the word "CHAR" is off by 1 column? The mental overhead for even the most mundane things in RPG is enough to give anyone fits. Much of RPG is a silly hold over from punch cards and should have been "modernized" before I was born. (1981)

    Clearly you've never used RPG...

    There's no reason not to get help from the editor when using a language like RPG. It's ridiculously simple to achieve syntax checking or syntax highlighting with a language like that.

    Most of us use some kind of "intelligent" editor when editing code - emacs modes or Eclipse or other IDEs and language-aware editors. There's an RPG mode for emacs, with syntax highlighting. Heck, some people even use automatic spell checkers when writing text.

    And no, I haven't used RPG. I have, however, programmed in innumerable other languages, all with their own little potentially annoying quirks. I almost always choose to accept and work with those rather than fret over how irritating they are.

    The decision whether a particular language should be used at all is usually not in the hands of the individual programmer and may not be as simple as one might think, either.

  • maht (unregistered)

    and write your own DSL or something

    you could probably get forth going in it soon enough

  • Izzy (unregistered)

    I had to write some RPG many years ago. If I ever have to do it again I'll quit my job and do something sane, like swimming with piranha.

  • RafBar (unregistered) in reply to Zylon
    Zylon:
    Just in case you're not already aware of this-- you suck at English.

    Yeahh I suck at english, it is not my main language. I teached myself english just by reading books and listening to my TV, I've never had an english class (I've never been in a country wich the main language is english!), and i think that i wouldn't have any problems communicatting with english-speaking people.

    Well, now i have to learn to ignore morons like you.

  • iToad (unregistered) in reply to AnonRPGNET
    AnonRPGNET:
    There is an RPG.NET.

    http://www.asna.com/index/Company/News/PressReleases/04-28-04.htm

    Somehow, I suspected that it exists. I suppose that Brainf*ck.net is next.

Leave a comment on “The Other Kind of RPG”

Log In or post as a guest

Replying to comment #148973:

« Return to Article