On 2/3/2013 11:38 PM, w 4038 wrote:
What good is ILE?
ILE is an enabler. It enables me to finally use user-written functions
and locally scoped variables and files.
ILE doesn't enforce structured and modular programming.
Given the opening, it seems this is a probe of the rationale for ILE.
In that light then, what difference does it make if ILE does not FORCE
structured / modular programming? More in a moment.
And I was doing that before ILE. I was taught structured technique in universtiy back in the 80's and the professors enforced it. I'd fail assignments if they ever found a GOTO!
Absence of GOTO is not the same as either structured or modular
programming. I suspect you know that, but this is a segué into the next
point, which I think is vital to understanding the craft of programming.
Structured code is not a programming style.
Modular programming is not a methodology.
These are ways of thinking.
All the IF...ENDIF blocks in the world won't make my code structured if
my thoughts aren't structured, and I won't be reusing code blocks if I
didn't think of them as reusable code blocks when I started. It is
impossible to add these things to code after it has been written.
As soon as I got a job, I kept up those good techniques. (Plus, I am far too lazy to write the same piece of code twice.)
Then you know how easy it is to implement structured thoughts in ILE
versus RPG/400. In RPG/400 it is very difficult to write a function
because the one and only method we have is to CALL a program.
You are correct that I intentionally mentioned all those
terms as a type of "FUD". But that was the point. All that
"FUD" (or more complexity as I prefer to call it) and
I still don't see any great benefit.
FUD is a term that is generally understood to mean 'misleading
terminology used for the express purpose of using an emotional argument
in lieu of reason.' Typically, we don't use 'FUD' as a synonym for
'list', and it has very negative connotations.
My colleagues aren't necessarily /creators/ of functions, but they can
very easily /consume/ the functions that I write. I put the
sub-procedures in a service program, put that service program in a
binding directory and put the binding directory in the standard H
specification. All they need to do is a /COPY for the prototype, put
the function call in their code and compile with PDM option 14. This
doesn't sound overly complex - we were using /COPY in RPG II in the 70s.
It is a given that modern software development is more complex than an
What good is ILE? ILE enables me to manage complexity better than
RPG/400 /because/ I have more choice in how to implement my structured
thought. I probably could write hundreds of little programs in RPG/400
rather than hundreds of sub-procedures in ILE and I could make them
performant if I exit with LR off and I could free that storage by
calling them one last time with a parameter telling them to SETON LR and
I could probably keep track of all the objects I need to deploy in order
to move a change to production but it's all so much easier with one
source member, one service program and one /COPY prototype.