22 comments

[ 6.0 ms ] story [ 88.5 ms ] thread
They also spell maintenance "maitenance".
Welp, at least you can deploy it fast...
(comment deleted)
I once read some of the code that runs PHP.net and it is frighteningly bad. Like hacked-together homegrown feed readers and HTML being parsed with regular expressions.
That describes a lot of PHP that runs other sites...
Can you please elaborate?
In my experience PHP is a lot like ASP. It is easy to get started in, so attracts a lot of entry-level developers who produce a lot of entry-level code, and nothing about the platform particularly encourages good practices.
I constantly hear this over and over, what's funny is that some of the hottest websites out there are built with php.
I've been writing PHP for years, and have mixed feelings about it personally.

You're right that some of the largest websites are built primarily on PHP (Facebook comes to mind) and it works remarkably well. For one thing, PHP is fast. It blows Ruby out of the water and (for the time being) leaves Python in the dust. It also doesn't run into the infamous scalability issues that plagued Rails for some time (and in some ways continues to).

I rather like the syntax of the language - it's Perl but a bit more structured, and less ambiguous, which is pretty cool to have.

Put two and two together, and in the right hands PHP is a formidable tool that ought not be underestimated (though frequently is thanks to flavor-of-the-day coders).

What it is guilty of, though, is an unmitigated clusterfuck of a standard library... if it can even be really called a standard library. There's no concept of namespaces (none that is used anyway), and no consistency with API naming nor design. Accessing the various core functions within PHP is really just arcane tribal knowledge that you acquire from Google - there's no systematic elegance to anything. Remove the gigantic tomes of documentation surrounding PHP and the language is utterly incapable of standing on its own.

Oh, and it still can't parse XML worth a damn.

PHP is fast to deploy, comes installed on a lot of cheap web hosts, and has literally zero set up cost - in terms of framework requirements, dependency installation, daemons, etc etc.

To write a line of dynamic code and have it run, in PHP, is really as simple as typing out the code and saving the file. No build, no deploy, no frameworks to learn, just code that runs.

This encourages a lot of "well, I just need a little bit of dynamic stuff on my page" attitude, which as we all know eventually evolves into "wouldn't it be nice if I can also do this..."... and before you know it, 5 innocuous lines o PHP turns into 5000 lines of spaghetti code that has absolutely no design behind it.

PHP's reputation is also sullied by a number of high-profile projects surrounding it that have absolutely atrocious code quality - zero design effort and utter spaghetti. Guilty parties include: phpBB, osCommerce, WordPress, etc.

(comment deleted)
How is that ugly? It's just an include, three function calls, and a lot of inline HTML....
It's kind of 2000-ish, but it's not ugly. It's simple, clear, concise and would do exactly what's required if not for the call to an undefined function. What benefit would an MVC framework have here? A fancy powered hammer that can get into tight corners and automatically hammer nails is really cool, but sometimes all you need is the bottom of your shoe.
Fatal error: Call to undefined function bugfix() in /home/php/public_html/releases/5_3_1.php on line 23
worrying state of affairs when the main site chucks out code like that ... doesnt really help the reputation of php ...
doesn't really hurt it though either ...
More comical is the fact that the function missing is named "bugfix()". Who does that?
I'm almost willing to cut them some slack on that point since this is a bugfix release (it might just be the function that lists the bugs fixed). But I'd rather focus on the comedy :)