Hi internals,

I'm a developer who uses both Java and PHP regularly. I'm writing
because I care about PHP's future.


PHP's strength has always been simplicity and pragmatism. But since
PHP 7 and especially PHP 8, we've been adding "enterprise features"
(typed properties, attributes, property hooks) that make PHP more like
Java – without achieving Java's type safety or ecosystem.


I believe PHP should refocus on what made it great. Here are four
pragmatic directions:


---


1. Stop Chasing Java


Every "enterprise feature" pushes developers like me toward Java. Not
because Java is better, but because if I need enterprise complexity
anyway, I'd rather use a language designed for it.


PHP cannot beat Java at its own game. But it can beat Java where it
matters: rapid prototyping, simple deployment, web-native development,
low learning curve.


Please keep PHP simple. Keep it pragmatic.


---


2. Add Practical Array Helpers


PHP is a web language – 90% of what we do is manipulate arrays. Yet
basic operations are still verbose:


```php
// Current
$names = array_values(array_filter($users, fn($u) => $u->active));
$first = count($names) > 0 ? $names[0] : null;


// Proposed
$names = array_pluck($users, 'name');
$names = array_where($users, fn($u) => $u->active);
$first = array_first($users);
$grouped = array_group_by($users, 'role');
$compact = array_compact($data);

These helpers would make everyday code cleaner without adding
complexity.




Improve Performance


Performance has always been a strength. Keep optimizing:


JIT for real-world web workloads



Reduce memory allocation in array operations



Make OpCache smarter



Provide Built-in Concurrency (Without Complexity)


Concurrency is the biggest missing piece. But instead of complex
async/await or coroutines, consider a simple worker management API:
php



$server = new WorkerServer(); $server->onWorkerStart(fn() => loadApp()); 
$server->onRequest(fn($req) => handle($req)); $server->start(4);


This would:


Run standalone: php server.php – no nginx, no PHP-FPM



Keep process isolation (each worker is separate)



Allow resource initialization once per worker



Give developers control without new concepts


Why not just use FrankenPHP? FrankenPHP is excellent, but requires an
additional binary and new deployment workflow. Many developers just
want a simple, built-in way to run their app without configuring two
services.


Why This Matters

PHP's competitors are winning on concurrency (Node.js, Go) and syntax
(Python). PHP's advantages – simplicity, web-native deployment, low
learning curve – are being eroded.

I don't want to leave PHP. I want PHP to stay great. I want to keep
choosing PHP for years to come.

Thank you for your time and for maintaining PHP. I'm happy to provide
more examples or participate in discussions.

Best regards,
[qinhao]

Reply via email to