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.
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!