You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Aristedes Maniatis <ar...@maniatis.org> on 2017/10/09 07:32:10 UTC

Cayenne advantages

We are currently rebuilding the Cayenne website and would like to refresh its unique selling points. What is it that brought you to Cayenne and kept you here? I know there are some EOF escapees who are here because EOF is no longer supported, but what positive reasons keep you here rather than moving to a JPA or other library?

This is not about denigrating the alternatives but highlighting what Cayenne does well and showing new developers why they should try it.

1. If you made a bullet list of your key features (even with only one item!) what would it be?

2. If you met a developer at a conference and suggest they try Cayenne, what would convince them to try it?


Ari



-- 
-------------------------->
Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

Re: Cayenne advantages

Posted by Alexander Frei <le...@gmail.com>.
I like it’s powerful and well-thought-out easiness and it’s community.
Let’s say that there are other libraries and frameworks, where you get
answers like “I don’t have the time to… do it yourself….” or you get just a
minimal answer. Here I breath different air and users get nice answers from
polite people without making them feel like idots when they’re actually
learning to use a new library.

With Cayenne you keep direct control over your database, while most
libraries simply hide it away, which might be fine as long as the project
is kept simple, but as complexity grows in the data structure, I wouldn’t
feel that confident anymore. Since most libraries will add their own
customization to implement and extend a standard java api (in many cases
this is the very reason for their existence) you’ll be forced to use that
library for a long time. On the other side in Cayenne you are responsible
for the database design. You can optimize your database as much as you need
or you can keep things simple and let Cayenne do all the hard work for you.
Of course all this comes with an additional extra layer of complexity (like
with every other library too) but in Cayenne this additional complexity is
minimal and transparent to the user, without any magic.

However, what I most like in Cayenne, is it’s amazing, very elegant and, I
suppose, unique Query Api. This api is really well designed and should
become a java standard.

I’m not a professional software developer and I don’t know if these are
unique selling points, but in my opinion this is what makes Apache Cayenne
so astonishingly powerful and easy at the same time.

Alex

2017-10-09 9:32 GMT+02:00 Aristedes Maniatis <ar...@maniatis.org>:

> We are currently rebuilding the Cayenne website and would like to refresh
> its unique selling points. What is it that brought you to Cayenne and kept
> you here? I know there are some EOF escapees who are here because EOF is no
> longer supported, but what positive reasons keep you here rather than
> moving to a JPA or other library?
>
> This is not about denigrating the alternatives but highlighting what
> Cayenne does well and showing new developers why they should try it.
>
> 1. If you made a bullet list of your key features (even with only one
> item!) what would it be?
>
> 2. If you met a developer at a conference and suggest they try Cayenne,
> what would convince them to try it?
>
>
> Ari
>
>
>
> --
> -------------------------->
> Aristedes Maniatis
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
>

Re: Cayenne advantages

Posted by Mike Kienenberger <mk...@gmail.com>.
Well, I'm still on Cayenne 3, but the number one thing for me is ObjectContext.

-- ObjectContext unit of work:  Distinct scratch areas where a set of
changes are proposed, but can be thrown away with no effort, or
committed to the database if kept -- all without ongoing open active
database connections.

-- uniquing of database objects with object context

Most of my work these days is required to be in JPA, and JPA fails to
provide for the above.


Other things I like:

- - custom cgen templates

On Mon, Oct 9, 2017 at 8:36 AM, Andrus Adamchik <an...@objectstyle.org> wrote:
>
>> On Oct 9, 2017, at 3:12 PM, Robert Zeigler <ro...@roxanemy.com> wrote:
>> * Ease of use - the runtime API is well thought-out from a user’s perspective. I still miss it. In particular, the SelectQuery API is very nice, and Cayenne’s default approaches to ideas like lazy loading, automatic association of new objects with the object context, etc.
>
> And this was before 4.0. Now we have ObjectSelect, SelectById and SQLSelect/SQLExec that are modern type-safe fluent descendants of SelectQuery/SQLTemplate.
>
>> * Clear separation of the object from the db models. ORM is great for 90% of the use-cases in an application. Sometimes, you need to bypass it. Cayenne made bypassing it straightforward and clean.
>
> Great to hear that this aspect gets some praise. I have always taken it for granted, but I guess we shouldn't.
>
>> * SQLTemplate! You could build an entire, very performant application off of SQLTemplate and still have a clean application.
>
> If you were still coding in Java, you'd love SQLSelect/SQLExec :)
>
> Andrus
>

Re: Cayenne advantages

