Re: JPA crossroads

From: Michael Gentry (mgentr..asslight.net)
Date: Mon Apr 06 2009 - 12:10:13 EDT

  • Next message: Joseph Schmidt: "hessian as a separate solution?"

    On Mon, Apr 6, 2009 at 3:55 AM, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > Comments?

    I fear this will be a bit long-winded, but I hope it will be coherent.

    Having JPA in Cayenne has never been a selling point for me
    personally. Chasing the JPA specification feels like a distraction
    and almost like an admission that Cayenne classic (the "real" Cayenne
    -- Cayenne's strength) isn't worthwhile. We may never get there and
    the cost of chasing the JPA specification is that Cayenne classic
    suffers. For people that want JPA, they'll almost always choose
    Hibernate because it is popular and/or because it is driving the
    specification. Even if Cayenne could satisfy someone's JPA checklist
    requirement, they'd most likely find another reason to not use
    Cayenne. That's fine. You can't appeal to everyone. Besides, the
    J2EE world seems to chase a different silver bullet every few years
    and JPA may evaporate as trends change.

    I think Cayenne should focus on what separates it from Hibernate/JPA
    and, in my mind, makes it better, plus add new features that make
    sense within the Cayenne world. Apple isn't gaining market share from
    Microsoft by trying to be more like Microsoft.

    Some examples:

    Improve Cayenne Modeler. This is a huge advantage of Cayenne over
    Hibernate. It is very useful as-is, but has some weaknesses, such as:
    can't open multiple models at the same time, related DbEntity and
    ObjEntity get too spread out in large models (too much scrolling),
    relationship mapping could be easier, no way to browse the database
    (I'm still working on my DBEdit clone, but it isn't close to finished
    yet), getting rid of HSQLDB for the preferences, etc. The better the
    modeler, the better the image of Cayenne -- especially to new users.
    From Gavin King's comments in the past, he thinks GUIs are for wimps
    and I don't think Hibernate will ever have one (in the core
    distribution) as long as he is the driving force behind Hibernate.
    This is a key distinguishing feature of Cayenne and should be
    leveraged. Even Apple has dropped their EOModeler support in OS X
    10.5.

    Hibernate/JPA has nothing like an ObjectContext. This feature should
    be emphasized more. I doubt Hibernate/JPA will incorporate one
    anytime in the near future, either. This is another key
    distinguishing feature.

    Enhance ROP. I've been looking at Cappuccino lately and am intrigued
    by the idea of a robust web-based GUI that retrieves and saves all
    data by JSON. (Yes, there are other Web 2.0 apps that make heavy use
    of JSON, too.) If the Cayenne Web Service could vend data through
    JSON instead of Hessian, it might appeal to more people looking to go
    into Web 2.0.

    Better integration with Apache projects. The Click framework is now
    in the Apache Incubator and includes Cayenne support. It would also
    be nice to see Tapestry and Wicket include it, too. There aren't
    really robust installers (like what Apple did with WebObjects), but at
    a minimum it would be nice if there were Maven archetypes for various
    frameworks that could configure Cayenne support automatically. Google
    Summer of Code task, possibly?

    There are many other things (better marketing by having papers
    published, providing support for larger companies that might be
    willing to invest in it, etc), but I've been long-winded enough. All
    of these things take time and effort, but I think having a clear
    direction and goal would really help that, too.

    Thanks,

    mrg

    PS. I'm hoping for more comments, too ...



    This archive was generated by hypermail 2.0.0 : Mon Apr 06 2009 - 12:11:03 EDT