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

  • 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