1. PHP doesn't require routing. It's done for you by Apache to the PHP file at that location. Sure, you can go the way of nice frameworks like Cake and add routing for nicer URLs, but it's not required. PHP has some solution built in.
2. Deployment. The author touched on having to restart when using mod_perl, but it's more than that. In most cases, uploading files is enough. That's why it became so popular with shared hosts. Anyone with a little knowledge could do it without the host having to give them permissions to do stuff.
3. PHP was very big on re-use in the large. Basically, re-use in the large means creating a calendar app. Re-use in the small is more like creating a framework that makes it easier to create a calendar app (ala Rails/Django). So, when you're starting up, it makes it easy to show friends something really working fast. And that builds mindshare that continues on as programmers do more things.
4. Loose typing. This is probably one of the huge ones. Many languages are dynamically typed, but if you're developing in Python or Ruby, you have to cast between types. PHP says, "don't worry, I know what you mean!" I'm personally not a fan of loose typing, but I can understand why it helps PHP gain followers (esp those new at programming).
However, I kinda disagree with the author's thesis. The author argues that PHP's community backs the language so well. I'm less inclined to agree with that. During the day, I'm often working on PHP stuff and I'm constantly finding the code already written to be sub-par. Part of that is that PHP is accessible enough for those who don't understand program design to convince themselves that they're a good programmer. And so many things written in PHP might be from people who wouldn't be able to answer "what's the difference between a binary search tree and a linked list and give an example when you would use each." Not that data structures are the only thing to judge a programmer by, but you get a lot of people in the PHP world that use the guess and check method. So, the community isn't worth as much to me because I don't have such faith in their code (while I find the Python modules I look at to be of good quality).
PHP will continue to be a dominant web language because it's easy to pick up. However, I guess I'm looking for something else.
Agree with your additions completely and would amend your #3 to say that PHP was big on re-use in the small, as well. I've known folks starting out with PHP who cobble a script together by copy-pasting snippets of code from here and there. Inelegant, yes, but when you are working on a small project it was usually effective.
This leads me to one point about PHP's documentation that I was surprised not to see. Their documentation has always (as long as I can remember, at least) had public comments. On many occasions questions I have had or example code I needed was crowdsourced by the public and located in-line below the function reference. I have been surprised other platforms don't make more extensive use of this.
Finally, in response to your "I guess I'm looking for something else." Understand your discontent - I've felt it myself over the past couple years and have found myself toying with Djagno, et. al. This fall I found myself returning to PHP with a mission to create a framework that I could use and not feel shamed to be in PHP. It's still early in development (4 months) but I believe it is looking good and getting exciting. It's called Recess, check it out sometime: http://www.recessframework.org/
I'm a bit surprised that he didn't mention that PHP has very good documentation - virtually every function has a plain-english description (translated to multiple languages) followed by several usage examples and snippets that solve common real-world issues.
Yeah, clear documentation was _the_ reason I used php. In fact, it's the same reason jQuery has become my javascript lib of choice. When documentation is complete and centralized like that, the barrier to entry is vastly lower.
Rdoc tries to be that for ruby projects, but it still feels like a step backwards. Google lessens the pain somewhat, but it's still nice to just hit php.net/manual/en or api.jquery.com and find everything I need.
You can also just hit php.net/whatever_you_are_looking_for
and it will either redirect to the docs for the most likely function or suggest functions with similar names.
I agree, the PHP documentation is pretty great. And the user notes, while sometimes hit and miss, are usually fairly useful too. Often you'll find someone who's trying to do exactly what you are, and they'll have a way to do it, and then other people will post better ways. It's a pretty cool system.
Item 2 should not really be a problem unless you are using cheap shared hosting. You should test your stuff on your workstation, not on the server. If you do not test on the server, the whole restart apache after you upload something becomes moot. Also, if you happen to change many files, what will users see in your application when half of the site uses new logic and half of it used the previous one? This is a nasty habit.
Loose typing is the cause of many, many very difficult to find bugs. Nobody should ever be exposed to that.
As for the code already written being sub-par, it comes with the low entry barrier. The easier it is, the more people who shouldn't program will program in it.
And it's only recently with the rise of virtualization that we have any options besides cheap shared hosting and horrifically expensive dedicated server/colo.
1. PHP doesn't require routing. It's done for you by Apache to the PHP file at that location. Sure, you can go the way of nice frameworks like Cake and add routing for nicer URLs, but it's not required. PHP has some solution built in.
2. Deployment. The author touched on having to restart when using mod_perl, but it's more than that. In most cases, uploading files is enough. That's why it became so popular with shared hosts. Anyone with a little knowledge could do it without the host having to give them permissions to do stuff.
3. PHP was very big on re-use in the large. Basically, re-use in the large means creating a calendar app. Re-use in the small is more like creating a framework that makes it easier to create a calendar app (ala Rails/Django). So, when you're starting up, it makes it easy to show friends something really working fast. And that builds mindshare that continues on as programmers do more things.
4. Loose typing. This is probably one of the huge ones. Many languages are dynamically typed, but if you're developing in Python or Ruby, you have to cast between types. PHP says, "don't worry, I know what you mean!" I'm personally not a fan of loose typing, but I can understand why it helps PHP gain followers (esp those new at programming).
However, I kinda disagree with the author's thesis. The author argues that PHP's community backs the language so well. I'm less inclined to agree with that. During the day, I'm often working on PHP stuff and I'm constantly finding the code already written to be sub-par. Part of that is that PHP is accessible enough for those who don't understand program design to convince themselves that they're a good programmer. And so many things written in PHP might be from people who wouldn't be able to answer "what's the difference between a binary search tree and a linked list and give an example when you would use each." Not that data structures are the only thing to judge a programmer by, but you get a lot of people in the PHP world that use the guess and check method. So, the community isn't worth as much to me because I don't have such faith in their code (while I find the Python modules I look at to be of good quality).
PHP will continue to be a dominant web language because it's easy to pick up. However, I guess I'm looking for something else.