On Mon, Jul 24, 2017 at 1:42 PM, Mark Murphy/STAR BASE Consulting Inc.
<mmurphy@xxxxxxxxxxxxxxx> wrote:
The rm_ doesn't really bother me as all the rm_ procedures would at least indicate to me that they belong to a common library. But if enough of us start writing libraries, namespacing them as a part of the procedure name is going to become a problem.
This is a lot more compelling (and concerning) to me than the
terseness of the stuff that comes *after* the `rm_` prefix.
Even before we get into the situation of someone else writing some
other package whose "natural" prefix would be `rm_`, I am already kind
of put off by how much the prefix has to be repeated in the code
samples found in the documentation. But I think this might be the best
the author could do, given the nature of RPG.
This is where it becomes very clear that RPG is *not* object-oriented.
While GUIs are often cited as one area where OOP is a good fit, I
think abstract data types are another, perhaps even better one. When
you can associate functions (not just data) with objects, then each
instance can itself serve as a namespace, and you don't have to worry
about whether you're using the right function for the right data type.
There are of course other ways to deal with abstract data types. There
are languages out there which are not very object-oriented, yet still
manage to have much richer data type systems than RPG. But I think
those would be even more foreign and hard to learn for typical RPG
programmers than OOP.
There is an RFE out on developerworks that requests a better way to namespace things like this, and it is going to become more important as libraries develop.
I think you are right about this.
The Zen of Python has as its last line
"Namespaces are one honking great idea -- let's do more of those!"
Indeed, I think that would be a great step in the evolution of RPG.
John Y.
As an Amazon Associate we earn from qualifying purchases.