Ebean - 12 years as an open source project

265 views
Skip to first unread message

Rob Bygrave

unread,
Nov 14, 2018, 3:52:00 AM11/14/18
to ebean@googlegroups
Hi,

November 2006 was when I open sourced Ebean ORM. That was now 12 years ago and I think it is fair to say that there has been a lot of effort gone into Ebean to get to this point.  Every November it is worth sitting back and reviewing the state of the project and where we are going with it.

Where are we at from a technical view?
Where are we at from a holistic perspective?
Where to from here?



Where are we at from a technical view

Technically we are in great shape. We have got to a nice stable API with a complete feature set and not a lot of open issues.

Getting to this nice stable and feature complete API was a goal for me and it's great - gee, it only took 12 years!  A valid criticism has been the API changes we have pushed through - and hence the pain this causes users who have to do upgrades etc. There are definitely pro's and con's but we are here now and I think it was the right course of action.



Where are we at from a holistic perspective?

From a holistic view we probably have some disappointing areas.  For all the Ebean awesomeness on offer we have got a relatively awesome but small community and mind share. To a large extent I have not pushed for a larger community but I think we should try to do so now (given we improve the documentation a bit).  

If there are people who would like to share a story that would be great.




Where to from here?

For me the top priorities are:
- Documentation (thanks Pedro for helping here, great stuff)
- Performance monitoring (including smart collection of query plans)
- Looking at where we are not doing well (maybe tooling / Eclipse)
- Trying to earn a bigger community and more mind share 


Love to hear feedback on how you think Ebean is going and any thoughts or wishes you have.  I know a few of you have been using it pretty much since the beginning so hats off to your ability to hang in there. 



Cheers, Rob.
 

Marc

unread,
Nov 14, 2018, 5:13:32 AM11/14/18
to Ebean ORM
Happy Birthday Ebean!

And many thanks Rob for your huge effort!!

Some years ago I was "forced" to switch from hibernate to ebean because playframework was using it as default orm framework and it worked really well and stable from the beginning. Also in production.
About a year ago I tried hibernate again (version switch in play), but decided after a short period of time to continue using ebean because of first hibernate-issues I knew from years ago and nothing had changed there.

so keep up the good work and I hope the community will grow.

many thanks.

best regards
marc

Rob Bygrave

unread,
Nov 15, 2018, 1:49:15 AM11/15/18
to ebean@googlegroups
I have been wondering if it would be fun to have a 2 day Ebean conference / workshop in Germany next year.   It could be interesting to cover some topics like the various L2 caching options, working with DB replication and partitioning and ElasticSearch etc.   

How much interest is there for that sort of thing?     


Cheers, Rob.

--

---
You received this message because you are subscribed to the Google Groups "Ebean ORM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ebean+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

André Camilo

unread,
Nov 16, 2018, 12:54:57 PM11/16/18
to Ebean ORM
Happy birthday Ebean :)

Keep up the good work Rob.

Pedro Rio

unread,
Nov 19, 2018, 5:49:16 AM11/19/18
to Ebean ORM
Hi Rob,

November 2006... 12 years? Wow, that is some impressive effort, congratulations and happy birthday to Ebean.

Regarding to your questions:
On where we are today technically: I agree that Ebean has a very complete feature-set and also deals with issues we find on other ORMs (like N+1 problem) it's a great tool. I use it to power the backend of my SaaS application and so far it has proven very solid (yeah the breaking changes sometimes are not fun :) ). I would most likely use it in any other new project!

On where we are holistically: Indeed, for the quality Ebean provides, it should have a much bigger mindshare/community. I think that, if that is a goal (and I think it should be) the Ebean community (with you at the front) needs to focus on:
1) Awareness: We must attract more visitors to ebean.io
2) Conversion: People that come to the site must like what they see and start using ebean
3) Evangelizing: People that do convert to "users" of ebean must like it enough to spread the word.

Now, the problem is that we can have a much bigger awareness but without converting the users, it's basically wasted effort. Much like if Ebean was a "restaurant" that has some delicious "special menus" that are only available after the "starter menu". If the "starter menu" is not appealing enough, users won't every try the "special one". There's not a second change to make a good first impression.

People choose their frameworks/ORM/libraries, based on several factors (at least I do):
  • Technical capabilities (+1 for Ebean)
  • Documentation (Docs+Examples+Guides)
  • Finding answers to common problem (Blog posts, Stackoverflow all via google)
  • Community
  • Price (+1 for Ebean)
  • Talent available
  • Ease of use/getting started
