WeSearch

The PHP Criticism You've Never Actually Thought Through

·6 min read · 0 reactions · 0 comments · 2 views
#php#web development#programming language#software architecture#backend development
The PHP Criticism You've Never Actually Thought Through
⚡ TL;DR · AI summary

The author, a 15-year PHP veteran, addresses common criticisms of PHP—such as inconsistent standard library, stateless execution, and lack of true async—arguing that many critiques are outdated and fail to reflect the language's evolution. While acknowledging PHP's limitations in areas like parallelism, the author contends that its design choices are often strengths in web contexts. Modern PHP supports advanced architecture and strict typing, making it suitable for well-structured applications. The real challenge in software development, the author argues, is not the language but understanding the problem domain.

Original article
DEV Community
Read full at DEV Community →
Full article excerpt tap to expand

try { if(localStorage) { let currentUser = localStorage.getItem('current_user'); if (currentUser) { currentUser = JSON.parse(currentUser); if (currentUser.id === 3895087) { document.getElementById('article-show-container').classList.add('current-user-is-article-author'); } } } } catch (e) { console.error(e); } Filipe Silva Posted on Apr 28 The PHP Criticism You've Never Actually Thought Through #php #webdev #programming #architecture TL;DR — I've been writing PHP for 15 years. I've tried Ruby, Groovy, and Java. I came back each time. This article goes through the serious criticisms of PHP — stdlib inconsistency, the stateless model, no real async — and where each one actually holds up, and where it doesn't. I've been writing PHP for over 15 years. I've tried Ruby, Groovy, and Java — not out of curiosity, but because I genuinely questioned whether PHP was the right tool. I came back each time. Not out of habit, but because the arguments against PHP rarely survive contact with reality. Let me go through the serious ones. And where PHP genuinely falls short, I'll say so. First, some context most critics skip The people who say PHP can't evolve stopped paying attention around 2005. The language kept moving without them. PHP was created in 1994 by Rasmus Lerdorf. It didn't start as a programming language — it was a set of scripts to monitor visits to his online résumé. Built to solve a real problem, not designed by a committee with an architectural vision. Critics use this against it: "No coherent design from the start." Fair. Growing organically has costs. But what followed was not stagnation — it was sustained evolution over three decades. PHP 3.0 gave the language a proper modular foundation. PHP 4 brought the Zend Engine and the first real object-oriented support. PHP 5 made OOP actually usable — abstract classes, interfaces, exceptions, PDO. These weren't small updates. They were the language growing up. PHP 7 was the version that changed things for me personally. Performance roughly doubled over 5.6. Memory consumption dropped. Scalar type declarations arrived. For the first time I could apply design patterns and architectural concepts — DDD, hexagonal architecture, proper interfaces — without fighting the language to do it. PHP 7.4 in particular felt like a turning point: typed properties, arrow functions, a language that finally matched the way I wanted to think about code. PHP 8 continued from there — JIT compilation, union types, match expressions, attributes, named arguments. PHP 8.3 and 8.4 added typed class constants, readonly improvements, property hooks. The people who say PHP can't evolve stopped paying attention around 2005. The language kept moving without them. The stdlib is inconsistent. Yes. But that's not the argument you think it is. The inconsistencies are being removed, version by version. That's the cost of scale, and PHP pays it responsibly. The standard library grew alongside the language — functions added at different times, by different contributors, with different conventions. The result is real: inconsistent naming, parameter ordering that flips between functions. needle before haystack in some, the reverse in others. Some defend this by pointing to IDEs. I won't — that's pointing to a workaround, not answering the criticism. The real argument is simpler: the inconsistencies are being removed, version by version. Slowly — because PHP takes backwards compatibility seriously. A significant portion of the web…

This excerpt is published under fair use for community discussion. Read the full article at DEV Community.

Anonymous · no account needed
Share 𝕏 Facebook Reddit LinkedIn Email

Discussion

0 comments

More from DEV Community