When will we have LINQ in Java?
LINQ is one of Microsoft’s .NET Framework’s most distinct language features. When it was first introduced to languages such as C#, it required heavy changes to the language specification. Yet, this addition was extremely powerful and probably unequalled by other languages / platforms, such as Java, Scala, etc. Granted, Scala has integrated XML in a similar fashion into its language from the beginning, but that is hardly the same accomplishment. Nowadays, Typesafe developers are developing SLICK – Scala Language Integrated Connection Kit, which has similar ambitions, although the effort spent on it is hardly comparable: one “official” Scala developer against a big Microsoft team. Let alone the potential of getting into patent wars with Microsoft, should SLICK ever become popular.
What does Java have to offer?
There are many attempts of bringing LINQ-like API’s to the Java world, as the following Stack Overflow question shows:
Here’s another newcomer project by Julian Hyde, that I’ve recently discovered:
He tried his luck on the lambda-dev mailing list, without any response so far. We’re all eagerly awaiting Java 8 and project lambda with its lambda expressions and extension methods. But when will we be able to catch up with Microsoft’s LINQ? After all, jOOQ, linq4j are “internal domain specific languages”, which are all limited by the expressivity of their host language (see my previous blog post about building domain specific languages in Java).
Java 9 maybe? We can only hope!
Everytime you read an excellent article and don't share it, god kills a kitten!
- 1,306,009 hits
- jOOQ 3.5.4 has been released just now! Get it while it's hot buff.ly/1EElvNb 7 hours ago
- The interesting difference that fine-tuning JDBC can make when running medium-sized to large SELECTs. buff.ly/1xWv3Bd by @vlad_mihal… 9 hours ago
Get Back in Control of Your SQL
Top Posts & Pages
- Don't be Fooled by Generics and Backwards-Compatibility. Use Generic Generic Types
- SQL Trick: row_number() is to SELECT what dense_rank() is to SELECT DISTINCT
- 10 More Common Mistakes Java Developers Make when Writing SQL
- 10 Subtle Best Practices when Coding Java
- Add Some Entropy to Your JVM
- Java 8 Friday: 10 Subtle Mistakes When Using the Streams API
- 10 Common Mistakes Java Developers Make when Writing SQL
- 10 Things You Didn't Know About Java
- Do You Really Understand SQL's GROUP BY and HAVING clauses?
- Top 10 Easy Performance Optimisations in Java
- Don’t be Fooled by Generics and Backwards-Compatibility. Use Generic Generic Types April 1, 2015
- Hack up a Simple JDBC ResultSet Cache Using jOOQ’s MockDataProvider March 26, 2015
- jOOQ vs. Hibernate: When to Choose Which March 24, 2015
- One Year After Java 8’s Release, IDEs and Compilers are not Fully Ready Yet March 18, 2015
- The 10 Things Everyone does Wrong when Committing Pull Requests March 16, 2015
- 10 Java Articles Everyone Must Read March 13, 2015
- 3 Reasons why It’s Okay to Stick with SQL March 12, 2015
- Integrating jOOQ with Grails Featuring the UWS-jOOQ Plugin March 10, 2015
- Yak Shaving is a Good Way to Improve an API March 9, 2015
- The Java Legacy is Constantly Growing March 5, 2015