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.io2) 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:
- 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)
- Using Play Framework? We've got you covered, go here
- Using Kotlin with Framework X? We've got you covered, go here
- (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!