Skip to content

Seeing Microsoft in the big picture

Dear Reader,

Disclosure: I work with Blue Parabola, Microsoft is a customer of Blue Parabola. Blue Parabola also puts on the TEK series of conferences.

It seems like every six months or so I write a pro-Microsoft post. It’s not really on purpose, it just seems like two to three times a year they remind me that there are pools of brilliance in that company, even if they are surrounded by oceans of stupidity.

This post’s catalyst

I have a lot of contact with Microsoft due to my job. However, most of it is at a detail level where it is easy to lose the big picture. It wasn’t until TEK·X and the session Tips & Tricks to get the most of PHP with IIS, Windows, and the Windows Azure Cloud by
Sumit Chawla & Kanwaljeet Singla that I got a glimpse of the big picture again. I began to see all of Microsoft’s efforts together as one, instead of seeing them as a series of individual efforts.

Side Note: If I had paid attention to Ruslan Yakushev’s webcast, “Making PHP faster on IIS“, I probably would have written this post earlier.

The big picture

Microsoft is no longer “trying to play nice” or “trying to be a friend of the PHP community”. These days Microsoft is investing real money in making sure that PHP is a viable option for programmers who work within a Windows infrastructure. With the improvements in FastCGI, the release of WinCache and their concentrated effort to get people like Josh Holmes out there in the community and talking to us, it is hard to continue saying “awe, isn’t that cute, they are trying to play in the open source arena.” For those that still think that, I’ve got news for you, not only are they playing the game, they are playing to win.

In addition to the technical advances listed above, you have movement from projects like WordPress, Joomla, web2Proj and phpBB to support Microsoft technologies.

The obvious end game

I do consider large parts of Microsoft dysfunctional. Some decisions they make don’t make sense to me no matter how I look at them; many of those cases have a serious WTF factor. However, when it comes to the PHP community, I can totally see why they are doing it. Studies have shown Many of us develop on Windows. For a whole slew of reasons, we deploy on Linux but the fact of the matter is, a lot of us develop using Windows as our OS. Microsoft wants to convince those of us who develop on Windows to actually deploy on Windows so they can sell us server licenses. (It’s not a bad thing, they plow some of that money back into open bars for conferences…don’t knock it.)

Stop laughing

I am as much of an open source developer as the next guy but I am not a zealot about it. About 12-14 months ago, I had a long talk with Josh Holmes about PHP on Windows. I told him at that time that while I couldn’t recommend people deploying PHP applications on Windows at the moment – at least, not with a straight face – I applauded their efforts to make it better. I just wasn’t convinced that their efforts had gone far enough yet to make Windows a feasible option. My opinion has now changed.

I recommend PHP on Windows…sometimes

I said I’m not a Linux zealot, I’m not a Windows zealot either; I choose the best tool for the job. There are times – for instance when deploying in a network already built out with Windows servers – when it makes more sense to deploy PHP applications on Windows servers instead of trying to slip a Linux server into that structure. I don’t advocate PHP on Windows in every case but I don’t recommend PHP on Linux in every case either anymore.

Choose tools for applicability, not ideology

My ideology when it comes to building systems is “Best tool for the job”. If that tool is Windows then I use Windows. I don’t fret it, I just install it and keep moving. WinCache, FastCGI and other improvements in IIS and PHP make PHP on Windows a good solution. That means that it’s the right tool, sometimes.


Don’t take this post as I am recommending you move to a Windows platform immediately. I’m not even recommending that you move at all. However, I am saying that the day where we could easily dismiss Windows as a deployment OS are gone. It means that our jobs just got a little harder.

Until next time,
I <3 |<

