| ▲ | jchw 2 hours ago | |
Aside from the LLM smell, the most egregious thing about this article to me is simply implying that it's going to be much of a surprise to people that PHP has improved since the "fractal of bad design" days. The most popular Hacker News post that matches "php" in HN Algolia is this post from 2019: https://stitcher.io/blog/php-in-2019 https://news.ycombinator.com/item?id=19917655 And while sentiment is understandably mixed even then, I actually think a lot of people have already come around on PHP as being "not as bad as it once was", if not even "good". Some of its reputation, though, hinges not on out-of-date internet commentary, but instead on the fact that in practice a lot of the PHP code that's still in production today is simply legacy code and not up to modern standards, and most of the time when someone says PHP, they really mean that PHP. I think that is actually the thing that is holding PHP back hard outside of bubbles like HN. And honestly, even though I don't hate modern PHP, I don't have many codebases that come to mind when I think about modern PHP that are exemplary. I actually was relatively impressed with the s9e TextFormatter library used by phpBB3 when I looked at it, but even that is dated by today's standards. Still, I think that PHP has an undeservedly bad reputation relative to other languages. I've recently come back into Python lately after having not really touched a ton of Python in a while and I gotta say, other than `uv` and `ty`, I don't feel a whole lot has improved in Python land. It's not that greenlets and gevent were fantastic or anything, but I thought it was satisfactory enough. Now that there's also asyncio, it feels like a nightmare trying to untangle old code and bring it into the async future... So many things just don't really work in this world, like old-school lazy fetching in SQLAlchemy. Python was most famous for the horrible Python 3000 migration, but so many years later and I'm not sure how much was really learned as reconciling greenlet and asyncio worlds feels like yet another Sisyphean task of trying to rebuild everything at once. OK, it isn't as bad, especially since you can at least wrap sync code into thread pools, but it definitely is an absolute PITA, and I feel like what we're getting out of it doesn't exceed what we're putting in. So that's my thoughts. Internet commentary is probably no longer PHP's biggest enemy; instead, it's more like its own past successes. (And, also, the fact that we easily forgive the tools we use regularly for the faults that we have been used to for years.) | ||