× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Joe/Dieter and All,

I've enjoyed reading the recent posting on Java/RPG/Performance topics....
I wanted to share my thoughts and experiences....  My passion is design and
architecutre but being a former IBM "blue zoo" employee..... I still bleed
blue....  My thoughts on the RPG versus Java and SQL discussions....

#1  Object Orientation (OO)

In a nutshell, OO is all about productivity.  OO promises the type of
productivity gains that the advent of interchangeable parts brought to the
industrial revolution.  OO and related design patterns allow the development
of software that can be reused from project to project while project
specific details can be handled by overriding the base behavior.  RPG and
other procedural languages simply don't offer productivity and flexibility
to this level, Java does  (I'm actually a recovering Smalltalk guy which
remains the most powerful language I've seen) .  The problem for most AS/400
shops is that they don't have skilled OO developers.  Most Java developers
that think they know OO really don't and to gain that skill and experience
is non-trivial, expensive, and time consuming.  However, the upside in
potential productivity gains is enormous; Java components can be developed
that "automate" the majority of software development tasks in a generic
fashion yet allow easy customization.
        To provide an example, the following link uses a completely generic Java
based component to deliver the functionality.
http://www.planetjavainc.com/wow60/runApp?id=298  (click on employees and
departments on the left hand side)

  Some of the generic services are:
.       Based on the requirements, display in a "subfile or paged" manner a set 
of
fields from a Database.
.       Allow editing of the Database record information.
.       Allow "inserts" of new Database records.
.       Paging support so if there are too many records to display, a "next and
previous" link are shown.
*     Many additional common software services

In the referenced example, the Java component to display a list of employees
and departments is exactly the same.  This means that any requirement to
select, display, edit, delete database records can be generically handled
via a single component thus saving huge amount of redundant programming.
RPG simply cannot accomplish this.  Analized deeeply, most software
development is the same behavior with differnt databases,  develop a
framework that allows generic treatment of these common tasks and we'd have
it made.  The challenge for AS400 programming shops is getting the skill and
experience to develop their reusabable component infrastructure.  Discussing
this very problem, a knowledgeable OO co-worker told me, "The problem with
this OO stuff, is that people don't even realize how powerful it is until
they've worked with it for 2 or 3 years."  The light at the end of the
tunnel is that components and frameworks are emerging that lessens the need
for the new Java programmer to understand OO design.

#2  Platform independence   (Portability)

The benefit here is that Java can run on any platform and with JDBC against
any database including SQL Server, DB2, AS400, Oracle, etc.  This capability
is often touted so I won't labor the point.  The following link is the same
exact application however it is going against DB2 on an AS400 whereas the
previous link uses DB2 on a Windows 2000 machine.
http://www.planetjavainc.com/wow60/runApp?id=299    The Java component is
exactly the same regardless of the Database!  People often argue that this
portability comes at the cost of not taking advantages of unique platform
capabilities; the truth is that platform optimization can still take place
at the lowest common denominator, which is the operating system and SQL
engine.  For example, Java is portable however Rochester and others have
written there own JVM optimized to their specific platform.  Same with SQL,
when you run a "generic" sql statement, it is a specific Database
implementation that actually executes the statement under the covers.  AS400
folks have been working for years to optimize SQL/JDBC performance as
demonstrated with AS400 unique "system wide statement caching".  V5R2 offers
a new and improved SQL optimizer.  This platform independence is actually
based on an OO design called "interfaces" which provide developers with the
capability to supply their own implementations of a needed API.  (Example:
Oracle implements their JDBC driver optimized to their DB while Rochester
produces the DB2 AS400 driver; same interface but completely different
implementations)  Same concept was used when the AS400 moved from CISC to
RISC.  OS400 was written against the MI or TIMI, you write to an interface
not an actual class then you can swap the implantation with no code changes
from the folks calling your API.  Another advantage that can be gained lies
with SQL and it's every increasing power.  Most shops that I work with
totally underestimate the power of SQL.  Its wrap in the past was that it
was slow.   This was true and today it still maybe slower than standard RPG
however it has capabilities that can be coded in a single statement that
would require significantly more effort in other technologies.   This
following link does a nice job of spelling out some of these points:
http://www.midrangeserver.com/fhg/fhg011404-story01.html Obviously RPG can
use SQL so this benefit is not exclusive to Java.

Other related random thoughts and experiences:

*  For reasons not 100% clear to me.. the AS/400 Java performance seems to
stink.  I've had and helped 3 clients move their apps to Windows and see the
performance improve dramatically.  My understanding of why is:  a)  The
AS400 JVM goes through an extra step of "byte code verification"  for
security reasons   b)  in terms of processor speed and RAM, Java is very
speed and RAM hungry,  I've watched while a "desktop Windows" running at 3
GHZ with 2GB of RAM runs circles around a decent size AS400.  Rochester,
better circle the wagons here..  Bad story and I know you are working on
it..
.       Java has industry wide adoption and related development.  This means 
that
you can go out to www.almostWhereEverYouWant.org and find help, source code,
and products related to Java.  RPG can't compete at this scope.
.       Skills:  Not many college students coming out with RPG... Java of 
course.
At current levels, most of us AS400 bigots will be golfing in Florida within
the next several years.  If you are a manager/CTO.  you care about this plus
you go with what you know which sadly becomes less and less AS/400.  We have
all battled with Big Blue marketing machine but it has turned its check at
AS/400 specific marketing and investment.
.     Rochester is investiging in Java/WebSphere and SQL not DDS and base
RPG.  Where cheap, they incorporate native support in DDS and RPG...  Makes
sense why Query/400 is dying compared to SQL?  RPG is not getting
significant investment...  IBM says, how can we reduce costs..  Deliver
software for all machines from the same code base....

My advice:

I have many additional thoughts and experiences but people including myself
have very short attention spans so I'll stop at this point:

a)      I'll share my experiences and thoughts in future writings if anyone 
cares
b)      Rochester:  Make this stuff easier for the beginner.. Don't make them
struggle for hours to figure out their CLASSPath... Oh. is that case
sensitive?  Should I have written that on the command line or put it in my
.profile file?
c)      Don't underestimate SQL.   It can do a lot at a lot faster rate than 
most
people know.
d)      Java is powerful but has a learning curve.  Once you master it.. Look
out.. Almost like a pilot figuring out a F18 versus the Cessna 152 that they
are used to.  It takes longer but the potential is light years apart.  Want
to engage in a dog fight?
e)      Use Java and SQL until you find that it doesn't perform well enough.
When you hit that consider AS400 program calls to RPG.   RPG has been
optimized for 20+ years while Java is still pretty new.   Implement business
rules as close to the Database as you can.  The advantage is that your
business rules are enforced regardless of the interface.. SQL, JDBC, DFU,
RPG, ODBC, etc.  They all drive via the Database.


System.exit(1);  // :^)



Paul Holm
Senior Web Architect
PlanetJ Corp.
Phone: 760-432-0600, Cell: 760-415-8830
WOW, Web Applications In Under 5 Minutes
http://www.gotWebData.net

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx]On Behalf Of
java400-l-request@xxxxxxxxxxxx
Sent: Monday, March 15, 2004 10:00 AM
To: java400-l@xxxxxxxxxxxx
Subject: JAVA400-L Digest, Vol 2, Issue 95




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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 copyright@midrange.com.

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.