|
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 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.