PHP Doesn't Suck Anymore
Performance & Deployment Model
- Many agree modern PHP (7/8) is “fast enough” for most workloads; database often remains the bottleneck.
- Stateless, per-request model is praised for resilience: crashes are self-healing on next request.
- Some see “drop a .php file and refresh” as uniquely productive; others note similar workflows exist in ASP/ASP.NET and CGI.
- Classic mod_php is criticized as insecure; PHP-FPM and reverse proxy setups are considered the modern norm.
- Event-based/fiber frameworks (Swoole, Octane, etc.) are cited as removing the “one request per worker” limitation.
Simplicity vs. Professionalization
- Strong nostalgia for PHP as the “purest form of web programming”: mix HTML and PHP, no framework, no devops, ideal for small sites and side projects.
- Counterpoint: that “FTP to prod and hack live” style is seen as an operations nightmare at scale and encourages bad habits.
- Some lament that “professional” PHP has become over-engineered, chasing Java-like complexity and heavy frameworks.
Ecosystem, Tooling, and Tutorials
- Composer and the modern framework ecosystem (Laravel, Symfony, etc.) are praised as productive and mature.
- Others describe Packagist as full of stale, niche libraries and consider the wider ecosystem fragile or “graveyard-like.”
- Insecure beginner tutorials (e.g., outdated PHP+MySQL patterns, missing escaping) are highlighted as still common and harmful.
Language Design, Types, and Standard Library
- Modern features (types, better OOP, pattern matching) are appreciated but seen by some as layers on a “rotten core.”
- Inconsistent function naming/parameter order and weak default behaviors (e.g., in_array without strict flag) are recurring complaints and called “landmines.”
- UTF‑8/unicode handling is criticized as still awkward, requiring mbstring and extra care; others argue Unicode is hard everywhere.
- File I/O error handling (e.g., fopen returning false + warnings, race conditions, lack of errno-like details) is a specific point of contention.
Security and Culture
- PHP’s historic “dangerous defaults” (magic globals, lax escaping) and culture of “just make it work” are blamed for its reputation.
- Some trace ongoing design issues to early anti-intellectual / anti-rigor attitudes; others argue the language and community have matured significantly.
- Shared hosting and WordPress keep PHP highly relevant; security remains a concern, especially with legacy code and plugins.
Comparisons to Other Languages
- PHP is contrasted with Python, JavaScript, Java, C#, and others.
- Supporters claim better web performance and practical ergonomics than Python; detractors prefer Python’s libraries and consistency.
- Isomorphic JavaScript (same language client/server) is seen by some as a structural advantage PHP can’t match.