4 ms·
Ask HN: Why does PHP "suck"?
Let me be clear: I'm not a PHP hacker, I don't use it and probably won't have an immediate need for it. However it's been my perception that many people have a strong opinion about PHP. I'm wondering what specific technical reasons there are for this?
(Please excuse me if this isn't the right method for asking these kinds of questions.)
Edit: I don't actually have an opinion, in other words I don't think it "sucks", but I'm hoping that some of you might be able to address that "PHP sucks!" line I read so often.
- bmelton 16y agoIt doesn't. You're right, this isn't the right way to ask these questions, and since you obviously recognized that, I can't imagine why you didn't bother to try to come up with a less inflammatory way of asking the question.
- nbpoole 16y agoA very good answer from Quora: http://www.quora.com/What-are-PHP-s-main-flaws-(and-good-parts)/answer/Brian-Krausz http://www.quora.com/What-are-PHP-s-main-flaws-(and-good-par... Or, if you'd prefer an HN discussion: http://news.ycombinator.com/item?id=1805729 http://news.ycombinator.com/item?id=1805729
- lowprofile 16y agoIt doesn't. It is like anything else, strengths and weaknesses. Disclaimer: I am biased since my successes have all used it.
- techvibe 16y agoI know HN ist not place to prais php... PHP ist easy to learn and it easy to code in php, but if your a professional software developer you can also write professional software for php. You can develop faster, because of large amount of built-in functions and classes. The "shared nothing" philosophy makes it almost unbeatable in terms of performance. Thats why a majority of large sites like Facebook, Wikipedia, Yahoo and Flickr is powered by PHP. Well php is not as structured as ruby or python. Sometimes it is not structured at all. :-( Other HN users would certainly talk about disadvantages of PHPafter my comment. ;-)
- bmelton 16y agoPlease explain how you consider it 'less structured'. I admittedly don't work with much PHP any more, but it has namespaces, classes and objects. I can write linear Python just as ugly as anything a PHP developer could come up with (probably). And I could write MUCH more destructive C code than anybody in PHP could (probably). If you mean it's less structured because of Rails or Django, I'd submit that PHP has CodeIgniter, Zend, and a bevy of other frameworks that all seem to be pretty solid to an outsider looking in.
- jnankin 16y agoI think part of this is the fact that there are a myriad of functions that are just "baked in" to the language, making it a little chaotic. Sometimes it seems like some PHP contributer needed some function and just decided to add it to the language. (Examples: rsort, sort, http_build_query, rawurldecode, urldecode, etc.) There should be Util or Helper libraries that do that, and in a much more organized way. On the flip side, these commonly used functions are written in C, so they're most likely faster than if you were to write your own in php or load a library. Either way, I love PHP and use Symfony for all of my projects. PHP/Symfony is pretty much like rails but without the cracked out ruby syntax.
- redredraider 16y agoPHP doesn't suck. It runs the internet. It's possible to write crappy code in any language.
- rosenjon 16y agoYes...it sucks so much, that Facebook used it to scale a network worth $50 billion dollars today. From a coding perspective, it is a very "loose" language (not that kind of loose). This has advantages and disadvantages, depending on what you are doing. It is very easy to learn, and therefore there is a large degree of stratification with PHP devs. Professional coders turn their nose up at PHP, because it is kind of like telling Tiger Woods that you play golf. Maybe you do...but you don't play his game of golf. It's more impressive to say you code in a language that is difficult to do well, and that will punish you badly if you don't code in it well. PHP is pretty forgiving, even for pretty crappy code (I've seen some pretty awful stuff). The truth is that PHP is a great web language. Rails and other frameworks provide tighter integration with the db and view layers, but this isn't necessarily a good thing. PHP allows for that level of integration if you want it (as mentioned, there are many PHP based frameworks). It also happens to have a large, open source code base that is reviewed by many, many eyes, so bugs get fixed quickly and the language evolves quickly. The help manual is superb, and it performs well across hardware platforms. You will hear many baseball fans saying the other team's players suck. Most of the time it isn't true.... it's just a pride thing.
- code 16y agoIt's funny but people always reference Facebook whenever PHP is called to discussion. Former CTO and now cofounder of Quora, Adam D'Angelo, has said so himself the main reason for Facebook staying on PHP was mostly for legacy reasons. There was simply no good reason to continue using PHP but it had already become a core part of Facebook so they optimize as best as they can. In building Quora, he decided in hindsight to use Python and had Facebook not been so entrench in it, they probably would have switched. That isn't to say Facebook doesn't already use other languages as part of their infrastructure. And it was in part why hiphop was developed. That said, I have nothing personal against PHP and have been a PHP developer for years. It does get the job done and is forgiving as you have said but make no mistake, there are better alternatives. There are things that, for example, Python and Ruby is able to do that PHP can't since PHP is purely a web base language and Python and Ruby are not. At the end of the day, it's really what the developer is most comfortable with.
- 16y ago