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



Thank you for your comments.  They were both well constructed and
educational.

I don't quite see the difference between middleware and business
applications that you do.  Of course, I work
for a company that focuses on middleware.  But we do have 300,000 employees
and we're full of applications,
middleware, tools, etc.  I think there's no clear difference.  Both our
middleware and applications seem to change/
morph/intermingle, etc. with equal regularity.  Sitting in the "middleware
trenches", I think its a lot more complex
than that.  We've got legacy data (only its at 10,000 sites we don't have
control over), applications, tools, rules, object
hierarchies coded to moving standards, etc. just like any other
application.  If anything, it might be worse, because
there is no chance to control the 'front end'.  Anyway, its not important
that we agree about that.

My take on your comments is that you might be missing one small piece of
the 'ah-ha' of OOP.  I'm not in anyway
suggesting that you are... for all I know you are 10x the OO programmer I
am.  That doesn't matter either... we're
really only having this conversation for the benefit of the whole group and
in that, there is value in the analysis.

It seems to me that you focus a lot on the object hierarchy.  My opinion is
that object hierarchies are almost always
overdone.  They impose a rigid requirement that one object is like another.
Unfortunately the OO press (until a couple
works recently) seemed to love to focus on this concept.  Perhaps because
of this, many OO programmers seem to like
to jump into 'hierarchy discovery' mode.  The problem is that when you
focus on doing this, too often an attempt is made
to stick a square peg into a round hole.

If you build an object hierarchy that is more than three levels deep, its
rare that you haven't done something wrong.  The
exception to that is probably exception classes.  :-)  With a deep object
hierarchy... you are right... when things changes
(and class1 isn't so much of a class2 anymore because of changing business
rules) you're hosed (its all relative... whenever
fundamental understandings change, you're somewhat hosed).

A far better OO model is the use of interfaces to define types, relatively
light object hierarchies and the use of composition
over inheritance.  With that model, you are in a much better position to
deal with rolling requirements over time.  I'm
continuously amazed at how often we're called upon (my team here that is)
to do things that seem very, very hard at first
glance.  And then when we analyze the needs in light of the application
flow that is well established (not the object hierarchy,
but the object interactions that define the application) how quickly and
easily we accomplish those goals.  And nearly always
without breaking existing functions (something that procedure programming
is classic for).

It seems to me that for this reason alone, frameworks like San Francisco
are often ill-fated to begin with.  They want
to build a 'stack' and often there's just no 'stack' that works.

Disclaimer:  I'm actually not qualified to comment on SF (and certainly not
the ODMG).  I saw it only from the
'outside' and I do *know* that many people that worked on it were smarter
than me.  Its only from that outside perspective
that I offer this opinion of why I, personally, would not be surprised that
its not more successful.

Richard D. Dettinger
iSeries Java Data Access Team

Democracy's enemies have always underestimated the courage of the American
people.
It was true at Concord Bridge.  It was true at Pearl Harbor.  And it was
true today.

         Rochester Post-Bulletin
         Tuesday September 11, 2001


|---------+---------------------------->
|         |           "Joe Pluta"      |
|         |           <joepluta@PlutaBr|
|         |           others.com>      |
|         |           Sent by:         |
|         |           java400-l-admin@m|
|         |           idrange.com      |
|         |                            |
|         |                            |
|         |           09/17/2002 11:59 |
|         |           AM               |
|         |           Please respond to|
|         |           java400-l        |
|         |                            |
|---------+---------------------------->
  
>----------------------------------------------------------------------------------------------------------------------------|
  |                                                                             
                                               |
  |       To:       <java400-l@midrange.com>                                    
                                               |
  |       cc:                                                                   
                                               |
  |       Subject:  RE: Java versus RPG on iSeries                              
                                               |
  |                                                                             
                                               |
  |                                                                             
                                               |
  
>----------------------------------------------------------------------------------------------------------------------------|



> From: Richard Dettinger
>
> 0) What is a business application?  Yeah, I'm serious... I guess I don't
> know.

A business application is a living, breathing entity that changes in
response to the changing requirements of a real, live business.  The rules
change, sometimes drastically, in response to external conditions.

> 1) What makes middleware a highly definable problem set?

Middleware is in large part a transport layer, and as such handles
translation, be it from one layer to another in the application, one tier
to
another in the network, or one data format to another, such as XML to HTML.

> 2) What makes business applications not highly definable problem sets?

Again, it's the dynamic nature of the business problem space.  A person
today is a vendor.  Tomorrow they may be a customer.  Unless I understand
that today, my class hierarchy may require a major overhaul tomorrow.
Unfortunately, today there is no base to work from: no two businesses can
agree on what a "calendar" is, much less a customer.  And thus, OOP may
require a lot of rework when the business paradigm shifts, whereas a
procedural program simply requires rewriting the affected piece.

This is not top say it cannot be done, Richard!  It's just that I have seen
very few valid implementations.

> 3) What makes business applications complex and changing?  And the
> middleware problem space isn't changing?

The static nature of middleware makes it very amenable to the rigid
definition requirements of a proper OOA/OOD/OOP development cycle.
Formatting HTML is a static problem set.  Defining, say, order pricing is
not.

> 4) In what possibly way is OOP "in general" a bad idea where the problem
> set is complex or changing?  That seems like the ideal environment for
the
> OOP paradigm.

I disagree.  It depends upon the level of change.  If it's merely
implementation level, then OO is great.  OO is in fact very productive once
you define your hierarchy.  But if your hierarchy changes regularly, then
OOP is a bad programming choice.  And while you may possibly be able to
develop a hierarchy that is so flexible and extensible as to support any
possible business rule changes, the amount of effort required may outweigh
the benefits of the OOP development process.

OO is nice when you can reuse your own code.  But OO really shines when you
can build on the work of others, thereby eliminating the prodigious startup
costs associated with an OO project.  Unfortunately, there is no common
ground on which business application developers can stand to share object
definitions.

Richard, this is simply my take on it.  I believe that with a proper focus,
a consortium of business application designers could possibly develop a set
of interchangeable business objects that would form the base of an OO
business framework.  This could then be used by application developers as a
basis for the next generation of application design.

Unfortunately, this has been attempted twice that I know of (San Francisco
and ODMG) and neither was particularly successful.  Until application
designers can agree on these fundamental objects definitions, I think OO is
simply an added layer of complexity to the business application development
process.

Perhaps my experience is tainted by being involved with some of the most
successful RPG business applications ever written.  I guess I know what RPG
can do, and I know what happens when people attempt to migrate business
applications to the OO paradigm.  But I'm amenable to changing my opinion.
Once I see people achieving the same level of success with Java as we have
had with RPG, then I'll rethink my position.

Joe

_______________________________________________
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l
or email: JAVA400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.








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 [javascript protected email address].

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