× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



What? Specious?

How is the statement "it comes with a cost" a specious argument? If you were given an assignment to modify some code in a language you didn't know very well, would you be as productive as you normally would be? The answer is obvious. Your inability to rapidly comprehend the actions of this program is a cost, which accumulates over the lifetime of this application. If that code had been written in language and style that is common to that shop, you could have understood the intent of the original developer in much less time, retaining some of your productivity.

Lim's point was, if you happen to have a shop full of geezers who write SFGR specifications in their sleep, then the cycle might not have any negative impact on the maintenance activities of this app. But not all shops have a stable of seasoned developers familiar with these constructs, so these techniques "come with a cost" in terms of lost productivity.

More to the point, a basic tenant of design says to develop for the maintenance coder. Complex or tricky code that relies on effects that are counterintuitive should be avoided, as clever code is often the hardest code to understand. I suppose a good example of this is one that we all remember: MYDAT MULT 10000.01 NEWDAT

Do you remember the first time you saw this bit of code? Perhaps you simply accepted that this was somehow magic and adopted it use without understanding how it worked, but I had to write everything down on paper and crunch the numbers, learn that significant digits would be cast aside (non-intuitive effect) and so forth, before I was willing to make use of that technique. Not productive, nor intuitive. It cost the company for me to "learn" the trick.

JMO,
Eric

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Jerry Adams
Sent: Wednesday, December 19, 2007 6:28 AM
To: RPG programming on the AS400 / iSeries
Subject: Re: RPG Cycle (was Multi-Occurring DS)


A rather specious argument. A lot of the features available in RPG (any
version) are hidden from the programmer.

Back in the 80's I attended a COMMON session on Subfiles, even though I
was on a S/36. Within a few months I had developed a method for doing
subfiles on a /36. Obviously all of the code was plainly visible to any
programmer, but would anyone (of sound mind, anyway) want to write
subfile programs that way?

And is a real subfile program intuitively obvious to any programmer,
especially a rookie? Matching records, level control breaks, and other
features of the cycle are, compared to subfiles, intuitively obvious.
And, if not, can be understood by any programmer in less than an hour
(which is how long that session lasted in my first programming class).
Understanding subfiles can become a lifetime learning project (of
course, I'm speaking for myself). So the features that help us program
things like subfiles are verboten because they are not obvious? Poppycock.


* Jerry C. Adams
*IBM System i Programmer/Analyst
B&W Wholesale Distributors, Inc.* *
voice
615.995.7024
fax
615.995.1201
email
jerry@xxxxxxxxxxxxxxx <mailto:jerry@xxxxxxxxxxxxxxx>



Lim Hock-Chai wrote:
Again, it comes with a cost for your IT shop. May or may not be much,
depending on your staff.

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jerry Adams
Sent: Tuesday, December 18, 2007 4:23 PM
To: RPG programming on the AS400 / iSeries
Subject: RPG Cycle (was Multi-Occurring DS)

Lim Hock-Chai wrote:

As far as RPG cycle, may be, I've made too much assumption regarding

it.

In my IT shop, 99.9% of programs are NON RPG cycle programs (Primary
file...). Most programmers here do not use traditional RPG cycle
programming. Under this condition, I just do not believe it is a good



to introduce cycle programming simply because it is the best tool for
a particular task. Non RPG cycle can be just as effective.


And I still fail to see why people avoid (nay, prohibit) the use of the
cycle. Except for the myriad of old RPG II code that I have to maintain
(no RPG III), I *may* have written three or four (obviously)
cycle-dependent programs in the last five years.

The cycle, though, is part of the language just like BIFs, for example.

Some, like %found( ), I use very frequently. Others I may never have
used at all, but I know how to read the bloody manual (that section I
actually printed for quick reference and review).

Personally, I'm too old and too darn lazy to re-invent things like
matching records and level control breaks (especially when doing both at
the same time).



* Jerry C. Adams
*IBM System i Programmer/Analyst
B&W Wholesale Distributors, Inc.* *
voice
615.995.7024
fax
615.995.1201
email
jerry@xxxxxxxxxxxxxxx <mailto:jerry@xxxxxxxxxxxxxxx>




--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.