John,
Personally, I see a lot of value with this stuff integrated directly
into my RPG applications. My RPG code can interact directly with the
spreadsheet, so it can take different code paths, for example, based on
what it's finding in the spreadsheet and/or generate the spreadsheet
differently depending on interactions with the user or database, etc.
I guess you could work around that by using an intermediate file. The
RPG program does all it's interactions with an intermediate file, puts
all the info about what it needs (data, formatting, etc) all into this
intermediate file, and then you call a Python script (or native Java
program) that understands all the data in your intermediate file and
uses it to generate the spreadsheet... but this seems SIGNIFICANTLY
more complex (by an order of magnitude) and provides more points of
failure. ... and what does it gain, you exactly?
A much better solution, IMHO, would be a native RPG program to
generate/read Excel. (I actually have one of these, but haven't made it
available publicly)
As for Darryl's issues with not being able to figure out, seemingly,
every single step (can't figure out installation, can't figure out
classpath, can't figure out garbage cleanup, etc) Frankly this is
because Darryl is a bit out of his depth. He's in a situation where he
has to learn all of this for the first time for this project, and that's
why he's having so many problems. I can't see how switching to Python
would resolve that -- either way, he has to learn a whole new
environment. In that case, he'd be here complaining about installing
Python, learning how to import Python modules/add-ons, etc, instead of
the Java ones.
The big disadvantage of Python, imho, is that you can't integrate it
with RPG like Java. I personally absolutely HATE the Java environment,
and think other languages like Python, Node.js, PHP are much better.
But, I haven't seen any way to do the same level of interaction between
Python and RPG as you can do with Java. You can't call a Python method
from an RPG prototype, your RPG code cannot 'react' to things happening
in the Python environment (or a native Java program, PHP script, Node.js
script, etc) and that is the only reason I use Java sometimes for stuff
like this.
Of course, in all cases, a native ILE-based implementation is always
better, IMHO. But these aren't always available.
On 11/18/2015 9:43 AM, John Yeung wrote:
It feels endless. I want to stress for folks that are not already
knee-deep in POI-via-RPG (and maybe *especially* for folks that are!)
that there are easier ways. My preferred way is Python, but there are
others. Perhaps the most straightforward, for folks who have already
made the investment of learning Java, is to just use Java. That is,
forget about wrapping POI with RPG, and just call POI directly from
Java. Then you *will* have Java's native garbage collection take care
of everything for you.
As an Amazon Associate we earn from qualifying purchases.