9 ms·
The bad rep is totally deserved. PHP, for most of its existence, has been a profoundly bad language per se. That doesn't mean nobody's ever built anything valua
by chrisweekly 6y ago
The bad rep is totally deserved. PHP, for most of its existence, has been a profoundly bad language per se. That doesn't mean nobody's ever built anything valuable on top of it, and I fully understand that (much like also-justifiably-maligned JavaScript) it's evolved quite a bit. But the points made in this mid-2012 article are absolutely spot-on in describing precisely why PHP absolutely earned its reputation: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
- jstummbillig 6y agoYes, but 2012 is 8 years in the past. Do you know what else is 8 years in the past? Well, not Reacts first release because that happened only in 2013. That's how long 8 years are in web terms. At some point — and boy, are we long past that point — it feels old when gramps goes off about the woes of PHP4 because, oh, it feels like it's just been yesterday.
- uponcoffee 6y agoMost projects are from yesterday though. Maintaining or porting legacy php is the reality of most projects.
- bawolff 6y agoPhp4 is not yesterday so much as last decade. Most people talling about legacy php mean php5, which is much more sane than php4
- s0l1dsnak3123 6y agoThis is why PHP deserves it's reputation. The state of the language is one thing, the state of the ecosystem surrounding the language is another. Anecdotally speaking, the vast majority of PHP projects I've been exposed to have been horrific precisely because there's a laissez-faire or "get the job done at any cost" attitude to software development that's uniquely prevelant in these communities (this exists in all languages, but in my experience it's way worse and way more normalized within the PHP silo). The language improving will only be positive for new projects that are started today, or that have been maintained by dilligent and empathetic engineers. Often teams are not as united on this front as they should be. I think using almost any other comparable language in 2020 (Python 3, Go, Typescript) is a better solution than starting a new project in PHP these days. I suspect the real reason many still reach for PHP first is because it is "easy" and PHP developers are ostensibly cheap and easy to replace. It's a false economy.
- chrisandchris 6y agoAnd next you‘re telling how terrible COBOL is? Seems like most/many banks are still running on cobol today... I think just because something was bad before yesterday does not mean it cannot be used in good ways today or tomorrow. And I think everybody talking bad about PHP should not even think about JavaScript. Todays PHP gets its job done in a really good way. It has very good frameworks, is amazingly fast and is easy to start with and quite easy to deploy. And it‘s absolutely not comparable to something that was many years ago. And I think too, PHP before something after PHP 5.5 was not „that good“ compared to C# or Java.
- coldtea 6y ago>The bad rep is totally deserved. PHP, for most of its existence, has been a profoundly bad language per se. Javascript too, so what? In the end it's another tool with specific pros and benefits, and it got many things right (ease of deployment, no shared state, batteries included, etc).
- travmatt 6y agoJavaScript was a bad language though, if not just from it’s messy origins. There’s been a ton of work put into the language and lots of thought put into the ’good parts’ to use and expand upon. I’d be interested in learning more about php’s evolution, and possibly even a follow-up to that article.
- bdcravens 6y agoI haven't used PHP is a professional project for probably 10 years, aside from needing to poke around in Wordpress occasionally. When I see modern PHP, I barely recognize it.
- ksenzee 6y agoI have written both PHP and JS for a living since about 2005 (for my sins) and I can tell you PHP has gone through at least as much of an evolution as JS. Neither one feels anything like its 2005 ancestor.
- whatsmyusername 6y agoUnlike JS, Google doesn't endlessly push PHP. Having written in both of them (and prefer neither) they're equivalent outside the marketing budget.
- GordonS 6y agoI started programming with PHP back in 2001, I think. I moved to C# when dotnet was released shortly after, but still have a personal website that's built with PHP, and a couple of years back I updated it (from something like PHP 4/5, I forget) to the latest version PHP. I was pleasantly surprised - it wouldn't be my first choice by a long shot, but I can see why others would choose it today. And there's always been a good community around it too. I also started with JavaScript a long time back, maybe something like 1998-1999. I've always found it a most loathsome language, and the anaemic standard library a huge barrier. It's not entirely the language's fault, of course - being the language of the web was always going to mean glacial progress. Recently I worked on a vanilla ES6 project (since browser support is finally there), and at long last I wouldn't quite describe it as "loathsome" anymore! Still, it's a far cry from the nicities of Typescript, and the tiny standard library remains an issue. Having seen both PHP and JavaScript evolve over around 2 decades, I'd probably argue that PHP has evolved more as a language than JavaScript has.
- innocenat 6y ago> PHP, for most of its existence, has been a profoundly bad language per se. PHP is 26 years old. PHP5.3 is 11 years old. PHP7.0 is 5 years old. Where is your cut-off that make you claim "most of its existence"?
- uselesscynicism 6y agoMost is 51%. If PHP was bad from 1994 to 2002, when "A Fractal of Bad Design" was written (18 years), and is OK now (assuming it got good immediately after that post was written 8 years ago), it has been bad for most of its existence by simple arithmetic.
- forgotmypw17 6y agoBad compared to what at the time? What other tech compared to PHP at the time?
- nine_k 6y agoJava? Python?
- nimih 6y agoThe FA itself points readers to Python (with Flask, Pyramids, or Django), and also gives an offhand mention of Ruby + Rails and Perl + Catalyst. Java had also become a pretty reasonable language & environment by this time, and off-beat "let's build a better language on top of an existing runtime/ecosystem" languages like Clojure and F# were in full swing.
- blub 6y agoPHP was already very successful before Django or Rails even had their first release. I remember trying to set up a Python Django web site for the first time around 2010 because Python seems like the better language and it was such a PITA compared to PHP's it-just-works nature.
- 6y ago
- post_below 6y agoWhat does 'profoundly bad language' mean exactly? When PHP was first released it was dramatically better than the alternatives for it's intended purpose. There were plenty of things to complain about, but none of them stopped you from doing useful things with it. It was never slow or inefficient compared to other scripting languages, it didn't lack functionality. Over the decades the most popular complaints have been addressed as the language has matured. That it's remained in active development for 25 years with no signs of that changing in the future is one of it's biggest selling points. I don't blame people for having issues with aspects of PHP based on their personal preferences and experiences, I get that, but that doesn't make it a 'bad' language. There's nothing wrong with purist perspectives on what programming languages should be and how they should work. That contributes to better design. But in the real world the questions are simpler: can this tool be used to develop applications quickly? Is it reasonably efficient at runtime (in this case in the context of scripting)? Can we easily find affordable developers in the future? Is there community support? PHP checks the boxes that people building things want checked as well as any language and better than many. Unless I'm missing something, 'bad' here is more of a philosophical stance.
- Zak 6y ago> When PHP was first released it was dramatically better than the alternatives for it's intended purpose. I think that's going to depend to some degree on how you define that purpose. If it centers around having a low barrier to entry, then that's partly true, but some of the ways it achieved that involved making code written in it vulnerable to variable poisoning and SQL injection by default.
- disgruntledphd2 6y agoDid Perl or C protect you against this when PHP came out?
- bawolff 6y agoWell register_globals was a kind of uniquely php thing, but that's been gone for ages at this point. I generally agree though that lots of the hate for php is a bit over the top.
- mrweasel 6y agoPHP isn’t exactly an elegant language, and I would argue that you need to be an pretty good developer to write safe PHP code. Still PHP is easy to get startet with, well documented, productive and impressively fast for a “bad” language. If you know what you’re doing I don’t see any reason to not pick PHP.
- simias 6y agoThis back and forth appears in every single thread about PHP on HN: - PHP doesn't deserve its bad reputation! - Well, it used to be pretty terrible... - Ok, so first let's talk about the relativity about the definition of "terrible". The Oxford English dictionary defines [...] And from there it goes nowhere. It is true that PHP improved drastically over the past decade or so, it is also true that it used to be a garbage fire of a programing language and ecosystem. For the PHP proponents in the comments: I think you'd save you a lot of trouble if you didn't try to dismiss the history of PHP and pretend that it was just unfair criticism from haters. It was warranted. You can't win this one. But who cares? If PHP really is good now you're way better off arguing about that, because while you'll never manage to convince me that it was a good language in 2005, you might end up convincing me (and others) to give it a try in 2020.
- CharlesW 6y ago2005 means PHP 5/5.1. It may suck in retrospect, but it was fine at the time, and there were a lot fewer choices. There are excellent reasons why it powered (and continues to) large swaths of the web. I think a lot of the misunderstanding around PHP's past stems from its accessibility. But real software developers had no problems creating real software with it even then, and since then the ecosystem has become startlingly better. > …you might end up convincing me (and others) to give it a try in 2020. It's been in the TIBOE top 10 since it's debut in 2001. If you haven't tried it by now, it seems unlikely you ever will (and that's absolutely fine).
- deleted 6y ago[deleted]
- giantrobot 6y agoPHP 5 wasn't fine at the time which is what the GP was saying. It was inconsistent and stupid and only carried on because it was the default option on shared hosting so everyone could easily throw up their b2^H^H Wordpress blog. PHP would have been abandoned years ago if not for Wordpress' worse is better success story.
- furyofantares 6y ago> The bad rep is totally deserved. This sentence really got me thinking. "Deserved" is some sort of moralistic word, I'm not sure how it applies to a tool, unless it means to apply to the makers and/or users of the tool. And I guess it makes some sense. A bad reputation is a sort of social communication utilizing shame and stigma. Maybe it causes people not to use PHP without having to pay the cost of really understanding why, which is likely only accessible with lots of experience and/or study. This is basically by definition an inaccurate bias, of lacking nuance, but perhaps a net good. If PHP was such a poor tool for productivity and security then it was probably good if shame and stigma were helping people to use better tools without paying the cost themselves first. But it's always very frustrating if you actually know what's bad and what's good about a thing, or even just know that it has both bad and good parts (even if you don't know precisely which is which), and you see a memetic belief held up as truth rather than acknowledged as a useful heuristic. And while it feels dirty, maybe this shame and stigma also serves to influence the creators of the language and its ecosystem to make it better. I don't know. I hope there are better ways than shame and stigma but I'm just a d00d writing a post on a web forum. What does seem clear to me, though, is if is a good tool NOW, as a result of years of work by the people who kept at it, then a bad reputation is no good anymore; no longer a positive force but a negative one.
- cole-k 6y agoI think in this case "deserved" was used in the same sense as "warranted," although I realize this doesn't change the main point you're making. What you're getting at is that people can be influenced by factors other than objective truths. I admit that I am someone who tries to avoid making decisions based on word-of-mouth or "reputation," but you can't deny that only considering objective truths takes a lot of work. Sometimes I just want to buy a keyboard, not read and apply "The 50 Tenets of Keyboard Comparison" to find the objectively best (for me) keyboard. It makes sense how this attitude can bleed into decision-making as a whole, even for higher-impact decisions like programming language choice. So I wouldn't discredit (or lower the reputation of ;) ) too much the folks who don't always go by objective truth.
- sergeykish 6y agoIs C undefined behavior and use after free "shame" or "stigma"? JavaScript has bad parts and design (and big community that claims it is fine language), Perl has great design and small community (and everyone can bash it), PHP has horrible design flows and a big community that does not address issues from "Fractal of bad design" but claims language is fixed. As experienced developer I know what good design is. This article saved a lot of novices from trapping into badly designed language as a first one. At least some PHP proponents makes fools of themselves: > This of course is coming, like usual, from someone who spent a significant portion of their life in academia and then moved to R&D and still has yet to make a dent in the world, or likely their student loans [1]. Words of true believer. PHP can't transition to not bad language because of such believers. Those who can see faults left. And what's left is echo chamber. There would be no break of backward compatibility. I've checked, from design perspective nothing changed. All I see is community discarding critique without addressing it or even understanding it. [1] https://news.ycombinator.com/item?id=24954162 https://news.ycombinator.com/item?id=24954162
- deleted 6y ago[deleted]
- lhorie 6y ago> PHP, for most of its existence, has been a profoundly bad language per se I mean, people often say the same thing about C, C++ and Java. But these are also massively popular languages, so obviously they're doing _something_ right and the people complaining must be looking at the wrong metrics.
- skee0083 6y ago2board.net is written in php and it's one of the most popular sites on the world wide web.
- cblconfederate 6y agoDepends on how you used it. I ve barely noticed a change, in fact thats why i use it
- Aeolun 6y ago> in this mid-2012 article Don’t you think referencing something 8 years out of date, from when PHP 8 was PHP 5 may be a bit out of date?
- AQXt 6y ago"PHP is an embarrassment, a blight upon my craft. It’s so broken, but so lauded by every empowered amateur who’s yet to learn anything else, as to be maddening." https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/