• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

When does JOOQ become worth the money?

 
Marshal
Posts: 5950
407
IntelliJ IDE Python TypeScript Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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?
 
Saloon Keeper
Posts: 28654
211
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
Ranch Hand
Posts: 50
5
Oracle Postgres Database Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
Marshal
Posts: 5950
407
IntelliJ IDE Python TypeScript Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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: 50
5
Oracle Postgres Database Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic