Yesterday I headed into Manhattan to meet with folks from Microsoft's Platform Strategy group, another major division of Microsoft slowly edging the company away from behemoth-dom and towards fairer play for both proprietary and open source. Slow but steady may well win this race.
Robert Duffner, senior director of platform strategy, led the discussion. Formerly with IBM in its WebSphere division, he was one of the folks who aided eBay in its internal transition to the Tomcat platform (something I'd heard about after the fact from the eBay folks themselves, but with vanishingly few technical details). One of the beauties of the way eBay had been set up, he mentioned, was that because its entire stack was a custom job, it made it all the easier for them to even consider a true open source middleware layer. "People who build their architectures from the ground up, with no legacy holdovers, have more choices. You couldn't do something like this with, say, JPMorgan Chase, where there's all this legacy Cobol and all these old-school big-iron app migrations that need to be done just to keep things running."
Small wonder, he said, the Web 2.0 luminaries all have these giant engineering departments -- not just generic IT, but whizzes who come up with solutions to problems that have no pre-set solutions. Yahoo is a perfect example, a model for others to follow in this respect. Even if it has had a lot of its light grow dim recently, there's little question the way it builds things on the inside has been stellar.
And since one of Yahoo's biggest internal tools has been PHP -- love it or hate it -- that led into how Microsoft connected back up with that. "The work we're doing with PHP is one of the biggest initiatives we have going on [in the PSG]," Robert explained. "We're talking actively about running PHP, well, on Windows, with a lot of outreach through our subsidiaries to PHP user groups. We've found there's a lot more receptivity to working with MS, across the board, than you might think."
Why pick PHP as a starting point for this kind of thing?
"A lot of this was sparked off by the engineering team on Windows Server, especially IIS 7, led by Bill Staples. They did some amazing things with IIS 7 through FastCGI, so dynamic Web engines like PHP could run well on Windows. That was a huge first step for us: it allowed us to take a good deal of what was already out there, all these existing PHP apps, and enable them to run well on Windows.
"On key thing we've been doing is contributing back to the PHP core engine for the sake of Windows performance. The other thing is the apps themselves, although this is where it gets trickier to pull off. A lot of the PHP-driven apps out there -- Moodle, Joomla, WordPress -- are hard-coded to use MySQL. If you want to plug them into other database engines, that's a bit of a challenge. So we got the support from the server and SQL Server teams, and wrote a SQL Server driver for PHP [this was indeed something I'd heard about previously--SY] to make it that much easier for these apps to talk to SQL Server. The WordPress people in particular asked us, 'Don't just create the code to optimize it for SQL Server -- can you help us abstract it so it'll talk to any database?' And we did just that."
PHP's a good start -- what about Perl and Python?
What comes after this?
"For now, it's going to be all about the top 20 PHP apps; that's our first stab at all this. Other things that are part of this space include the Web Platform Installer application, which we recently updated. That we created in response to a challenge we faced, which was how do you get all the bits for a Microsoft stack in the same way you get the bits for a LAMP stack? We wanted to create what amounted to a provider's experience, so a developer can get all the MS bits, get a Web app up and running -- and oh, by the way, if I want to run PHP in that stack instead of ASP.NET, I'd like to have the option to do so. Which we provide."
I pointed out that the Mono project has made it all the easier to run .NET applications entirely off the Windows stack. Did they have any ideas about how that might affect their own work?
Robert was pensive. "That's a good question. I see it as a sign of a healthy community. It's hard to say if there's going to be a major trend there; probably too early to get a sense of that. But to the extent that you allow customers to have as much choice as possible, I think that's the best position to be in."
On the face of it, I thought, this sort of thing cuts both ways. It means that many more opportunities for the .NET stack to run -- but it also creates a migration path away from Windows in some form, and I've long suspected one of the big attractions of Mono was to give people a graceful way to preserve legacy .NET material on a new platform, without having to use whole-machine virtualization to achieve the same ends.
Robert was optimistic that this was all simply a beginning, one where the future was far from written. "People ask about our OSS strategy, and our response is that we're just now writing the preface and introduction and first chapters of this story. The Server and Live teams are going to be doing a lot of the work in this area, to determine how we can use open source there to innovate. We're incredibly lucky to have people like Sam [Ramji] and Ray Ozzie on board; Ray gets all of this and has been a great leader in this regard.
"One of the things that happened recently was when Sam came to us and said 'What proof-of-concept stuff can we show at PDC for the cloud-computing work we're doing?' We wanted to show how we could deploy all kinds of things into the cloud, not just .NET things, so we wrote and released a plugin for the Eclipse IDE that allows C# code to be deployed directly into the cloud from within Eclipse. We also showed how we could deploy PHP apps into the cloud, and we've got Ruby and Python stuff in the same vein coming, but the basic idea is to show how the cloud is a target -- that at the end of the day it doesn't matter what platform or application language you're using."
We talked a bit more about a smattering of other stuff -- turning SharePoint into something more than just a gray corporate portal application, for instance.
As continually paradoxical as this sounds, Microsoft's going to only become more important as an open source player as time goes on. That said, you can't make an oil tanker stop and turn on a dime, and that's about what many people have expected Microsoft to do vis-a-vis its entire stance on open source. But turn they are, and turn they will.