5 ms·
PHP Sucks, But It Doesn't Matter
- edw519 18y ago"PHP Sucks" Anyone can say this (and usually does). "But It Doesn't Matter" Thank you. In any language war, this is the most important thing to say.
- mynameishere 18y agoBut of course it does matter. The "it doesn't matter" was specific to PHP because PHP has a good record of success.
- JesseAldridge 18y agoI don't buy the "it doesn't matter" part. A good language can effect your project's agility by an order of magnitude; and the gap widens exponentially after you've used it long enough to build up some custom libraries/tools.
- jrockway 18y agoWell, it doesn't really matter. If my competitors want to use inferior tools, that's fine with me.
- brlewis 18y agoYeah, but when your partners are using inferior tools, you spend a lot of time waiting. OurDoings integrates with 9 other sites, so this means something to me.
- Herring 18y agoYeah well with OSS your competitors can end up contributing to the "inferior" platforms instead of to your "superior' platform. Apple/Darwin comes to mind
- edw519 18y agoYou're absolutely right. Very good point. What I meant was that you could build almost anything with almost any language. This != "it doesn't matter". (I sometimes react this way because we often debate endlessly over language fine points that are really just personal preference.)
- technoguyrob 18y agoTo me, it seems PHP is the Windows of web languages. In many respects it "sucks", can be clunky, and has little to no elegance from a formal perspective, but it's everywhere and everyone knows how to use it. Thence lies its success. (however, if you're willing to give up lambda's, some of the PHP frameworks like Cake are only mildly unpleasant) P.S. Also, the author is inaccurate, as many of those functions are only included in certain modules and rarely found in common PHP builds.
- jcl 18y agoSo... worse is better? :)
- technoguyrob 18y agoNo, "success" meaning its use is very widespread.
- es 18y agothe main issue is in developer, not in language.
- brlewis 18y agoThis is the same philosophy that blames users for mistakes they make with bad user interfaces.
- deleted 18y ago[deleted]
- es 18y agoit's not the same... I've seen ugly code in python and cpp and really great code in php using smarty and cakephp. What does not allow you to write good code in php5, using unit testing and MVC framework?
- brlewis 18y agoSome pilots have crashed planes with good instrumentation. Some pilots have successfully flown planes with poor instrumentation. Nonetheless, instrumentation design is a very important issue to talk about. Similarly, programmer skill may make a larger difference, but language design is a very important issue to talk about.
- es 18y agoActually php5 gives almost everything that was missing. The only thing is that a lot of pilots used to work with poor instrumentation and don’t want to switch! If php sucks then why there are so many successful products/services written on it?
- stcredzero 18y agoIf windows sucks, why are there so many successful...? If Chinese writing is so hard to learn, then why are there so many...? If religious explanations for the origin of everything sucks, why do so many...?
- ardit33 18y agoOne reason PHP is so popular, before 2005 there were four choices: Java --all frameworks sucked at the time (I had to work on struts, it was painful). .net --tied to MS world, and the first iterations sucked php --it was quick and dirty and easy to get started cgi,perl, python, C++ --required higher level of expertise, and they were hard php, was the sensible choice for something quick, and the more "primitive" state of the web apps at the time, demanded less from the framework/language being used. Right now there is much more choices, and Python (Django), and Ruby on Rails can be really quick to get started on, therefore php is loosing it's main advantage, yet Django and Ror are much more sophisticated and maintainable on the long run. Even Java now has some nimbler frameworks (Wicket, Stripes etc.) So, right now PHP is a very bad choice to do anything significant, as it lost its advantages over time, yet it is a mess to work with. But, the main reason we still PHP used so much, is that a lot of sites were build before 2005, and a lot of web devs are used to it, so as a language it will keep its momentum, but at some point it will run out of steam. It seems that even the newbies now prefer Ror over PHP.
- brlewis 18y agoCan you edit that to "there were four popular choices"? I wrote BRL, the sensible choice for something quick, based on Scheme, well before 2005.
- mrtron 18y agoNo offense intended, but BRL does not appear to be a popular choice. It may have existed, but so did other possibilities not mentioned too, the idea was to summarize what choices your average developer had. I would also add that a lot of people chose PHP because they had been working in it since the late 90s and needed a big improvement in order to justify changing.
- brlewis 18y agoRight, I'm saying it wasn't popular. It isn't that people tried BRL and decided its superiority in speed of development, speed of execution, security and learnability weren't big enough. It's that people didn't try it.
- bluelu 18y agoIn the early days, I can still remember my perl scripts failing with the "Premature end of script header" error. If they would have patched perl to ignore the newline encoding, nobody would have used php. I can imaging lots of newbiews turned down perl because of this error. Php really is a mess. 20 functions for sorting, settings in php.in (each php installation should react the same way as the other does), etc...
- michael_dorfman 18y agoAn excellent statement, as far as it goes. The question remains, though: for a given application X, to be developed now, what is a better alternative, and why?
- sethg 18y agoAs a developer, I am frightened by PHP. I assume that it is possible to write clean, maintainable, secure code in PHP. But if I sat down and tried to write a web app on my own in PHP, what are the odds that I would do it right--particularly w.r.t. security? If I look for tutorials and reference materials that teach secure PHP programming, how do I know which of these documents are written by people who actually know what they're talking about? And after taking into account all the effort to learn and use good PHP practices, is PHP really more difficult than one of the Perl, Python, or Ruby frameworks?
- ssharp 18y agoWhat makes Ruby, Python and Perl more secure than PHP? Frameworks? PHP has plenty of options there. PHP is popular because of how easy it was to get started and how available it was in every dirt cheap shared hosting plan on the market. Sure, it's not the most elegant language and it does have plenty of issues but quite a few of these are solved with quality planning and the use of quality tools such as CodeIgnitor or CakePHP. The low barriers to entry are what made PHP popular and the fact that you can code something robust and maintainable are allowing it to sustain.
- omouse 18y agoWhat makes Ruby, Python and Perl more secure than PHP? The fact that those languages don't have "magic_quotes" or "globals_on"?
- es 18y agoFor more than 3 year I've not seen "magic_quotes" or "globals_on" turned on anywhere. As far as I know in php6 there won't be globals option at all.
- ssharp 18y agoNeither have I. If you care one bit about security, that's the first thing you'll find out about PHP and as you said, they are being eliminated from the php.ini file in php6 and will need to explicitely turned on in your scripts.
- chaostheory 18y agoI'm not keen on PHP, but in its defense it is much less headache inducing than perl or as tedious as the Java/.NET world
- markbao 18y agoSolving spaghetti PHP in spaghetti SQL in spaghetti HTML: 1. Learn how MVC works. 2. Write a basic MVC framework. 3. Zip it up, put it aside, and learn Symfony, CodeIgniter, etc. (Writing your own framework is an incredibly good learning experience.) Spaghetti code is solved (mostly) by structured organization, ORM, views that simply display data, and the separation of the MVC parts.
- ambition 18y agoThe python code in the book Programming Collective Intelligence is aesthetically poor, with unclear naming, bad spacing, errors and some ugly duplication. But it doesn't matter. The algorithms work, the concepts get taught, and you still get to build your own little pageranking search engine in a single chapter. Same deal with PHP. It seems that PHP gets the job done. (I say this never having coded anything significant in PHP.)
- senthil_rajasek 18y agoThis post to be honest is from someone who does not obviously use PHP on a day to day basis. Why PHP? In the end the quote below summarizes its success, -- begin quote -- In many ways, the IETF runs on the beliefs of its participants. One of the "founding beliefs" is embodied in an early quote about the IETF from David Clark: "We reject kings, presidents and voting. We believe in rough consensus and running code". -- end quote -- From the "Tao of IETF" http://www.ietf.org/tao.html http://www.ietf.org/tao.html
- deleted 18y ago[deleted]
- Maascamp 18y agoOne thing many people seem to forget when discussing PHP is that if PHP vast library of built in functions doesn't do what you need, you don't have to live without, you can just write an extension, recompile, and you're in business. PHP allows you to write important logic in C, giving me yet another reason use it.
- dean 18y agoNothing to see here. Religious opinion. Move along.
- sanj 18y agoApropos, from http://www.joelonsoftware.com/articles/fog0000000006.html http://www.joelonsoftware.com/articles/fog0000000006.html "What I wondered was, what happens if you take top-notch C++ programmers who dream in pointers, and let them code in VB. What I discovered at Fog Creek was that they become super-efficient coding machines. The code looks pretty good, it's object-oriented and robust, but you don't waste time using tools that are at a level lower than you need. I've spent years writing code for C++/MFC and years writing code in Visual Basic, and let me tell you, VB is just much, much more productive. Michael and I had a good laugh today when we discovered somebody selling a beta crash-reporting product at $5000 for three months that Michael implemented in CityDesk in two days. (And we actually implemented a good part of ours in C++/ATL). And I also guarantee you that our Visual Basic code in CityDesk looks a lot better than most of the code you find written in macho languages like C++, because we're good programmers, and we write comments, and our variable names are well-chosen, and we do things the simple way, not the clever way, and so forth."
- gruseom 18y agoBut It Doesn't Matter It matters to me.
- knarf 18y agoI once read "PHP takes 'Worse is better' to a new level." That about sums it up for me.