aaronbartell

RPG / iSeries / Java / WDSC / RDi / XML / Web Services

IT Complexity Costs A LOT! Why RPG+DB2+OS400 Is So Important!


   Dec 28

IT Complexity Costs A LOT! Why RPG+DB2+OS400 Is So Important!

A respected author on IT complexity has recently published a whitepaper detailing some of his recent findings which are quite staggering if true.  You can see a critics review of the white paper at the following ZDNet Article(Click here).We are entering into a very interesting point in time as it relates to how IT departments pursue new technologies in an effort to meet business needs.  For those that have pursued some of the initially appealing technologies out there, like I have, you know that it is very much a sugar coated poison apple.  Why do I say that?  Because if your fundamental programming stack isn’t intimately integrated then you will forever be looking for additional tools or methodologies to cover the holes.

The grossest perpetrator is XML web services.  Don’t get me wrong, XML web services are a perfectly acceptable medium in some cases.  For example, how else should you communicate with a remote entity that you have no control over than to use a generic format? – XML is a reasonable answer to that.  But woe to the shop that introduces an ever changing, standards based, XML “bus” into their own application stack!

One of the next perpetrators is any language that isn’t intimately tied to the DB.  I am specifcally targeting business minded applications in this statement, since they more than likely do A LOT of database interaction.  One needs to look no further than the amount of work done on ORM (Object Relational Management) tools (i.e. think of them as language to DB proxies) and how many version iterations they have gone through over the years in their attempt to “get it right” to make DB interaction simple for languages like Java.  Yes, I eventually get a connection to a DB from Java that is fairly reliable, but the amount of tools and work (i.e. man hours) it took to get to that point has become a larger than necessary amount of time compared to not having to worry about that in the least with RPG.

That’s not to say RPG isn’t without flaws (i.e. I am still waiting for long table and column name support IBM!!!), but I feel the flaws are much less in many areas.Of course RPG’s major flaw is it’s lack of a modern user interface that is productive for the programmer to develop.  That is why I view things like RPGUI as extremely important, because it is one of the few things that RPG lacks, and if addressed could make it a leader in the application programming stacks of our time.

Thoughts?  Am I unfair to other application programming stacks?  Is anyone else seeing the same “fix one problem and create another” cyclical issue in IT today?

Aaron Bartell

www.SoftwareSavesLives.com

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 Comments

  1. following ibm, the integration from db2 to rpg will be done more and more by sql and if you prefere embedded sql over using orm tools, java gives you both, hibernate (for instance) and sqlj and both work well with db2/400. I agree that orm tools ar rather complex, but they add a lot of functionality like caching and the possibility to choose between prefetching and lazy fetching for each object you define and last not least applications using orm tools are not tied to the database and the datamodell.
    rpg and its flaws, an interesting topic too, my top three rpg flaws are:
    - free format is a pre beta version. pre, as long as you need fixed format lines and beta until there is a clear definition of the language with reserved words etc ( you might even name variables with the names eval and call and code “if eval = call” in fixed format and in free format the parser will get flew). pre and beta as long as you must code such nonsens statements as /free and /end-free and useless prototypes (the compiler checks if you have succeeded to copy a definition. java has no prototypes at all, the compiler gets the information from the implementing classes – simpler and better)
    - rpg has no qualified naming for procedures (so you cant use the name read for every procedure wich simply reads), no overloading (so you have parameters you don’t need or you must use workarounds with *OMIT and such things) and even worse, the activation group has to be named at compiletime and so you need code and an additional parameter with a handle, if you need independent activations at runtime.
    - rpg is not truly thread enabled – I know the enhancements up to V6R1, but there are no constructs for synchronizing access to data shared between threads and many rpg statements are not even thread safe (5250 and record level access, for instance). The main diffrence between 5250 and a modern user interface is not green versus coloured and graphical, the main diffrence is application flow or event driven and for event driven software you need multi threading and it would be rather hard to emulate this, using rpg.

  2. Mihael says:

    RPG is not years behind the other languages it’s more like centuries. There are so many things where RPG has to catch up.

    RPG has a really nice database integration, yes. But as a language it does not have many more things to offer. Most of the time the language has to hide behind the OS because it is the OS that really shines, though I haven’t seen many new good concepts regarding the application development of late.

    Missing features: Take some easy things like documentation, packaging or some heavier things like reflection (and putting PCML data in the program object is not the answer and especially not as PCML does not support all possible data type for RPG … it’s more than useless, it’s wasted disk space).

    And IMO the concept is wrong in adding more and more bifs. Rather there should be a ton of service programs ready for the developers as a development kit. Why adding xml support as a bif when it would be so much more natural to call procedures (f. e. calling procedures from expat srvpgm).

    … and ORM is pretty nice if you don’t already have an existing database to which you have to adjust you object models. I tested the application stack Wicket + Eclipselink + Glassfish and it worked like a charm. Web development actually was fun again.

    And RPG seems to be not the only business orientated language around. I think it will be interesting to see how qore will do in the future. http://qore.org

    My 2 cents.

    Mihael

  3. aaronbartell says:

    Mihael, I also believe RPG is lacking, but also want to bring up something that has been on my mind for awhile. How many of the new features of other languages are just band-aids that are covering up fundamental programming stack issues? For example, annotations in Java became great because it allows you to address some of the tight integration lackings Java has with the DB and the UI.

    Just a thought. I need to spend some more time on it and would eventually like to write an article about it.

    Like you mentioned, it would be great if we just had more public libraries available for RPG that programmers could easily make use of. You have obviously done good work in this area.

    Aaron Bartell

Leave a Reply