PHP
- Aesthetic Geometry
- 4 out of 10
- Mathematical Elegance
- 4 out of 10
- Linguistic Clarity
- 5 out of 10
- Practitioner Happiness
- 4 out of 10
- Organic Habitability
- 5 out of 10
- Conceptual Integrity
- 3 out of 10
- Total
- 25 out of 60
Character
The duct tape that holds 40% of the web together while everyone pretends it doesn't exist. PHP is the cockroach of programming: ugly, everywhere, and absolutely unkillable.
Dimension Analysis
Φ Aesthetic Geometry
$ on every variable, -> for method calls, inconsistent brace styles across frameworks, and <?php tags create visual clutter. Modern PHP (8.x) with named arguments and match expressions is cleaner, but the legacy visual debt remains.
Ω Mathematical Elegance
PHP is a templating language that grew into a general-purpose one. Array functions exist but lack the composability of functional languages. Mathematical elegance is not the design space PHP occupies.
Λ Linguistic Clarity
PHP can be readable in modern frameworks (Laravel's fluent syntax reads well). But str_replace vs. strpos vs. substr, inconsistent parameter ordering, and the legacy API are the antithesis of linguistic clarity. Two PHPs coexist: modern and legacy.
Ψ Practitioner Happiness
PHP developers themselves joke about PHP. The community is large and productive, but "most admired" it is not. Modern PHP (8.x with Laravel) has improved the experience significantly, but the reputation, and the daily reality of legacy code, weighs on happiness.
Γ Organic Habitability
PHP codebases survive, 77% of the web runs on PHP, and that code keeps working. The language is pragmatically habitable. But the inconsistent standard library and multiple paradigm shifts (procedural → OOP → modern PHP) make long-term evolution uneven.
Σ Conceptual Integrity
PHP was not designed; it was accumulated. Rasmus Lerdorf's personal homepage tools grew into a language without a coherent philosophy. Each version has improved quality, but there is no "soul", no single idea that all features follow from. The quintessential committee language.
How are these scores calculated? Read the methodology
Signature Code
Array functions + arrow functions
$results = array_map( fn($user) => [ 'name' => $user['name'], 'email' => strtolower($user['email']), 'score' => array_sum($user['grades']) / count($user['grades']), ], array_filter( $users, fn($u) => $u['active'] && count($u['grades']) > 0 ));