RPG doesn't have a critical mass when it comes to standard libraries. I imagine most devs who would be inclined to participate wander off and find other languages that have a critical mass, as opposed to trying to build from (almost) scratch using RPG.
From: John Yeung [mailto:gallium.arsenide@xxxxxxxxx]
Sent: Wednesday, July 05, 2017 9:37 AM
To: RPG programming on the IBM i (AS/400 and iSeries) <rpg400-l@xxxxxxxxxxxx>
Cc: IBMi Open Source Roundtable <opensource@xxxxxxxxxxxx>
Subject: Re: [IBMiOSS] RPG easier/harder to use than other languages?
[Cross-posted to RPG400-L and OPENSOURCE]
On Wed, Jul 5, 2017 at 9:39 AM, jacobus erps <jacobus.erps@xxxxxxxxx> wrote:
What RPG misses is a vibrant eco system.
There are no standard libraries to speak of.
Lack of dynamic datastructures, like maps.
I certainly agree on the lack of standard libraries. I would characterize RPG's ecosystem this way: Fledgling, underpublicized, growing. I agree it's not "vibrant" yet, but that may change. It's definitely going in the direction of vibrancy.
There was a recent mini-flurry of Stack Overflow questions by someone who has been working on their own dynamic data structures for RPG.
(You're not that someone, are you?) Their results so far are here:
Dynamic arrays for RPG have been available for many years now from at least Mihael Schmidt and Aaron Bartell, perhaps also others I'm not aware of. (As I said, underpublicized.)
I'm currently working on a versatile map implementation for RPG, hope
to release it soon as an open source project.
The map may contain any combination of key/item data types (integer,
packed decimal, date, etc), iteration is done through cursors with
The keys and items in a map maybe other maps too.
The Stack Overflow activity I mentioned above culminated in a HashMap implementation. I'm not sure it's as flexible as what you've described (allow a map to be a key?), but it ought to work very much like Java's HashMap.
I'm not too familiar with Java actually, but I know Python pretty well, and its built-in mapping structure (called "dictionary") doesn't allow keys to be mutable. Among other things, this prevents you from inadvertently mutating one key so that it becomes equal to another key.
If you're not LppEdd (Edoardo Luppi), you probably ought to at least check out what they've already done. For reference, the most relevant Stack Overflow question was this:
As an Amazon Associate we earn from qualifying purchases.