I am a PHP developer since over a decade now who has considered jumping ship several times now. I am glad I didn't. To clarify upfront, I am not against learning other languages, quite the contrary actually. But I am glad I didn't abandon PHP when most of the "bad things" said about PHP were true. Yes, PHP has flaws, maybe has more in its share than other programming languages. I wish PHP's function naming conventions were consistent (also its parameter conventions). I wish it was stricter with arrays. I wish it was stricter with comparisons. And a lot more. I won't undermine efforts required for someone to deal with these flaws but I dealt with them. I did that because I found a community and saw that a community was much more important than a language's (or framework's) technical features. My experience being involved in PHP community, specifically Drupal, has been - there is no other word for it - awesome. Actually, Drupal (code) was one of the reasons I didn't leave the PHP ecosystem but that is another story. I have written about my experience with Drupal and other technologies elsewhere (my blog) but it comes down to this: Like you said, you can write readable, testable, and fast code (in other words good code) with PHP. Design patterns apply to any language. You have to know enough about the language to decide how to implement a pattern there. Community is much more important than a language's features. By all means, use the best tool for the job (and that may not be PHP) but always look for a community behind the technology.