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




On Jun 27, 2011, at 11:09 AM, rpg400-l-request@xxxxxxxxxxxx wrote:

"These are fine benefits to RPG IV, and to me, the cost of using them(versus traditional RPG/400 or earlier) is extremely small. (Well, the issue of whether /free is more readable is subjective, but if you *do* like it, the cost of using it is small.) But these things are not ILE."

Subjective? Really? You don't think there's a reason why all other languages are free form? Surely that's a hint? RPG's columnar nature is firmly embedded in the annals of its history - efficiency and readability in the sense that we understand it were never a factor in that design.

I can understand if you don't see the benefits of modularity via subprocedures - I don't agree, but I can understand the perspective as long as you write teeny tiny programs. But the notion that there is no virtue in RPG IV syntax vs RPG/400 is a complete mystery to me. Expressions, date calcs, BIFs, string handling, etc. etc. The archives a full of long lists of productivity boosting features.

"Interesting. The ILE manual itself states that EXSR is faster than a subprocedure call, and my own informal, nonscientific observations agree with the manual. But this is a minor issue in most cases (like the performance penalty of the FOR loop, or using PACKED numeric types)."

True - but the manual's view is a very literal view. For example prior to a subroutine call it is common to see a variable being moved to a work field, and likewise post EXSR the "result" is moved. If those are factored into the overall cost then the differences become smaller. But more to the point - if you accept that the performance difference is a no-op then on what basis can you possibly say that:

Exsr calcPrice;

is more obvious than:

itemPrice = CalPrice( itemCode: quantity: discCode );

In the first you know nothing about what fields control the calc or where the result (if any) goes, without reading the subroutine code. In the second you have all of that information in your face. Why would you not want that advantage?


Jon Paris

www.partner400.com
www.SystemiDeveloper.com





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.