Posted by Andrus Adamchik <an...@objectstyle.org>.
> On Oct 9, 2017, at 3:12 PM, Robert Zeigler <ro...@roxanemy.com> wrote:
> * Ease of use - the runtime API is well thought-out from a user’s perspective. I still miss it. In particular, the SelectQuery API is very nice, and Cayenne’s default approaches to ideas like lazy loading, automatic association of new objects with the object context, etc.

And this was before 4.0. Now we have ObjectSelect, SelectById and SQLSelect/SQLExec that are modern type-safe fluent descendants of SelectQuery/SQLTemplate.

> * Clear separation of the object from the db models. ORM is great for 90% of the use-cases in an application. Sometimes, you need to bypass it. Cayenne made bypassing it straightforward and clean.

Great to hear that this aspect gets some praise. I have always taken it for granted, but I guess we shouldn't.

> * SQLTemplate! You could build an entire, very performant application off of SQLTemplate and still have a clean application.

If you were still coding in Java, you'd love SQLSelect/SQLExec :)

Andrus


Re: Cayenne advantages

Posted by Robert Zeigler <ro...@roxanemy.com>.
Well, these days I do mostly python development, using SQLAlchemy. But I still look to Cayenne as my gold-standard for an ORM for several reasons.

* Ease of use - the runtime API is well thought-out from a user’s perspective. I still miss it. In particular, the SelectQuery API is very nice, and Cayenne’s default approaches to ideas like lazy loading, automatic association of new objects with the object context, etc.
* Clear separation of the object from the db models. ORM is great for 90% of the use-cases in an application. Sometimes, you need to bypass it. Cayenne made bypassing it straightforward and clean.
* SQLTemplate! You could build an entire, very performant application off of SQLTemplate and still have a clean application.

Robert

> On Oct 9, 2017, at 2:32 AM, Aristedes Maniatis <ar...@maniatis.org> wrote:
> 
> We are currently rebuilding the Cayenne website and would like to refresh its unique selling points. What is it that brought you to Cayenne and kept you here? I know there are some EOF escapees who are here because EOF is no longer supported, but what positive reasons keep you here rather than moving to a JPA or other library?
> 
> This is not about denigrating the alternatives but highlighting what Cayenne does well and showing new developers why they should try it.
> 
> 1. If you made a bullet list of your key features (even with only one item!) what would it be?
> 
> 2. If you met a developer at a conference and suggest they try Cayenne, what would convince them to try it?
> 
> 
> Ari
> 
> 
> 
> -- 
> -------------------------->
> Aristedes Maniatis
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A


Re: Cayenne advantages

Posted by Hugi Thordarson <hu...@karlmenn.is>.
In the middle of doing my own writeup—but this is a huge point. Did a quick count and apparently I've sent over 200 emails to this list in the past couple of years, all of which have been met with nothing but niceness and helpfulness. It really means a lot when picking up a new framework. You guys are awesome.

Cheers,
- hugi


> On 10 Oct 2017, at 18:14, Michael Gentry <bl...@gmail.com> wrote:
> 
> Actually, let me add a 3rd:
> 
> 3) Great community.  Everyone tries to be helpful and respectful here.
> 
> 
> On Tue, Oct 10, 2017 at 9:08 AM, Michael Gentry <bl...@gmail.com> wrote:
> 
>> Hi Ari,
>> 
>> For me it is two primary things:
>> 
>> 1) The ObjectContext.  Our data has a top-level item which faults in up-to
>> tens of thousands of child records throughout a complex object graph.  The
>> UI allows editing of the entire object graph and navigating around the
>> various levels.  At the end, a single objectContext.commitChanges()
>> persists everything that has changed.  This works amazingly well and
>> requires no additional code on our part to manage the object graph changes,
>> re-attach objects to sessions, etc.
>> 
>> 2) Cayenne Modeler.  I have it open most of the time I'm doing work that
>> touches the Cayenne graph.  It is much easier for me to visualize Cayenne
>> objects in CM than Eclipse/etc.  It is also quite easy for novice Cayenne
>> developers to run CM and get a gentle introduction in a nice visual format
>> without having to learn annotations or XML.  This greatly improves real
>> productivity while they are becoming familiar with the framework.
>> 
>> mrg
>> 
>> 
>> On Mon, Oct 9, 2017 at 3:32 AM, Aristedes Maniatis <ar...@maniatis.org>
>> wrote:
>> 
>>> We are currently rebuilding the Cayenne website and would like to refresh
>>> its unique selling points. What is it that brought you to Cayenne and kept
>>> you here? I know there are some EOF escapees who are here because EOF is no
>>> longer supported, but what positive reasons keep you here rather than
>>> moving to a JPA or other library?
>>> 
>>> This is not about denigrating the alternatives but highlighting what
>>> Cayenne does well and showing new developers why they should try it.
>>> 
>>> 1. If you made a bullet list of your key features (even with only one
>>> item!) what would it be?
>>> 
>>> 2. If you met a developer at a conference and suggest they try Cayenne,
>>> what would convince them to try it?
>>> 
>>> 
>>> Ari
>>> 
>>> 
>>> 
>>> --
>>> -------------------------->
>>> Aristedes Maniatis
>>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
>>> 
>> 
>> 


