× 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.



Peter,

What you describe is called "YAGNI", better description is here:
http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It

I agree with YAGNI to a degree -- however, it's important that your code be easy enough to refactor so that you can add the functionality later when it does become needed.

The problem with monolithic programmers is that their code is nearly impossible to refactor. This results in business features not being implemented because "it's too expensive" (meaning it takes too much time/effort to change the existing code.)

So ultimately, your code should be modular enough that you can refactor. After that, then apply YAGNI so you don't waste time creating plumbing that will never be used.

An example of this might be separating code into subprocedures, keeping them separate from each other and encapsulated, but not moving them to a separate procedure or module until the time comes when you need them.


Peter Connell wrote:
Right on.
Which is why I try to advise developers that there is nothing backward
about writing the same old dynamic calls to perform a task.
But many treat *SRVPGMs just like they do with SQL where, once bitten,
attempt to shoe-horn all code into embedded SQL requests, and likewise
wityh ILE, they engineer what can turn out to be a complex build to
generate a *SRVPGM that will only ever be used by the calling program.
It's a horses for courses thing.

My advice is, don't write a *SRVPGM unless the design needs and will
benefit from one.
I think there are many RPG'ers who delude themselves by attempting to
write code they think will be so generic that the world will beat a path
to use it, and they must use *SRVPGMs to prove this.

Peter

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: Wednesday, 25 February 2009 8:19 a.m.
To: RPG programming on the IBM i / System i
Subject: Re: Bind by reference doesn't mean dynamic call?

David,

Having a problem explaining to colleagues in a world without service programs that using them does not mean dynamic calls and thus poor performance.

I think it's a mistake to try to sell service programs as a technology
based on performance. The performance difference between a dynamic call
and a bound-by-reference call is so slight that it's never likely to
matter.


If I understand correctly, the first call is akin to being dynamic, but afterwards the link between program and service program is static and therefore as fast as a module bound by copy.

This seems to be discussing whether the program is reactivated on each
call or not. That doesn't depend on whether it's a dynamic or static
call, instead it depends on how the program is activated.

In ILE, a program remains activated until it's activation group is
reclaimed (either explicitly or automatically.) In OPM it remains
activated until it ends with LR turned on.

Programs that remain activated will call very quickly, as they're
already loaded into memory, already activated, may still have their
files open, etc, etc.

Anyone help me out in simple English?


In simple English:

Advantage to ILE is maintainability, not performance.
--
This is the RPG programming on the IBM i / System i (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.

#####################################################################################
This correspondence is for the named person's use only. It may contain confidential or legally privileged information, or both. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this correspondence in error, please immediately delete it from your system and notify the sender. You must not disclose, copy or rely on any part of this correspondence if you are not the intended recipient. Any views expressed in this message are those of the individual sender, except where the sender expressly, and with authority, states them to be the views of Veda Advantage. If you need assistance, please contact Veda Advantage on either :- Australia 133124 or New Zealand +64 9 367 6200


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.