News

VSTS 2008 Release Brings LINQ to Fore

Microsoft’s Meijer wants to use LINQ to improve Web programming.

Microsoft software architect Erik Meijer dreams of a "democratized" Web in which programming in the cloud is accessible to the masses. But he also has a recurring nightmare: "What happens if [chief architect] Ray Ozzie comes knocking on my door and asks, 'What do you have for me to make programming services for the Web easy?'

Erik Meijer

"That's what keeps me up at night," Meijer said, speaking last month at the first U.S. edition of QCon, a relatively new conference series organized by a community of software developers and enterprise architects in San Francisco. Meijer's nocturnal nail biting has led him to consider strategies for stretching the .NET Framework to cover the cloud -- the milestone Ozzie set for Microsoft's team this past summer -- and make it possible to design, develop and debug complex distributed applications using an existing and unmodified .NET compiler, and to deploy those apps anywhere.

New Building Blocks
That's a tall order, but Meijer believes with the release to manufacturing of Visual Studio 2008 last month, developers finally have the building blocks that they can start working with in Language Integrated Query (LINQ), which makes its debut with Visual Studio 2008. Meijer is one of the creators of LINQ, Microsoft's long-awaited framework designed to add a native querying syntax like SQL to .NET programming languages (see the April 1 cover story, "Looking to LINQ"). The LINQ project has initially focused on Visual Basic .NET and C# languages. LINQ defines a basic pattern of "standard sequence operators," which are monadic primitives for filtering, transforming, joining, grouping and aggregating over arbitrary collections of arbitrary types.

"LINQ will be the biggest feature that causes people to upgrade and move to .NET 3.5," says John Case, Microsoft's general manager for developer and user experience platforms and tools (see this issue's Q&A with Case on p. 33). Meijer says LINQ addresses the "impedance mismatch" problem inherent in Web programming with a new approach. Instead of trying to unify all the disparate data models Web developers have to deal with (relational data, business objects, semi-structured data in the presentation layer), it looks for what's common among them and integrates that into a general-purpose programming language.

"There are two problems when you're doing Web programming," Meijer says. "The first is that you have to deal with all these different data types. On the back-end you have relational data; in the mid-tier you have business objects; and then you have semi-structured data in the presentation layer. And all of these things are pulled together in a primitive way using strings as the glue, and it's all very fragile and horrible."

LINQ Heavyweight
A former college professor, Meijer works in Microsoft's SQL Server division. He's currently working with the Visual C# and Visual Basic language design teams on data integration in programming languages. He's one of the designers of the standard functional programming language Haskell98 and Cw (pronounced "C omega"), which is a free extension of C# designed to make data stores accessible with the same ease and type safety as strings and arrays. But he's probably best known for his work on LINQ.

Meijer admits to being a bit obsessed with this idea of "democratizing the cloud."

"I've been essentially on a 10-year quest to make programming the Web easier," he says.

Next on the LINQ agenda: simplifying the development of data-intensive, distributed apps. How? By "stretching" the current single-tier client-application design patterns to cover the cloud. Meijer expects to see this problem solved in the next few years in LINQ 2.0.

About the Author

John K. Waters is the editor in chief of a number of Converge360.com sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube