Hi all,


Let me first introduce myself. I am Per Minborg, CTO and co-founder of 
Speedment.


Interesting topic! Speedment and JOOQ share many common principles. For 
example, both have a "database first" approach in the way that the database 
model drives the entities/tuples and not the other way around (which is 
usually the case with other ORMs). Speedment and JOOQ both have code 
generation, type safe access, active record pattern, multi-tenancy support, 
streams, etc.


However, JOOQ is using SQL for querying the database whereas Speedment is 
using Java 8 Streams. This is arguably the biggest difference between the 
two frameworks. Speedment and JOOQ are complementary technologies rarely 
competing for the same developer segments.


There are many applications where JOOQ is a good alternative, especially 
comparing with older ORMs like Hibernate where there is a lot of "magic" 
going on under the hood and your performance becomes unpredictable. JOOQ 
allows you to work directly with SQL and you will get predicability and 
model your application around that. Presumably, JOOQ has a lot of other 
good features that I have not mentioned here too.


Goals With Speedment


*To Let Developers Remain in Java*

Speedment allows developers to use one language, namely Java. Providing a 
single-language framework that is efficient, predicable and robust provides 
great benefits for a sizable number of developers*. Speedment will be able 
to predictably model very complex SQL queries with multiple JOINS etc. 
simply by using Java 8 streams. Shortly, we will write a post on how this 
is going to work*. Read more on Speedment Stream queries on DZone  
https://dzone.com/articles/java-8-query-databases-using-streams


*To give the Enduser Insane Speed*

Speedment´s advanced in-JVM-memory solution delivers exhilarating 
performance. When adding “insane mode”, it is possible to develop 
applications that performs 10-100 times faster than normal database 
queries. The data is kept close to the application in on-heap or off-heap 
memory and thus objects can be retrieved much faster than for SQL bound 
applications. See live example with a Sencha application, 
https://www.youtube.com/watch?v=QJs3yjInlKI . 


*To be Able to Connect to All Existing Data* 

Speedment does not expose SQL at all, meaning that the developer can remain 
in Java without any SQL coding. This has many benefits. For example, 
Speedment supports relational databases as well as other types of databases 
like MongoDB or other NoSQL databases or even data that lives in files or 
dumps. Speedment can also use distributed caches like Hazelcast. 


RDBMSes are a mature and good technology and with coming technologies (like 
SSD improvements, reduction of RAM prices and the soon-to-come introduction 
of memristors) , performance of RDBMSes will improve dramatically over 
time. This is a reason to use frameworks like Speedment and JOOQ and to 
keep existing SQL databases instead of launching expensive and risk-prone 
migration projects to NoSQL databases. 


Lukas’s proposal of using JOOQ to power Speedment's RDBMS access is 
certainly worth exploring.  I am looking forward to meeting Lukas and the 
JOOQ team.


Thanks, Per

On Friday, December 11, 2015 at 7:54:09 PM UTC-8, Adam Zell wrote:
>
> Hello,
>
> Has anyone had a chance to compare jOOQ with http://www.speedment.org/? 
>  Their approaches appear similar with perhaps a bigger emphasis on streams 
> in Speedment. 
>

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to