My opinion on where to start for improvements:
- The documentation needs to be massively improved, we can't have "empty placeholders", we need good explanations, good examples (and lots of examples)
- If someone comes to the website, the most important part is starting out, that means the tutorials should be super-clear and ideally there should be integrations with the most popular projects:
  1. Using Spring/SpringBoot? We've got you covered, go here (pre-build sample project in docker, with everything configured and migrations as well? some for below)
  2. Using Play Framework? We've got you covered, go here
  3. Using Kotlin with Framework X? We've got  you covered, go here
  4. (I'm not familiar with Elastic Search, enough to know if Ebean with Elastic Search is something someone would search)
Another section on the documentation that makes sense is: "How do you this (something on Hibernate) with Ebean?" Especially, things that are hard on Hibernate and easy on Ebean. Section could also be "Migrating away from Hibernate"

Also, very important, error/warning messages regarding misconfiguration, should be super-helpful. "NullPointer Exceptions" because of a missing Anotation, or the one "Bean not Enhanced", and you don't understand why :) Beginner Ebean users (not necessary beginner programmers) must not be put of, because it's difficult to setup ebean. (An example. I have never been able to work with type-safe queries in Playframework and I've reached out for help - https://github.com/payintech/play-ebean/issues/2)

After all (or some of this) we would probably need to increase users to ebean website and improve google search results (SEO for keywords like "Java ORM, Hibernate Alternative" or others):
- Probably improve the Wikipedia Page on Ebean
- Probably publish articles in some blog medium, and share it on the usual (reddit/dzone/hacker news)
- Probably have Rob be interviewed on podcasts related to Java
- Ideally have a default/bundled integration with some important tool (Spring, Kotlin web framework) <-- This is hard, of course.

Oh well, so many ideas, so little time :)

I've been trying to fill the holes in the documentation little by little. I'll continue doing whenever I can.

Cheers Rob!

Glen Peterson

unread,
Nov 20, 2018, 5:10:27 PM11/20/18
to Ebean ORM
Just want to emphasize a few points in Pedro's post:

On Monday, November 19, 2018 at 5:49:16 AM UTC-5, Pedro Rio wrote:
If the "starter menu" is not appealing enough, users won't every try the "special one". There's not a second chance to make a good first impression.

Everyone new to eBean is an absolute beginner.  Ubuntu had a "thousand paper cuts" project a few years back where they just fixed every little issue with first-time experience.  I don't mean to dumb it down.  But some things could be clarified.
 
- The documentation needs to be massively improved, we can't have "empty placeholders", we need good explanations, good examples (and lots of examples)

Yeah, empty placeholders in the documentation like @ManyToMany or @JoinTable or whatever can be scare away adopters.  We who know ebean can just find the answer on StackOverflow, but a newbie might run away when they see the blankness.  This is something that it would be nice if someone other than Rob could fill in.  Maybe I'll try at some point...
 
- If someone comes to the website, the most important part is starting out, that means the tutorials should be super-clear and ideally there should be integrations with the most popular projects:
  1. Using Spring/SpringBoot? We've got you covered, go here (pre-build sample project in docker, with everything configured and migrations as well? some for below)
  2. Using Play Framework? We've got you covered, go here
  3. Using Kotlin with Framework X? We've got  you covered, go here
  4. (I'm not familiar with Elastic Search, enough to know if Ebean with Elastic Search is something someone would search)
Another section on the documentation that makes sense is: "How do you this (something on Hibernate) with Ebean?" Especially, things that are hard on Hibernate and easy on Ebean. Section could also be "Migrating away from Hibernate"

"Migrating away from Hibernate" - YES!  YES!  YES!  I have 3 books on how to use Hibernate.  One tells you the easy parts.  The other is outdated.  The latest is a heavy tome that is organized in such a way that I had to read most of the 800 pages to even know the right questions to ask.  No sane person is going to do that.  They just click the defaults when they install Spring and if that works, they are done.
 
Also, very important, error/warning messages regarding misconfiguration, should be super-helpful. "NullPointer Exceptions" because of a missing Anotation, or the one "Bean not Enhanced", and you don't understand why :) Beginner Ebean users (not necessary beginner programmers) must not be put of, because it's difficult to setup ebean. (An example. I have never been able to work with type-safe queries in Playframework and I've reached out for help - https://github.com/payintech/play-ebean/issues/2)

YES!  This is huge too.  Your recent work at better error messages is fantastic!  I'd rather forge ahead and do what the error messages tell me than search the web for answers.

Finally, thank you for 12 years of great work.  I've only been with you for the last few, but it's been a God-send.  I love that it can use the Kotlin constructors because it tames a lot of nullability/mutability issues.  I recommend everyone using ORM on the JVM use eBean.  Thank you!

Thibault Meyer

unread,
Nov 21, 2018, 5:14:10 AM11/21/18
to Ebean ORM
Hello Rob and all ebean user,

in our company, we are using Ebean since 3 years. We have discoverd this ORM because it was used by default by Play Framework 2. We have tried another ORMs like Hibernate or Cayenne, but Ebean was the only one who is really easy to use and to implement. Now for each java project (Web or Desktop app), Ebean is our primary ORM choice.

Now Ebean is a great & solid alternative to other ORMS and is compaible with many databases (PostgreSQL, cockroachdb, ...).

You have always been responsive in the patches and evolutions, it is super pleasant to work in these conditions.
Thanks Rob for this great project / adventure

Rob Bygrave

unread,
Nov 22, 2018, 4:38:48 PM11/22/18
to ebean@googlegroups
Thanks for all the feedback etc.  I'm going to have to read this thread a few times to absorb all the ideas.

This stuff is important in terms of determining priorities, aka where time needs to go.
- "first user experience" 
- Documentation 
- Tutorials / getting started with SpringBoot, Play, Kotlin Framework X (like Javalin)

My general thought is that it's important to prioritise well (better) and invest time here.  Ideally we could obtain more time via sponsorship, funded efforts, selling T-Shirts, providing a performance monitoring dashboard etc.  

Thanks again.
Cheers, Rob.


--

Pedro Rio

unread,
Nov 23, 2018, 4:55:10 AM11/23/18
to eb...@googlegroups.com
Hi Rob,

A couple other thoughts that popped in my mind (beware, random thoughts)

Seeing as there are some "standards" in REST APIs ( JSON:API, GraphQL, etc...) but I don't think there's anything out there that helps you building said REST APIs in regards to the database layer (all about the serialization format, I think)
It might be also interesting to have a "implementing a <InsertStandard> with Ebean" section on the website

Also, I know that Spring has a "Spring Data" project in which you can just declare some interfaces with methods like "findByName" and Spring will generate the corresponding code (or infer / reflection, not sure how it works). If that could also work with Ebean, another win.

Another thing that might be cause for concern from the exterior is the "Bus Factor". It seems that Rob is the only person behind Ebean (I also see lots of PR's from Roland), but if something (sickness, other life priorities) were to happen to Rob, Ebean would stop being maintained.

EDIT: Also, this Google Group, I don't remember the last time I got a search result on Google that pointed to this group. Heck, even searching for "ebean google group" the first result takes me to the play framework google group (which is discontinued). Something to think about.

Best regards

quarta-feira, 14 de Novembro de 2018 às 08:52:00 UTC, Rob Bygrave escreveu:

edge

unread,
Nov 25, 2018, 10:00:11 AM11/25/18
to Ebean ORM
Happy Birthday Ebean!

I think we count as one of the first users of Ebean - starting around 2008 so roughly speaking we've been using Ebean in all sorts of projects for 10+ years. We've also contributed to the project and sponsored some of the features. We've worked closely with Rob on some design issues,  bug fixing and we've had our share of Skype debugging sessions. I believe our feedback has helped shape the product in ways such as improved scalability and integration with other technologies such as Spring.   

Where to go from here?
I agree Ebean is in a really good position from the software side. However, from the marketing side I think we are all in agreement that we need do more to promote and evangelise Ebean. I think the obvious current weaknesses need to be addressed e.g. the documentation but that is happening and it is gradually getting there.

So what else could we do?

Testimonials
I think Testimonials are a very powerful way of really supplying proof of just how good Ebean is in real projects. Hearing from people who are using Ebean successfully and showing how they have used Ebean to solve real problems is probably the best way of convincing people who are e.g. evaluating Ebean. I would be willing to write a Testimonial about how we're successfully using Ebean in various critical projects. I presume there are others who would also volunteer to do the same :)

Conference
I think Rob's idea of a conference in Germany in 2019 is a great idea! (...not least because we're based in Berlin :)
A conference would give us an opportunity to meet up, hold some sessions on various topics and get a buzz going around Ebean.  We can also record/stream the sessions for people who can't attend. Maybe we could invite some larger players e.g. I've notice SAP added support for HANA recently. Anyway, we'd be happy to help out with the organisation where we can. 

Lastly, I huge Thank You to Rob for his patience, diligence and "rock star" software development abilities. Ebean is a fantastic product and Rob deserves the software equivalent to an Oscar :)

Eddie / CEO Imilia GmbH
  



Reply all
Reply to author
Forward
0 new messages