Is LINQ (or linq) a niche tool, or is it on the path to becoming foundational?
Before LinQ, Python had Generator Expressions which are specific syntax for performing queries over collections. Python's syntax is more reduced than Linq's, but let you basically perform the same queries as easy as in linq. Months ago, I wrote a blog post comparing queries in C# and Python, here is a small example:
C# Linq:
var orders = from c in customers
where c.Region == "WA"
from o in c.Orders
where o.OrderDate >= cutoffDate
select new {c.CustomerID, o.OrderID};
Python Generator Expressions:
orders = ( (c.customer_id, o.order_id)
for c in customers if c.region == 'WA'
for o in c.orders if o.date >= cutoff_date)
Syntax for queries in programming languages are an extremely useful tool. I believe every language should include something like that.
After spending years
- Handcrafting database access(in oh so many languages)
- Going throgh the Entity framework
- Fetching and storing data through the fashioned ORM of the month
It was about time somone made an easy to access and language integrated way to talk to a database. LINQ to SQL should have been made years ago. I applaud the team that come up with it - finally a database access framework that makes sense.
It's not perfect, yet, and my main headache at the moment is there's no real support for LINQ2SQL for other common databases, nor are there anything like it for Java.
(LINQ in general is nice too btw, not just LINQ to SQL :-)
I would say that integrated query technology in any language will become foundational in time, especially given the recent rise in interest of Functional programming languages.
LINQ is certainly one of the biggest reasons I personally am sticking with .NET, anyway - it's become foundational for me personally, and I'd wager a lot of devs feel this way as well.