Oh come on, does everybody here have to bash .Net? You do get an enormous performance boost from actually using a compiled language. The libraries are vast, and CLR lets you access other languages; and C# 3.0, with closures and linq and type inference, has become significantly more concise and elegant than Java.
And DAL's do matter for big apps. Ironically I advocate NHibernate as the ORM basis for a DAL, which is a port of a Java technology, so that doesn't make me much of a .Net-ist. And, sure, Doctrine ORM is coming for PHP.
I can understand mocking .Net in favor of the Java EE stack, or Python, or Ruby with RoR. But PHP? Really? PHP has a community supporting it - but is it really a language any of us would deliberately choose to write in, if not for its market share and ease of use for tiny starter projects?
A limited interpreted language that's unfriendly to serious architectural patterns, but that's just got so much market share because it's supported by a lot of infrastructure and because newbies can build toy projects in it easily - doesn't that sound like a typical anti-VB 6.0 rant from a few years back? It's just that now Microsoft happens to be on the other side of the argument.
That massive sentence that the ".Net" guy spewed off is what turned me off to the .Net community. All of the talks sound exactly like that, and it's depressing.
(disclaimer: I make my money doing .Net work, no matter how hard I try to escape)
DAL (data access layer, I presume): PDO or any of the other competing access layers. Talking to a database is not an issue with PHP.
You repurpose business logic to different environments by maintaining good separation of concerns, which is definitely doable in PHP despite the prevalence of crappy PHP code out there. That's a community problem.
Faulting PHP for not having "compile-time type checking" is like faulting a car for not flying.
The solution for PHP performance is opcode caching. You certainly aren't going to write novel Monte Carlo simulation code in PHP, though - that's not what it was designed for.
You have to evaluate a language/platform against its design goals, and failing to do that just broadcasts ignorance.
Step back and look at the menagerie of lame form based applications that get churned out by oversized .NET development teams and I assure you that one decent PHP coder could write a functional equivalent with far less overhead.
Corporate types love .NET because it provides a comfortable buffer of bureaucractic bullshit that makes them look busy without actually producing anything. The whole Microsoft infrastructure just keeps people busy upgrading, fixing, reinstalling, documenting, and arranging project scehdules. It's just pure Dilbertware.
Both sides are guilty of frivilous misconceptions about the other's language of choice. I avidly use PHP, but I have had to work on projects in .NET before as well.
Personally I prefer PHP. I could probably state reasons why and a .NET fanboy would come through and say .NET does all of those too.
People can write bad code in any language -- It just seems that alot of the people who write bad code prefer PHP; that's not to say there aren't some amazing PHP coders out there.
And DAL's do matter for big apps. Ironically I advocate NHibernate as the ORM basis for a DAL, which is a port of a Java technology, so that doesn't make me much of a .Net-ist. And, sure, Doctrine ORM is coming for PHP.
I can understand mocking .Net in favor of the Java EE stack, or Python, or Ruby with RoR. But PHP? Really? PHP has a community supporting it - but is it really a language any of us would deliberately choose to write in, if not for its market share and ease of use for tiny starter projects?
A limited interpreted language that's unfriendly to serious architectural patterns, but that's just got so much market share because it's supported by a lot of infrastructure and because newbies can build toy projects in it easily - doesn't that sound like a typical anti-VB 6.0 rant from a few years back? It's just that now Microsoft happens to be on the other side of the argument.