<Cozzi said>Class (5) items are similar to class (3) items in their
importance. Sure it would be cool to have, for example, integrated CGI/Web
built-in functions in RPG IV, but that would have been important in 1998, or
2002 or 2004 or 2006. In 2008 and beyond it is sort of like adding Pointer
Support to CL in 2006. Why do I care? I've already coded all the CL I'm ever
going to code. By 2008 or 2009 I've already written tons of CGI/Web stuff
using xTools, CGIDEV2, or Brad's eRPG library or even using the CGI APIs so
why would I care? (CGI/RPG is just an metaphor here.)
<Aaron responds with>
Bob, I don't think you are recognizing the significance of why people are
leaving in droves off of the iSeries. They aren't leaving because RPG is a
bad business logic language. They aren't leaving because the iSeries is an
unstable platform. Many are leaving because of look and feel - plain and
simple. The cost to get to that new look and feel on the iSeries is simply
more expensive than going to .NET (at least initially).
The reality of the matter is that most, if not all, of the CGIDEV2
equivalents out there are simply one step above doing raw CGI. If I had not
worked with frameworks in PHP and Java then I would be standing right next
to you with what you are saying, but there is a lot to be said about a solid
and easy to use Web/GUI thick client framework. Having to write less
plumbing saves a lot of time (i.e. look at CHAIN vs. SQL single record
SELECT).
As I said in another post awhile back, RPG is fairly well suited for an
event driven UI framework because of procedure pointers and callback
capabilities. Just think if there was an RPG "router" program that front
ended your RPG program that had business logic and screen flow code. Every
time an event (e.g. specific customer selected from an HTML table) occurred
it would send the current form to the RPG router program on the server. The
router program would then gain entry into your RPG program by way of
procedure pointer (see example code below).
D cust_listselect_event...
D PI
D pSessUId 15P 0 Value
D pEvtTyp 10 Value
D pUIObjNam 50 Value
D cstNum s 10u 0
/free
cstNum = RPGUI_getSelectedRowUnqId(pSessUId);
RPGUI_addControllerParm('EditCust': cstNum); // Priming next screens
input values
RPGUI_displayScreen('EditCust');
/end-free
I am debating whether to pursue that thought with a full prototype. Does
anybody else see the potential that I am seeing?
Aaron Bartell
http://mowyourlawn.com
As an Amazon Associate we earn from qualifying purchases.