12 thoughts on “Seeing Microsoft in the big picture

  1. Hi Cal,

    Although I’m 100% right there with you, I think you need to focus also on the aspect of “purpose”. You know we’re all PHP developers and we’re spoiled by having businesses like Microsoft and IBM put effort in making our projects run on their environments as well. Which is good, very good. Now I can tell customers they can still have those projects done, without needing to change their infrastructure.

    Bottom line, I’m a PHP developer and a consultant. I need to get the job done and I rather have apps running in production on a Windows Server environment with IIS than on Windows Server with WAMP. And basically, I don’t care what environment I have to deploy to as long they keep asking me to do PHP in favor of ASP/.NET or Java.

    And knowledge is fundamental for me. To know how to deploy my apps on other systems, it gives me that extra head-start over the other guy/company. Am I therefor not open-source minded ? I think you of all people can answer to that question.

  2. I’m not sure I can totally agree with ‘best tool for the job’ over ideology. Sure – if there is a clear winner – but a lot of the time the situation is far from clear cut, and I’m in favour of a bit of ideological biasing. The same thing certainly happens at the top end of the market where sales and image are a big part of the decision process, and I think that if you believe in the value and the values of the open source projects you prefer it’s worth trying to do your bit to push in that direction when you can.

    Regarding what you said mike, I do see your point, but surely “I don’t care what environment I have to deploy to as long they keep asking me to do PHP in favor of ASP/.NET or Java” is equivalent to “I don’t care what language they use as long as they keep asking me to implement Linux in favour of Windows”.

  3. Ian, actually you’ve hit the nail right on it’s head. Clearly an error on my behalf. Most of the time, I don’t get to make the decision which platform I need to deploy to (government/enterprise). I need to make my projects work on the platform provided to me. And this knowledge gives me the benefit.

    So ignore my “I don’t care…”-sentence, because I actually do care. But most of the time I don’t get to make that call.

  4. I was pleasantly surprised during the Windows/PHP sessions and talking to some of the Microsoft folks at tekx about how much Microsoft is really getting involved with PHP. A few years ago, we couldn’t wait to stop using IIS/Windows and move to Apache but today that is no longer the case for me. I’m not going to switch everything I currently have, but now, I will consider using IIS as an option and staying in Windows because I can see that Microsoft is committed to make things work with PHP and give us the right tools to fill the voids. Two thumbs up for Microsoft from me.

  5. I couldn’t disagree more. In a real-life scenario there almost never is any opportunity for choosing either ideology *or* the solution that fits best. You get to choose what the client/company you work for/IT department has decided is the supported platform and you’re stuck with it.

    The only good thing about Microsoft doing what they are doing is that those of us who know PHP will be spared from the torture of writing .Net code.

  6. @dragonBe

    I totally get what you are saying about the client has the final decision. My point was that in many situation, where – as the consultant – I am asked how best to proceed. Up till now however, I’ve been very hesitant to recommend Windows to clients, even when they had Windows infrastructures. Now however, I am willing to do so.


  7. @ian,

    I am much more pragmatic than that. Given the choice (and I am for my personal projects) yes, I use Linux because it’s free and no matter how hard they try, Microsoft can’t answer that one. However, when dealing with a client, ideology takes a back seat to what best fits the client.


  8. @anonymous,

    I disagree. I have worked on a lot of projects where my first task after deciding what was to be built was deciding how it would be deployed. Your experience may be different, especially if you are a corporate developer and not a freelancer.

    Up till recently, my answer was try to convince the client to deploy on Linux. Now, I have to make a choice.


  9. i do agree, Microsoft’s active visibility in the community and the improvement of its environment have changed perception of php deployment on Windows.
    All the reasons and features as to why one would have preferred Linux / Apache over a Windows /IIS hosting have now been met with equal presentation. making the choice is now less about feature but rather about support and knowledge of one’s environment.
    Now all they have to do is keep up (php5.3 on the Web PI )

  10. I’m with you Cal. You use the best tools for the job, or the best tools you have. A year ago I would have been hesitant to recommend Windows or even take a job if it meant deploying on Windows. Yes, there is Apache for Windows, but if I’m going to deploy Apache I might as well just use *nix. I just finished a project on a Windows 2000/IIS box where there was no upgrade path (government, no budget, and no chance at all putting a *nix box in there). Honestly, before I started the project I had reservations about it but, in the end, it worked out great.

    I’ve also done two projects on Windows 2008 and I’m impressed with how easy it is now to set up PHP on Windows. While at work I’ve got the power to force *nix for installations, for my freelance jobs I’m happy to offer Windows as a platform if the customers are scared of *nix. Am I going to suggest Windows for every project? No, but at least it is a viable option.

  11. @Moses, @Chris

    Thanks for leaving a comment. I hope more people will take a moment to re-evaluate why they chose one OS over the other when deploying projects and make sure that they are making a technical decision and not an ideological decision. At the very least, if it is an ideological decision, at least they should be honest about it.


Comments are closed.