Re: Open source WO - offer
Lachlan Deck <[email protected]> Mon, 4 Sep 2006 11:25:06 +1000
| Newsgroups | gmane.comp.web.webobjects.general |
|---|---|
| Message-ID | <[email protected]> |
Hi there, On 03/09/2006, at 11:40 PM, Ashley Aitken wrote: > On 03/09/2006, at 9:23 PM, Andrus Adamchik wrote: > >> On Sep 3, 2006, at 12:09 PM, Georg Tuparev wrote: >>> Where is the open source equivalent of EOF with the same elegance >>> etc? >> >> Hehe. I can't claim to be an independent party in this discussion, >> but isn't what you say [uninformed|biased|untrue|completely >> wrong]? I understand your attachment to the technology you've been >> using for years, but let's try to be objective. >> >> In other words, do you have some facts to back this claim? ;-) > > Of course, Andrus was the founder of the Cayenne project - an open > source equivalent of EOF - now in the Apache Incubator and working > towards JPA compliance. 'Equivalent' is not a helpful word to use in that it conveys a mistruth. i.e., it's not a drop-in replacement and does not have a 1:1 comparison of features let alone maturity. But the overall concepts of what it aims to achieve have many similarities. > I believe Cayenne is an amazing achievement (of course, Andrus has > helpers now) since it would seem to most of what EOF does and even > out do EOF in certain areas (e.g. in-built notifications). Cayenne is certainly impressive for its age (we're using it a lot for a 3 tier Java Server/Client application) and Andrus has been very responsive to providing solutions to existing problems. Cayenne will mature and progress (esp given it's inclusion into the Apache development processes) but there is and will be teething problems along the way. That's the nature of it. EOF on the other hand is very mature, its interface is stable. I'm a fan of the elegance of much of it's interfaces... > It also seems to now have most of the advanced features of EOF - > nested editing contexts (called data contexts), client-side editing > contexts, and a powerful entity modelling application. Nested contexts are a new feature (I think) for Cayenne so not sure how well tested they are. At least we're looking forward to nested contexts on the client side :-) > Please correct me if I am wrong (Andrus or others), I am no expert > on Cayenne. > > Out of interest, I would like to put the following questions to > Andrus (or others in the project) since I would really like to know > just how well open source projects can do: > > 1. What percentage of EOF "features" does Cayenne have equivalent > to or better than EOF? > > 2. How many (useful ;-) features does Cayenne have that EOF doesn't? I think the more appropriate question(s) is "What features do you need?" and "What features can't you live without?" The answers to these will indicate whether Cayenne will fit your requirements... Either way - think of it this way: When people come to EOF/WO from some other technology they're often advised (appropriately) not try to force WO to work the same way as some other technology. That's true with using Cayenne. It's not EOF. I'm often finding things that I'd do using EOF (and they can be just subtle things) that either cannot be done (yet) in Cayenne or have a different approach in Cayenne. Sometimes things in EOF seem like simple features (e.g., NSArray's "@sum" KVC notations that can be operated in-memory or against a db). Java Lists/Maps just don't have these conveniences. > 3. How would the reliability, performance, efficiency of EOF and > Cayenne compare? > > Of course, EOF is much more mature than Cayenne, so I would expect > it to have higher reliability and performance, but some > quantitative indication of how they compare would be interesting. Cayenne performs acceptably well. I've not compared it to EOF because that would require building the same application for both which is not an efficient use of my time ;-). Much can be done with Cayenne so it's highly recommended where appropriate. EOF has maturity, various useful delegates, context notifications, KVC built into many an interface, stability, etc - and is as such a well oiled, elegant technology. Perhaps (to those of the Objective-C/ dynamic persuasion) a useful analogy is it's like going from Objective-C to Java. There's just things you really miss and things you gain. with regards, -- Lachlan Deck