Redmond Review

Remembrance of Code Past

PHP and MySQL have beaten Microsoft at the game it practically invented.

I've been on a nostalgic binge lately. I've been watching old movies, sharing tales of my childhood with my son and thinking about how much the neighborhood I grew up in has changed. The nostalgia extends to technology, too: In my column last month ("What's Old Is New Again," April 2009) I remarked how a 15-year-old Microsoft technology and a new one reflect similar industry trends.

I'm not the only one finding value in classic coding -- something I realized while taking a look at PHP and MySQL. Microsoft is really interested in these products, though at first blush it's hard to tell why. They're open source technologies, have no dependency on Windows, pose a competitive threat to .NET, and one of them, MySQL, is even owned by a longtime Microsoft nemesis in Sun Microsystems.

And yet, Microsoft is promoting Windows Server 2008 and IIS7 (with its FastCGI support) as a great place to run PHP. This is more than rhetoric: Microsoft has built something called the PHP on Windows Training Kit. It's free, it's online (get the March release candidate here), and every attendee at Microsoft's MIX09 conference in March received the kit on a USB thumb drive.

I was at MIX09 and walked away with one of the thumb drives. On the flight home, I looked it over and, forgive me for saying so, it makes PHP programming look very attractive. You can do PHP development using simple script code inline with HTML -- the language is quite intuitive and easy to follow. Plus, the kit shows you how to use PHP with SQL Server. It's easy: you use individual function calls to connect to a database, submit queries, manage parameters and fetch rows into simple arrays.

At first I couldn't put my finger on why this model was so appealing. Then I realized: It was the continuing pull of nostalgia. PHP code looks an awful lot like classic Active Server Pages. And the SQL Server driver for PHP, the code for which is similar to that for MySQL, turns out to be the thinnest of wrappers around the ODBC API. This was the coding equivalent of comfort food; I'd gone back home again. But the significance of this extends beyond me reconnecting with my past; it actually underscores why Microsoft needs to do the same.

Redmond wonders why PHP is so popular and why so many of the biggest open source applications -- WordPress, Drupal, take your pick -- are written in it. More significantly, Microsoft is struggling to understand how MySQL, the relational database that's "good enough," is stealing an increasing amount of momentum from SQL Server.

The truth is right there. The very simplicity and productivity of classic VB, ASP and earlier data-access models is what made the Microsoft developer ecosystem so huge. As important and successful as .NET has been, the framework has pushed Microsoft to abandon much of that simplicity and de-prioritize the wants and needs of the developers who once flocked to it.

PHP and MySQL have beaten Microsoft at the game it practically invented. Together, they offer a programming environment with a low barrier to entry, high productivity, more-than-sufficient functionality, low cost and a wildly enthusiastic ecosystem of developers. Dial back to the early 1990s, and that was Microsoft. In the latter part of this decade, it most certainly is not.

There were good reasons for Microsoft to focus on the enterprise. There were good reasons to make .NET a stack that required a caliber of developer perhaps more senior than those in the VB and ASP constituencies. Yes, COM was long in the tooth. Sure, VB's lack of inheritance and other programming niceties meant the Java bullies picked on the VB kids in the developer schoolyard. .NET was absolutely necessary, and its success gave Microsoft some desperately needed momentum in the developer community.

But now, more than seven years after .NET 1.0, Microsoft needs to get back to its roots. This is not a zero-sum game: Microsoft can still serve the hardcore professional developer with .NET, its base class libraries, and technologies like Windows Communication Foundation, Windows Workflow Foundation, "Oslo" and "Dublin." But Microsoft can, and must, serve the productivity programmer as well. Because if it doesn't, others clearly will.

About the Author

Andrew Brust is Research Director for Big Data and Analytics at Gigaom Research. Andrew is co-author of "Programming Microsoft SQL Server 2012" (Microsoft Press); an advisor to NYTECH, the New York Technology Council; co-moderator of Big On Data - New York's Data Intelligence Meetup; serves as Microsoft Regional Director and MVP; and is conference co-chair of Visual Studio Live!

comments powered by Disqus

Featured

  • Build Your First AI Applications with Local AI

    "AI right now feels like a vast space which can be hard to jump into," says Craig Loewen, a senior product manager at Microsoft who is helping devs unsure about making that first daunting leap.

  • On Blazor Component Reusability - From Day 0

    "We want to try to design from Day One, even Day Zero, with reusability in mind," says Blazor expert Allen Conway in imparting his expertise to an audience of hundreds in an online tech event on Tuesday.

  • Decision Tree Regression from Scratch Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of decision tree regression using the C# language. Unlike most implementations, this one does not use recursion or pointers, which makes the code easy to understand and modify.

  • Visual Studio's AI Future: Copilot .NET Upgrades and More

    At this week's Microsoft Ignite conference, the Visual Studio team showed off a future AI-powered IDE that will leverage GitHub Copilot for legacy app .NET upgrades, along with several more cutting-edge features.

  • PowerShell Gets AI-ified in 'AI Shell' Preview

    Eschewing the term "Copilot," Microsoft introduced a new AI-powered tool for PowerShell called "AI Shell," available in preview.

Subscribe on YouTube