BT

Aaron Erickson on LINQ and i4o

| by Jonathan Allen Follow 641 Followers on Jun 22, 2007. Estimated reading time: less than one minute |

In an interview with InfoQ, Aaron Erickson introduces his new LINQ extension Indexes for Objects (i4o). Indexes for Objects allows for fast lookup against in-memory collections while retaining the LINQ syntax and semantics. He also discusses how expression trees interact with LINQ and how they can be leveraged in other scenarios.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Yet another person re-invents pattern matching by peter lin

It's interesting to see people re-invent pattern matching, rather than simply read the mountain of literature in this domain. Creating in-memory indexes of data is old stuff. One just needs to understand relational theory, pattern matching and discrimination networks to build efficient and scalable indexing engine for in-memory data. There's no need to re-invent stuff when it's been around for over 2 decades.

Re: Yet another person re-invents pattern matching by Jonathan Allen

I have to say your comment doesn't make much sense to me. We ran the story because Aaron was the first person we heard about that applied the technique in a way that worked with LINQ to Objects. No one claimed he (re)invented indexing or pattern matching.

Re: Yet another person re-invents pattern matching by peter lin

Sure, it's new to LINQ and .NET, but it's old stuff. Prolog and smalltalk has been doing this kind of stuff for over a decade. My criticism is a bit harsh, since I don't see the benefit of linq. it is different and useful, but not better than other approaches. If developers are writing business logic using linq, that could very easily lead to a pile of junk. my bias 2 cents.

Re: Yet another person re-invents pattern matching by Aaron Erickson

Yes, Peter, you are right :)

It is a really simple technique. Pattern matching it isn't, but basic hashtable theory it is.

Often, it isn't how clever your theory is (mine isn't terribly clever), but it is simply the act of making sure it is available at a time when others might need it. Frankly. I waited several months after I thought of the idea - thinking "sure, MSFT has thought of this... why bother to write it". Only after I realized LINQ was in beta and not likely to change, did I bother to go ahead and code it, mostly because nobody else was bothering.

The benefit isn't the hashtable stuff, directly, but it is making it easy to use for the millions of C# developers, rather than the small number of prolog and smalltalk developers that still exist.

Frankly, I hope Microsoft implements something like this in a future version of the framework. I have no intent of making a living off i4o (that is what metalinq is for - lol - j/k). But rather, I don't want to see a bunch of people do LINQ for objects and end up writing crap code that searches through millions of objects without using indexes, and thereby making people write articles about how slow LINQ to objects is next year.

Re: Yet another person re-invents pattern matching by peter lin

my apologies if i was too harsh. I hope microsoft hooks MS BRE with LINQ to provide an efficient indexing engine. All they have to do is implement support for queries in MS BRE and it can easily provide high performance indexing. who knows, maybe MS is already considering that idea.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

5 Discuss
BT