Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

When does JOOQ become worth the money?

 
Tim Cooke
Sheriff
Pie
Posts: 3208
142
Clojure IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here in Belfast there is a Yes SQL Bash event happening next Monday (23-Nov-15) that's being put on by a local software/training shop Instil where Lukas Eder is joining us to talk about JOOQ. I've been interested in JOOQ for a while but have never really taken the plunge to explore it in any depth. My colleague asked a question a while back about Replacing handrolled JDBC DAO's with JOOQ because we were on the cusp of evolving our database quite significantly, but that piece of work wasn't required in the end so our database remained unchanged.

In preparation for the event I have been swotting up on JOOQ a little and was checking out the price plans. To support the Oracle database we would need the 'Professional' plan at ~400 EURO per year, per developer. So for our team of 3 developers that's ~1200 EURO a year. Given the slow evolution of our database where we write a new bit of SQL once every 6 months or so, that's around 600 EURO per SQL statement. As much as I'd love to change our in-code SQL to something much nicer, it's just not cost effective.

I've never worked on an application where the database changes all that much. For what applications would JOOQ really make sense? Just how much database change is required for it to become cost effective for a development team?
 
Tim Holloway
Saloon Keeper
Posts: 18367
56
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
JOOQ itself is open-source. You only have to pay if you want commercial support for it. And I suppose anyone who can choke out $64K per Oracle server (or whatever the going rate is these days) isn't likely to balk at €400 per developer - 10 years ago, shops in my town allegedly were paying about $1200/workstation for Rational. The cynic in me notes that there exists a certain type of common large IT shop that will pay massive sums of money to Dogbert consultants and expensive "magic bullet" software products, but then outsources the critical work to the cheapest overseas and (in the USA) H1-B contractors they can.

Personally, I'd just go full ORM. Most of the "cons" that JOOQ gave against ORMs are fairly weak to me, and the "impedance mismatch" one is questionable, because the biggest impedance mismatches I've found had more to do with java-versus-database representation translations. Stuff like an Oracle Date has a precision in seconds, but Java date types are typically in microseconds, milliseconds or whole days. To say nothing of the fact that Oracle is, if I remember aright, not one of the DBMS's that has a native boolean column data type.
 
Lukas Eder
Ranch Hand
Posts: 49
5
Java Oracle Postgres Database
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Excellent question Tim, and I'm looking forward to meeting you next Monday in Belfast, to discuss more details!

I cannot give you a complete impression of what our customers feel like, when using jOOQ - and there are certainly very different setups, depending on how deep you will integrate with SQL. Do note, though, that the commercial jOOQ licenses are floating developer workstation licenses. You can re-assign them at will to any developer who happens to work with the jOOQ API at any given day. If you're writing as little SQL as you have described, 1 license might be enough for your team. (The rest of the team will profit from the free distribution right, just like your test and production servers). 1 license amounts to slightly more than 1 EUR per day.

To answer your questions: jOOQ makes most sense as soon as any of the below apply:

- You have a "large" schema, or multiple schemas (50+ tables)
- You have complex queries
- You write lots of dynamic SQL
- You are using stored procedures
- You are using / supporting more than one RDBMS

Once any of the above applies, of course, you will get all the additional benefits for free, like CSV/JSON import/export, SQL transformation features, active records, multi-tenancy capability, etc.

Does this help? I'll happily provide you with more info also here on Code Ranch, if you have any additional questions about any of the above.
 
Tim Cooke
Sheriff
Pie
Posts: 3208
142
Clojure IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Lukas. I'll be sure to say hello.

Can you spell out exactly what the paid licence gets you as I'm a little confused on this point. Is it the integration with non open source databases? Is it just support like Tim H suggests? Or something else?
 
Lukas Eder
Ranch Hand
Posts: 49
5
Java Oracle Postgres Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes exactly. You get integration for the commercial databases and our commercial support as well as warranties and maintenance, of course.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic