The opposite is also true.I've seen my share of unmaintainable code in Java. The fact that a large number of PHP users aren't developpers but just want to add some code here and there explains why a lot of PHP code is ugly.But if PHP didn't exist and the same people were forced to use java you'd see a lot of horrible JSP code instead ...
Let me rephrase my comment in a more controversial way, but something I absolutely believe from 16 years of experience.
It is impossible to write maintainable code in a dynamic + weakly typed language. Instead, you have to rely on your IDE and unit tests to catch bugs.
That leads to a huge amount of extra surface area: assertions, type checking, error-throwing, etc. In many projects, unit tests become technical debt and no one ever has time to write them! Then you're really screwed.
Within my first 4 years of professional programming I'd already proved you wrong on pretty much all of your points. I'd maintained and extended a large application, written in PHP and Javascript, without the aid of an IDE or unit tests.
That doesn't mean you did it safely or efficiently. Most of the other people on here would be horrified that you didn't have any unit tests. In fact, if you had any sensitive user data in your database, you were doing something absolutely irresponsible.
A few months ago, I drove in NYC on a major, two-way road that had been repaved, but it didn't have white or yellow lines on it yet.
People were driving as fast as usual, and I didn't get into an accident. However, I (and the other drivers) were much less safe because we didn't have those lines.
What you're talking about is driving without the lines and without a seatbelt.
Based on your attitude, my guess is that your first 4 years of professional programming didn't end that long ago. That's fine, and you can believe you're super smart and doing everything right (like I did), but you're going to find out that unit tests are an industry standard for a reason.
Based on the fact that you've never met me, or seen a line of my code, I don't really give a toss.
You are the one who asserted that users of dynamically/weakly typed languages require unit tests, implying that users of staticly/strongly typed languages don't.
Of course some languages are safer than others, more expressive than others, faster than others, or whatever. You asserted that software written in dynamically typed languages is unmaintainable, an assertion that I strongly dispute.
You can write terrible code in any language. The problem is that code in dynamic languages, especially combined with weak typing and no tests, is tremendously harder to refactor without introducing regressions.