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,872,914 hits
- What opportunities does SAP HANA Cloud Platform present for developers – and the Java community in particular? buff.ly/1MZkfIm 2 days ago
- The contest for the #Annotatiomaniac of the year 2015 is still running - We haven't yet decided. Are you up for it? buff.ly/1KdkMWV 2 days ago
Get Back in Control of Your SQL
Top Posts & Pages
- 10 Subtle Best Practices when Coding Java
- Do You Really Understand SQL's GROUP BY and HAVING clauses?
- Top 10 Easy Performance Optimisations in Java
- There is no Such Thing as Object-Relational Impedance Mismatch
- The Difference Between ROW_NUMBER(), RANK(), and DENSE_RANK()
- Top 10 Useful, Yet Paranoid Java Programming Techniques
- Java 8 Friday: 10 Subtle Mistakes When Using the Streams API
- The 10 Most Popular DB Engines (SQL and NoSQL)
- SQL Trick: row_number() is to SELECT what dense_rank() is to SELECT DISTINCT
- Java 8 Friday Goodies: Map Enhancements
- There is no Such Thing as Object-Relational Impedance Mismatch August 26, 2015
- Divided we Stand: Optional August 20, 2015
- jOOQ Tuesdays: Thomas Müller Unveils How HSQLDB Evolved into the Popular H2 Database August 18, 2015
- Common SQL Clauses and Their Equivalents in Java 8 Streams August 13, 2015
- Top 10 Useful, Yet Paranoid Java Programming Techniques August 11, 2015
- RAM is the new SSD August 5, 2015
- INTERSECT – the Underestimated Two-Way IN Predicate August 4, 2015
- Java 8’s Method References Put Further Restrictions on Overloading July 28, 2015
- NULL is Not The Billion Dollar Mistake. A Counter-Rant July 22, 2015
- What the sun.misc.Unsafe Misery Teaches Us July 20, 2015