Note: Don and I go way back, and this post was just intended as good natured ribbing. But in light of the fact that at least one other colleague could not tell that from the post, I figured I should point out explicitly that (a) I like and respect Don very much, (b) I wrote the following only because I thought the “sound“ of the PLINQ acronym was worth a chuckle, (c) I was recently a bystander to an in-depth discussion on LINQ's history that Don participated in [ergo, I used his name below], and (d) my sense of humor is apparently slighly malformed. So inspite of having had another colleague of Don's and mine give my post a once-over, I may have once again demonstrated how difficult it is to convey elbow-in-the-ribs joshing via a written medium. As for the actual technical merits of LINQ or PLINQ, it should be noted that I have no opinion whatsoever, let alone a negative opinion. I've been preoccupied elsewhere and haven't had the time to develop an opinion yet. So I offer my sincere apologies to Don if he too couldn't tell I was kidding, and hereby point out for future reference to everyone else that I'm just kidding...
After hearing for months about DLINQ and XLINQ, I suppose I shouldn't have been surprised this morning to crack open the October 2007 issue of MSDN mag and find an article about PLINQ (Parallel LINQ). It reminds me of the ActiveX days, when it seemed like every technology or product that came out was somehow "Active": ActiveSync, ActiveGrid, ActiveCrash, ActiveThis, ActiveThat, ... Today, it's ThisLINQ, ThatLINQ, and TheOtherLINQ.
So after reading the PLINQ article, I was a quite disappointed to have it confirmed that Microsoft has once again over promised and under delivered. It reminds me of the difference between the COM+ that Mary Kirkland wrote about in 1993 compared to what COM+ actually looked like when it shipped in 2000; or (more infamously) the original hype surrounding the wonders of XML Web Services.
What I'm talking about, of course, is the fact that PLINQ represents only the barest of features that Microsoft originally promised those of us at last year's SDR in the Grand Caymans, where their plans for a parallel query execution framework were first described. At the SDR, they went on and on about how TIDDLY WINQS (Threaded, Interactive Dynamic Data Layer Yields for Windows(r) In Networked Query Systems) would provide fully automated, language integrated, support for GRID computing by parallelizing queries across .NET-based systems connected in a P2P environment.
At the time, Don Box, with his little rum-based, umbrella-laden drink, flowered shirt, and carefully orchestrated disheveled appearance ("Look at me, I'm too brilliant to bothering getting a haircut or combing my hair!") waxed grandiose about how TIDDLY WINQS would automate support for massive scale computing by breaking complex query expressions into discrete sub-expressions that would be farmed out over the network to other cooperating "players" (PC nodes), each of which would compute the result for their assigned sub-expression, and then later "chip" (submit) the result of their computation into the appropriate TIDDLY WINQS "cup" (SQL Server 2005 Cluster). Only when every "player's" sub-query results were harvested, would the TIDDLY WINQS framework synthesize the final result and return the aggregate (”winning”) result to your application. And since TIDDLY WINQS (via a pluggable "connectivity provider") would automatically handle the loss or reacquisition of network connectivity, Don went on and on about the virtues of using TIDDLY WINQS in ClickOnce apps using WPF and WCF, but running in a PCE (partially connected environment).
So it came as a great disappointment to me this morning to realize that after all of the TIDDLY WINQS hype, Microsoft instead delivered PLINQ, which appears to be aptly named after the soft, dull thudding sound of the impact this unimpressive technology will like have on next-generation .NET applications.
Posted
Sep 11 2007, 08:49 AM
by
mike-woodring