16 Years of PHP: Why I'm Still Here and Not Sorry About It
I wrote my first line of PHP in 2010. It was terrible. The code, I mean — not the language. Well, actually, the language was a bit terrible too. PHP 5.2, no namespaces, mysql_* functions everywhere, e
16 Years of PHP: Why I'm Still Here and Not Sorry About It
I wrote my first line of PHP in 2010. It was terrible. The code, I mean — not the language. Well, actually, the language was a bit terrible too. PHP 5.2, no namespaces, mysql_* functions everywhere, error handling that was more suggestion than system. I was building a content management system for a local business, and "building" is generous. I was gluing together WordPress plugins and writing procedural spaghetti in functions.php.
Sixteen years later, I'm still writing PHP. Every day. For real money. And I'm not sorry about it.
The Spaghetti Years
Let's not pretend early PHP was elegant. It wasn't. The standard library was a mess of inconsistent function names (strpos vs str_replace vs array_push — pick a convention, any convention). Error handling was "or die()" with a MySQL error message displayed to the end user. ORMs were either nonexistent or academic projects that nobody used in production.
But here's the thing: it worked. You could rent a shared hosting account for three quid a month, FTP your files up, and your website was live. The barrier to entry was essentially zero. No compilation step, no build process, no deployment pipeline. Write PHP, upload PHP, see PHP run. For a self-taught developer in his early twenties, that accessibility mattered more than language design purity.
I know the Node/Go/Rust crowd likes to pretend they'd never touch something so "unsophisticated." Most of them started the same way. They just don't admit it.
Laravel Changed Everything
I found Laravel in 2014. Version 4, I think. And it was like someone had opened a window in a stuffy room. Here was a PHP framework that was actually well-designed. Eloquent ORM that felt like magic after years of raw SQL. Blade templating that didn't make you want to hurt yourself. Artisan commands that automated the boring bits. Migrations that meant you could version your database schema.
But more than the technical features, Laravel introduced something PHP badly needed: opinions. It said "this is how you should structure your application" and provided the tooling to back it up. After years of every PHP project having its own unique (read: terrible) directory structure, having a convention felt like civilisation.
Taylor Otwell gets a lot of credit, and he deserves it. But the real genius was building an ecosystem, not just a framework. Forge, Vapor, Nova, Cashier, Horizon, Sanctum — each one solving a real problem that PHP developers actually had. Try to replicate that ecosystem in any other language. You can't, not with that level of integration.
"PHP Is Dead" — The Crowd That's Always Wrong
I've been hearing "PHP is dead" since about 2012. First it was Ruby on Rails that was going to kill it. Then Node.js. Then Go. Then Rust. Then whatever the current flavour is. Meanwhile, PHP runs roughly 77% of all websites with a known server-side language. WordPress alone accounts for about 40% of the web. Laravel is the most-starred backend framework on GitHub.
"Dead" is doing a lot of heavy lifting in that sentence.
The "PHP is dead" crowd falls into two categories. The first is developers who used PHP in 2008, had a bad time (fair enough, we all did), and haven't looked at it since. They're judging PHP 8.4 by their memories of PHP 5.2. That's like judging modern JavaScript by your memories of writing document.all in Internet Explorer 6.
The second category is developers who've never used PHP at all but enjoy the cultural cachet of dunking on it. It's the programming equivalent of saying you don't own a television. Cool. Nobody cares. Ship something.
The Modern PHP Renaissance
For anyone who hasn't looked at PHP recently, here's what you've missed:
PHP 7 (2015) — Performance doubled. Literally. The engine rewrite made PHP competitive with compiled languages for most web workloads. Scalar type declarations arrived, making functions actually enforceable.
PHP 7.4 (2019) — Typed properties. Arrow functions. Preloading. PHP started feeling like a real grown-up language.
PHP 8.0 (2020) — Named arguments. Attributes. Match expressions. Union types. The JIT compiler. Constructor property promotion (which I use in every single class I write now). This was the release that made people sit up.
PHP 8.1 (2021) — Enums. Fibres. Readonly properties. Intersection types. Enums alone were worth the update — I'd been faking them with class constants for years.
PHP 8.2-8.4 (2022-2024) — Readonly classes. DNF types. Property hooks. Asymmetric visibility. Each release adding features that would have seemed impossible a decade ago.
Modern PHP is statically typed (when you want it to be), has first-class enums, supports fibres for async operations, has attributes for metadata, and performs competitively with most interpreted languages. It's not the same language I started with.
What Actually Matters in a Language
After 16 years and a few detours into other languages (JavaScript out of necessity, Python out of curiosity, Go out of peer pressure), here's what I think actually matters:
Can you ship with it? PHP's deployment story is unbeatable. No compilation, runs everywhere, every hosting provider supports it. I can have a new Laravel application in production in under an hour. Try that with a Kubernetes-deployed Rust backend.
Can you hire for it? PHP developers are abundant and affordable. Not because the language is easy — because the ecosystem is mature and well-documented. When a client needs to hand off a project, finding another PHP developer is straightforward. Finding a developer who knows your bespoke Elixir/Phoenix setup? Good luck.
Is the ecosystem solving your problems? Laravel's ecosystem handles authentication, payments, queues, search, real-time events, API resources, testing, and deployment. Out of the box or one composer require away. That's years of combined development effort you're leveraging for free.
Will it be here in five years? PHP has been "dying" for 15 years and is still the dominant server-side web language. Laravel's development pace is accelerating, not slowing. Bet on things that have momentum, not things that have buzz.
The Things I Don't Like
I'm not a zealot. PHP has genuine weaknesses.
The standard library is still inconsistent. They've improved it, but array_map takes the callback first and array_filter takes the array first, and that'll never be fixed without breaking everything.
The type system is optional, which means not everyone uses it. Reading someone else's untyped PHP code is painful. Strict types should be the default, not something you opt into per file.
Async/concurrent programming is possible but not natural. Fibres exist, but the ecosystem hasn't fully embraced them. If you need serious concurrency, PHP isn't your first choice.
Package quality varies wildly. Composer is excellent, but the packages on Packagist range from "production-ready and well-maintained" to "someone's university project from 2016."
These are real issues. They don't outweigh the benefits for the type of work I do — web applications, APIs, content platforms, SaaS products. For my use cases, PHP and Laravel are still the fastest path from idea to production.
The Honest Bit
I'm not still writing PHP because I evaluated every language objectively and PHP won on technical merit. I'm still writing PHP because I'm good at it, the ecosystem solves my problems, clients pay me well to write it, and I can ship things fast.
That's not a weakness in my argument. That's the actual argument. Language choice is partly technical and partly practical. The best language is the one that lets you deliver value to your clients and put food on your table. For me, that's been PHP for 16 years, and I don't see that changing.
If you're starting out today and wondering whether to learn PHP — yes, learn it. Specifically, learn Laravel. The ecosystem is thriving, the community is welcoming, the job market is strong, and the language itself is the best it's ever been. You'll hear people tell you it's a dead-end. Those people have been saying that since before you could code. They'll still be saying it when you're ten years into a successful career.
I started with PHP 5.2 spaghetti on a three-quid hosting account. I'm now running a development consultancy building AI-augmented Laravel applications for clients across the globe. Same language. Different universe.
Not bad for a dead technology.
I've been building web products for 16 years. If you're looking for a senior developer you can actually trust, get in touch.
Get the Friday email
What I shipped this week, what I learned, one useful thing.
No spam. Unsubscribe anytime. Privacy policy.