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.