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,495,558 hits
- RT @javacodegeeks: #jOOQ – Type safe DB querying - FREE #Java Code Geeks Academy course! buff.ly/1HkL5Dc 3 hours ago
- What's new in PostgreSQL 9.5. buff.ly/1HvDCDL. TL;DR: GROUPING SETS, FOR UPDATE SKIP LOCKED, INSERT .. ON CONFLICT UPDATE 6 hours ago
Get Back in Control of Your SQL
Top Posts & Pages
- SQL Trick: row_number() is to SELECT what dense_rank() is to SELECT DISTINCT
- Java 8 Friday: 10 Subtle Mistakes When Using the Streams API
- 10 Subtle Best Practices when Coding Java
- Do You Really Understand SQL's GROUP BY and HAVING clauses?
- The 10 Most Popular DB Engines (SQL and NoSQL)
- 10 Common Mistakes Java Developers Make when Writing SQL
- The Difference Between ROW_NUMBER(), RANK(), and DENSE_RANK()
- Use MySQL's Strict Mode on all new Projects!
- Top 10 Easy Performance Optimisations in Java
- Does Java 8 Still Need LINQ? Or is it Better than LINQ?
- Do Not Make This Mistake When Developing an SPI May 21, 2015
- How to Access a Method’s Result Value From the Finally Block May 19, 2015
- Use This Preference to Speed up Your Eclipse m2e Configuration May 14, 2015
- Functional Programming in Java 8 with Javaslang May 13, 2015
- Use this Neat Window Function Trick to Calculate Time Differences in a Time Series May 12, 2015
- PostgreSQL’s Best-Kept Secret, and how to Use it with jOOQ May 7, 2015
- How SQL GROUP BY Should Have Been Designed – Like Neo4j’s Implicit GROUP BY May 5, 2015
- This Common API Technique is Actually an Anti-Pattern April 30, 2015
- Do Not Think That One Second is Fast for Query Execution April 28, 2015
- Let’s Review How to Insert Clob or Blob via JDBC April 27, 2015