Got this from reddit: ''' Look around and you'll see that a lot of great Web sites are being constructed with PHP. It works for small tasks like browser detection, and with frameworks like Zend or Symfony can handle complex applications. So if you decide to focus on PHP, you'll have plenty of room to grow.
Non-PHP developers have many problems with the language, but I'll focus on what I care about. My personal issues with the language revolve around the fact that I see PHP as a bucket of features rather than a cohesive language. It started out as a simple and straightforward scripting language that seemed great for adding a little code logic to a personal Web site. But many of the features that made development in PHP easy turned out to be security issues, and were pushed aside in favor of safer but more cumbersome approaches. As PHP has grown, the approach to new features has baffled and occasionally offended programmers accustomed to other languages. Many useful functions were added for handling assorted databases, XML, and more, but because PHP lacked namespace support they were all put in the global namespace. Those new functions were inconsistently named - consistency is a big deal when you're trying to maintain a large application - and occasionally duplicated each other's functionality. This is very annoying when you are trying to decide which function to use or debug somebody's code. When PHP added support for objects, it did so in a way that was very clunky. You had to take special precautions when using them. Those limitations have gone away, but you still see lots of code in the wild that accounts for those special measures. PHP has recently added support for namespaces, which are one honking great idea. I'm baffled by the syntax they chose, but I'm just happy they have them. Culturally, I'm often surprised by how conservative and sloppy PHP coders can be. I still know several who insist on using PHP 4, because that's what they're familiar with. They assemble elaborate, brittle messes which fall over if there's so much as a strong wind. It's fair to say this type exists in every programming community, but I notice these guys more because I get called to fix a lot of crufty PHP code. If you want to use PHP, don't be one of those guys. Go ahead and use PHP. It has many shortcomings, but it works and it's widely available. Study it. Learn best practices. Develop a strong testing approach. Document your code. Search for good PHP code and try to emulate it. But I strongly suggest you also learn other languages. The habits you pick up from Ruby, Python, and Perl can improve your PHP code. You may end up deciding that you prefer Python and the Django framework, or Ruby on Rails, or Catalyst for Perl. Whatever makes you happy. Just try to excel rather than settling for an elaborate, brittle mess. Heck, you may even prefer Java. It's a big world, after all. ''' KOkon.
