Life is real-time, and for some, future-time. Data must be, too I’m not just bored with the present, I’m uncomfortable there. I drop in on now every so often to do things like pick up my mail, write reviews, and make sure the pipes didn’t freeze last winter, but before the neighbors get a chance to screw with my mind by asking me what I’ve been up to, I’m back to that windowless place where, for all I know, the horizons to which I cast my gaze are already behind me.When I’m on my game, as I have been lately, I can haul my horizons with me when I travel on business. I sat in on a meeting that Jon Udell set up with Anders Hejlsberg, the programming language architect behind Microsoft C# and a key keeper of the .Net flame. Anders has a cool job: He gets to change C# and the underlying .Net framework to suit his vision without waiting for a standards body to convene and grunt disapprovingly.After joining Jon Udell to talk with Anders about his latest remodeling job, LINQ (language-integrated query), I wouldn’t be surprised to find Anders reading in an armchair in the next room when I come back to the time in which I belong. But, somewhat like me, he’s got to make a living in the present, so what he foresees has to have relevance right now, even though he knows that what he can turn over today is just a trailer for the vision that, I imagine, he sometimes wishes he could hold on to until it’s fully manifest. Current commercial developers will see in LINQ hope for relief from the obfuscatory pile-on logic of SQL (if you can understand it, it’s inefficient) and the XHeiroglyphics that are the blending of XList, XQuery, XSLT, XHTML, and CSS. It has always struck me as ludicrous that applications, which exist for the purpose of manipulating data, should be forced to deal with data as though it’s an external, disconnected entity. To get the data my application needs just to function, I open a connection to a database, I do a query, I get back a record set matching my query, I probably pick through that record set in code to populate native variables, I hit the database again to pull out the same data but starting from the second viewable page …It’s nuts. LINQ doesn’t make that go away, but it lays a foundation to make it go away, to flush the concept of database “is,” which is always “was.” I put my horizons on the table with Anders and asked him about truly dynamic data, data that doesn’t exist until you ask for it. That turns out to be core to LINQ’s design: No contact with the data source, which need not be a database (hooray!), occurs until you start iterating through the results. Further evidence that Anders doesn’t live in the now is his excitement about in-memory databases, which is also one of my any-minute-nows and which doesn’t map well to database query paradigms suited to static data.I can see my app ripping through memory that actually lives on another server through an InfiniBand connection. I can also see it pinging a network of sensors for temperature, strain, moisture, pressure, motion, location, acceleration, you name it. Sensors long to be asked how they feel right now. The notion of asking them in the form of a simple query on their time, not my language’s time, is the stuff of dreams. Mine, anyway. Anders is nudging applications toward real-time with LINQ, which puts us on the same page. I wonder how much of his time he spends in what passes for now? Software DevelopmentDatabasesAnalyticsTechnology IndustrySmall and Medium Business