Re: Cayenne advantages

Posted by Michael Gentry <bl...@gmail.com>.
Actually, let me add a 3rd:

3) Great community.  Everyone tries to be helpful and respectful here.


On Tue, Oct 10, 2017 at 9:08 AM, Michael Gentry <bl...@gmail.com> wrote:

> Hi Ari,
>
> For me it is two primary things:
>
> 1) The ObjectContext.  Our data has a top-level item which faults in up-to
> tens of thousands of child records throughout a complex object graph.  The
> UI allows editing of the entire object graph and navigating around the
> various levels.  At the end, a single objectContext.commitChanges()
> persists everything that has changed.  This works amazingly well and
> requires no additional code on our part to manage the object graph changes,
> re-attach objects to sessions, etc.
>
> 2) Cayenne Modeler.  I have it open most of the time I'm doing work that
> touches the Cayenne graph.  It is much easier for me to visualize Cayenne
> objects in CM than Eclipse/etc.  It is also quite easy for novice Cayenne
> developers to run CM and get a gentle introduction in a nice visual format
> without having to learn annotations or XML.  This greatly improves real
> productivity while they are becoming familiar with the framework.
>
> mrg
>
>
> On Mon, Oct 9, 2017 at 3:32 AM, Aristedes Maniatis <ar...@maniatis.org>
> wrote:
>
>> We are currently rebuilding the Cayenne website and would like to refresh
>> its unique selling points. What is it that brought you to Cayenne and kept
>> you here? I know there are some EOF escapees who are here because EOF is no
>> longer supported, but what positive reasons keep you here rather than
>> moving to a JPA or other library?
>>
>> This is not about denigrating the alternatives but highlighting what
>> Cayenne does well and showing new developers why they should try it.
>>
>> 1. If you made a bullet list of your key features (even with only one
>> item!) what would it be?
>>
>> 2. If you met a developer at a conference and suggest they try Cayenne,
>> what would convince them to try it?
>>
>>
>> Ari
>>
>>
>>
>> --
>> -------------------------->
>> Aristedes Maniatis
>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
>>
>
>

Re: Cayenne advantages

Posted by Michael Gentry <bl...@gmail.com>.
Hi Ari,

For me it is two primary things:

1) The ObjectContext.  Our data has a top-level item which faults in up-to
tens of thousands of child records throughout a complex object graph.  The
UI allows editing of the entire object graph and navigating around the
various levels.  At the end, a single objectContext.commitChanges()
persists everything that has changed.  This works amazingly well and
requires no additional code on our part to manage the object graph changes,
re-attach objects to sessions, etc.

2) Cayenne Modeler.  I have it open most of the time I'm doing work that
touches the Cayenne graph.  It is much easier for me to visualize Cayenne
objects in CM than Eclipse/etc.  It is also quite easy for novice Cayenne
developers to run CM and get a gentle introduction in a nice visual format
without having to learn annotations or XML.  This greatly improves real
productivity while they are becoming familiar with the framework.

mrg


On Mon, Oct 9, 2017 at 3:32 AM, Aristedes Maniatis <ar...@maniatis.org> wrote:

> We are currently rebuilding the Cayenne website and would like to refresh
> its unique selling points. What is it that brought you to Cayenne and kept
> you here? I know there are some EOF escapees who are here because EOF is no
> longer supported, but what positive reasons keep you here rather than
> moving to a JPA or other library?
>
> This is not about denigrating the alternatives but highlighting what
> Cayenne does well and showing new developers why they should try it.
>
> 1. If you made a bullet list of your key features (even with only one
> item!) what would it be?
>
> 2. If you met a developer at a conference and suggest they try Cayenne,
> what would convince them to try it?
>
>
> Ari
>
>
>
> --
> -------------------------->
> Aristedes Maniatis
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
>