|
On Jul 20, 2014, at 12:39 AM, John Yeung <gallium.arsenide@xxxxxxxxx> wrote:
On another thread, Scott Klement wrote this:
I mean, ILE really just gives you the ability to have
procedures ("functions" in other languages) that can
be stored in different objects and called... Big deal,
EVERY language in the world has some implementation
of that. (Except the OPM ones like RPG/400, et al.)
This strikes me as an unusually tame endorsement of ILE, by the
standards of this mailing list. The fact that it's Scott saying this
makes me feel a *little* better about my seemingly contrarian lack of
enthusiasm for ILE.
But my view is even a step more heretical than what is presented
above. Maybe a big step. From where I'm sitting, even OPM provides
the ability to "have procedures that can be stored in different
objects and called". These external procedures are known as... OPM
programs.
Yes, prototypes provide a measure of compile-time checking that PLISTs
do not. Yes, I'm aware that ILE modules somehow or another have
performance advantages. But for me, these are not game-changers. I'm
used to making sure my parameters match up. Our i is more than fast
enough to handle anything we throw at it. (And that's certainly a
credit to the i and to all versions of RPG.)
I will say that ILE procedures *do* provide much better support for a
functional (as opposed to imperative) style of programming. That is,
a style that a Lisp programmer would use, which is to say heavily
dependent on return values (not mutable parameters) and recursion.
But how often do you need this for business logic? In my experience,
not a lot. Return values are nice. They are definitely convenient.
Newer versions of RPG allow you to skip the redundant prototype for
same-module procedures, so I'm all for that. But recursion? I've
used this once, for a somewhat fancy home-grown fuzzy string matcher.
(And from a pure computer science standpoint, there isn't anything you
can do with recursion that you can't do with loops. It's just that
some algorithms are easier to express and implement recursively.)
To be clear, I'm not *against* ILE. I think it's nice, actually. And
I do believe that shops that already have widespread ILE use are
better-positioned than those that do not. I'm just not seeing the
pain points that are *solved* (and not traded for other pain points)
by switching from "modular-style OPM" to ILE.
Also, before anyone gets into RPG IV syntax, please also be clear that
(1) RPG IV syntax has nothing to do with ILE, and (2) I am
enthusiastically, like ten thousand percent, in favor of RPG IV
syntax, BIFs, etc. These solve a TON of pre-RPG-IV pain points, and
do so at basically no cost whatsoever.
John
--
This is the RPG programming on the IBM i (AS/400 and 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 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.