I was asked yesterday by a client whether it was better for him to run his high-availability / throughput shopping site on ASP.net or PHP. He's ready to make a "Ten Year Decision," so he needs to know that the platform he picks will continue to be well supported and that developers will be available with the skills to work on it.
I've got to say I was stymied by this question; I work regularly with both platforms and I honestly couldn't make a judgement.
Here's my opinion:
ASP.net is a comprehensively well-supported and maintained platform, utilising a dynamic and powerful language. However it is continually being overhauled and updated; with every passing season a new technology or methodology is implemented (eg. AJAX, LINQ and MVC) and developers are constantly forced to play catchup. Stop using ASP.net for six months and it'll take another six months to learn all the new techniques that have come out. ASP.net is closely coupled with Microsoft's server platform though, so performance is optimised right down to the server level and it does present the opportunity of creating compiled components that could radically improve performance.
PHP is designed solely for one purpose; to run scripts on web servers. It is very stable and efficient and the language itself is easy to work with. It is open source so it is not driven by market imperatives and the overall structure of the language does not vary greatly from one point release to the next. As far as I know the only really major changes came between PHPs 4 & 5, with the introduction of better object support and the PDO database library. It is lightweight and compact and should scale easily.
In terms of future-proofing and developers, it's my opinion that PHP developers are easier to come by but that their skill sets vary considerably from one coder to another. ASP.net developers generally tend to cost more but they could well be more manageable and predictable. The platforms themselves will continue to evolve; ASP.net more rapidly and radically but it may reach a point of stability where it's largely complete and static. PHP is probably already at this point and changes to the language itself will be fairly minor over the next decade, mostly taking the form of security improvements and performance efficiencies.
So, I still have no idea what to recommend. I think each has their pros and cons. I don't really like asking such open questions as this but I really value the opinion of the Stack Overflow community and would like to hear what it has to say.