cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Baldwin <jfbald...@earthlink.net>
Subject Re: ORM Comparison
Date Thu, 09 Aug 2007 21:16:31 GMT
Robert,

These are the *kind* of comments I am looking for; thanks for the  
details, I have a few followup questions.

I also found that Cayenne is a cogent framework that results in  
higher productivity because not only is it feature rich, but the work- 
flow aspect is considered essential to the design (and not just an  
afterthought). BTW, I also experienced the "quick-start" phenomenon  
with Cayenne; it was a welcome surprise.

So after re-reading your comments, I suspect one of the more  
important aspects is work-flow.  In your experience, is it possible  
to configure a number of 3rd party software to create the Cayenne- 
like work-flow that is facilitated by CayenneModeler?

So unless one is a cowboy-programmer (ref Agile-insult :) ), then  
evolving a database in a methodical manner would seem to be better  
managed via the CayenneModeler and the Cayenne way of "groking"?

Joe







On Aug 9, 2007, at 4:28 PM, Robert Zeigler wrote:

> In terms of raw mapping capabilities ("what can be mapped, and  
> how"), hibernate basically has cayenne beat at this point.
> For example, hibernate supports things lie mapping to-many  
> relationships as lists, arrays, or maps ( cayenne currently only  
> supports mapping them as lists).
> Cayenne may have some mapping facilities not in hibernate, but none  
> that I'm aware of offhand (maybe the extended types facility? Not  
> sure if hibernate has an equivalent to that,
> but they probably do; oh, when I first starting using cayenne,  
> cayenne supported "lazy" relationship fetching and hibernate did  
> not, but hibernate now supports it).
>
> As you mentioned, cayenne has the modeler, whereas hibernate does  
> not offer any such support (except through 3rd parties).  ANd that,  
> in my mind, is the biggest difference. Not the modeler,
> but the mindset.  Hibernate is about "let's make an ORM with lots  
> of features".  Cayenne is about "let's make a tool and library that  
> makes developers productive".
>
> When I first delved into the world of ORM, I spent three days  
> trying to grok hibernate.  Finally, recalling that some other users  
> of tapestry were using cayenne, I tried it.
> Two hours later, my objects were mapped and created, my schema was  
> created, and I was writing my objects.  I've never looked back. I  
> wish I could say that dichotomy has lessened;
> that the hibernate people had realized "hey, people might actually  
> want to /use/ our project, instead of admire our technical genius  
> from a distance", but it doesn't appear that that's the case.
> On their website, they have a "roadmap to getting started quickly  
> with hibernate". Here's their roadmap:
>
> "Day 1: Work with the tutorials
>
>     * Download Hibernate 3.2 and extract the archive.
>
>     * Reference documentation: Read the tutorial, work with the  
> source code in the /doc/tutorial/ directory of the Hibernate  
> package. This tutorial covers a simple Hibernate standalone and web  
> application.
>
>     * Java Persistence with Hibernate: Read the tutorial in the  
> free sample chapter 2 of the book, download the Hello World code.  
> This tutorial is a complete introduction to Hibernate, Java  
> Persistence, and EJB 3.0.
>
> Day 2: Read the Documentation
>
>     * Read the rest of the reference documentation.
>
>     * Consider reading the rest of the book Java Persistence with  
> Hibernate.
>
>     * Read the FAQ.
>
> Day 3: Start Coding!
>
>     * Many examples you find on the Net are still Hibernate 1.x or  
> 2.x - read the migration guide for a list of differences to  
> Hibernate3.
>
>     * Many good patterns can be found on the Wiki Community Area,  
> such as Sessions and transactions, Open Session in View, Generic  
> Data Access Objects, ...
>
>     * Once you are familiar with basic Hibernate, download the  
> CaveatEmptor example application."
> (from: http://www.hibernate.org/152.html)
>
> That's their "getting started quickly"... any questions? ;)
> (I could also point out things like: why is the web page named  
> 152.html? Is that: 152 hours of frustration before starting  
> hibernate? Is that 152 days of reading before you start? 152 things  
> you have to do before you understand hibernate? Granted, the name  
> of a web page has nothing to do with the technical quality of the  
> hibernate code.  The technical quality of the hibernate code is,  
> I'm sure, very good.  But it harks back to my original point of the  
> paradigm of the two projects. 152.html is not a name that you could  
> guess as a user. Similarly, the hibernate "way" is nothing  
> something you can guess your way through and be pleasantly rewarded  
> when something that you tried thinking "I wonder if this will work"  
> actually does.
> Now compare that to cayenne's quick start for cayenne version 2.0.
> http://cayenne.apache.org/doc20/quick-start.html
> Hey, look, I know what that url is telling me... and I generally  
> know what the cayenne API is telling me and asking me, even before  
> reading the javadocs...
> without reading other tutorials...
>
> For me, that's one of the key differences, and one of the main  
> things that keeps in using cayenne.  Keep in mind, this is all user  
> perspective. I'm sure there are people out there who find hibernate  
> easy to use... erm, maybe?
>
> Robert
>
> PS: cayenne also has ROP, which hibernate doesn't, so if you  
> interested in writing swing front ends (truly "rich" client apps,  
> instead of lame webapps... oops, did I say that? ;), cayenne is a  
> no-brainer...
>
> PPS:
>
> On Aug 9, 2007, at 8/91:23 PM , Joe Baldwin wrote:
>
>> This is a general question I would guess at the "use case" level.
>>
>> I was recently in a conversation in which I was challenged about  
>> the selection of Cayenne over Hibernate.  I have only researched  
>> Hibernate & run some elementary demo tests.  My conclusion was  
>> that Hibernate allows you to create a mapping via an XML metadata  
>> file but that some of the mapping responsibilities (currently  
>> found in Cayenne) are left to the programmer to resolve and  
>> maintain.  I specifically pointed to Cayenne Modeler as an example  
>> of an essential tool supporting the 'change it in one place'  
>> philosophy that impacts maintenance time budgeting.
>>
>> It was asserted that Hibernate could do anything that Cayenne  
>> could do.  In addition, the CayenneModeler advantage was dismissed  
>> with a comment concerning an Eclipse plugin that is supposed to  
>> support the same features.
>>
>> Things change very quickly in the OpenSource world so perhaps I  
>> could have made a mistake, however, I don't think that I am that  
>> far off the mark.  Is there a white paper that might discuss the  
>> differences (couldn't find one at the Hibernate site)?  Does  
>> anyone have an opinion?
>>
>


Mime
View raw message