On 5/16/2017 5:30 PM, Booth Martin wrote:
OK. Time now for me to see if I can follow instructions. I have a
utility program I use to allow a dropdown box on a 5250 screen. It seems
a likely candidate for being a service program.
I have some contrarian advice:
1) Don't try to convert an existing anything.
2) Start very, very small.
For 1) I can speak with lots of experience. Just about every time I
tried to convert a program, whether from RPG III to RPG IV, or CHAIN to
FETCH, or anything else, I found that the end result was a malformed
mess of conflicting ideas. Hey, when I wrote that thing in 1985, I used
my 1985 brain, my 1985 compiler, and my slow 1985 computer. If I
convert that to RPG IV, which of those baked-in design elements will
change? Right, exactly none. All that will change is the formatting.
I'll have a 1985 program with lower case variable names, wheeeee!
If I were writing that program today, I'd probably use completely
different design strategies. And that's the point, right? Not a
different /format/ but a different /design/.
(The counter-argument is that re-formatting is a kind of refactoring,
and that's true, but until I had experience with /new design/ I didn't
know what re-formatting I would need to do to prepare for refactoring!)
2) is a continuation of the theme. Write something new, start with a
fresh mind. Because you haven't explored the expanded universe much
yet, it can be hard to know where to start. So start small - even if
you think it's so small as to be insignificant. The point of these
first steps is to get comfortable with the infrastructure of ILE - the
overhead, if you'll forgive the term. Don't focus on 'mission critical'
right off the rip. Instead, focus on learning some new muscle memory.
So rather than convert anything - even a subroutine or existing block of
code - look for some new functionality that you want to put into your
program, and write that new functionality as one or more sub-procedures.
And if nothing springs to mind, write a simple sub-procedure to add two
numbers together and return the result. Yes, it's synthetic, redundant,
and trivial - that's OK! The key to getting started is getting started!
And rather than putting your focus on making the code do thus and so,
instead focus on what the parts of ILE look like in actual practise.
As an Amazon Associate we earn from qualifying purchases.