PHP 8.0, JIT, and Apple Silicon: A Big Month for the Stack
· Jerwin Arnado
Archive note: this is a backdated post, written years later while rebuilding this site. It’s dated to the moment it covers, but the hindsight is real.
November gave the PHP world two earthquakes nine days apart: Apple’s M1 Macs started shipping on the 17th, and PHP 8.0 landed on the 26th. One changes what we write; the other changes what we write it on.
PHP 8.0: the language grows up
Everyone’s headline is the JIT compiler. Honest assessment first: for typical Laravel apps, the JIT barely matters. Web workloads are I/O-bound — database, cache, HTTP — and the JIT accelerates CPU-bound computation. Benchmarks on real web apps show single-digit gains. It’s strategically important (PHP for CPU-heavy work stops being a joke), but it’s not why you upgrade.
You upgrade for the language. The features I’ve already started missing in 7.4 code:
- Constructor property promotion. The boilerplate-killer of the release:
class PatientService
{
public function __construct(
private PatientRepository $patients,
private BillingGateway $billing,
) {}
}
- Named arguments.
setcookie(name: 'theme', secure: true)— no more counting commas through optional parameters. This also makes long-parameter framework methods readable at the call site. matchexpressions. Strict comparison, no fallthrough, returns a value, throws on unhandled cases. EveryswitchI write from now on wants to be amatch.- Union types.
int|stringin native signatures — the docblocks come down, the type system goes up. - Nullsafe operator.
$user?->profile?->avatarreplaces three nested null checks. str_contains(),str_starts_with(),str_ends_with(). It took until version 8, but PHP finally answers Stack Overflow’s most-asked question natively.- Attributes. Native annotations replacing docblock magic — the ecosystem effect (routing, validation, serialization libraries) will play out over the next couple of years.
Laravel’s ecosystem is moving fast on support; the usual upgrade advice applies — wait for your dependencies, then don’t wait long. PHP 8’s errors are also stricter (many warnings promoted to exceptions), which is short-term pain, long-term correctness.
The M1: ARM comes for the dev machine
Meanwhile, the M1 MacBooks are posting numbers that embarrass machines twice their price, fanless, with battery life measured in workdays. For a web developer the catch is architecture: everything we run locally — PHP, Node, MySQL, Redis, and especially Docker — now needs ARM builds. Docker Desktop for M1 isn’t ready yet; Homebrew is working through Rosetta 2 with native bottles arriving piecemeal.
The early-adopter tax is real, give it a few months. But the direction is unmistakable: if ARM laptops are this good, ARM servers stop being exotic (AWS Graviton is already there). Multi-arch Docker images are about to become everyone’s problem — linux/amd64 on the server, linux/arm64 on the laptop. Worth learning docker buildx before it’s urgent.
The takeaway
Same stack, new floor. PHP 8 makes the language we write daily genuinely modern, and the M1 resets expectations for the machines we write it on. Some months you chase the news; this month the news upgraded us.