Interesting, I've come to the opposite conclusion: a lack of types (or types that are only weakly enforced) costs me significantly more tokens in the long-run to maintain, and makes it far too easy for models to silently introduce bugs.
I run all my projects now in TypeScript with the strictest possible settings, including disabling `ts-ignore` markers.
(This would drive me absolutely insane, but my agents get over it pretty quickly!)
Not OP, but I generally agree. Models are powerful enough now to reliably instruct other models. They don’t need fancy tools or IDEs, just the command line.
With deterministic workflows, type-safe languages and test suites, agentic loops pretty much “can’t fail”. They will continue until the types resolve, the tests pass, and the project requirements are deterministically met.
By that point it’s literally just a case of typing a prompt in to a text field, and waiting.
Yes. You’re complaining that Gemini “shits the bed”, despite using 2.5 Flash (not Pro), without search or reasoning.
It’s a fact that some models are smarter than others. This is a task that requires reasoning so the article is hard to take seriously when the author uses a model optimised for speed (not intelligence), and doesn’t even turn reasoning on (nor suggest they’re even aware of it being a feature).
I asked the exact prompt to ChatGPT 5 Thinking and got an excellent answer with cited sources, all of which appears to be accurate.
The “full Tailwind experience” is already freely available. What “lost opportunities for deep integration” is a frontend CSS framework missing?
Tailwind Plus (the commercial product) is like buying an off-the-shelf template. It’s just a collection of themes and pre-built components — useful for devs who want to get started quickly on a project, but it’s cookie-cutter and can easily be replicated by anyone with Tailwind itself.
I’m not sure I follow, what exactly is your complaint? The Iterator interface is described as:
> Interface for external iterators or objects that can be iterated themselves internally
Note “external iterators or objects”. The Iterator interface is not exactly everyday PHP, it’s a specialist utility for making classes iterable so they can be accessed like arrays. Most developers will rarely use it directly, and it’s not being used in the parent comment’s example either.
Iterating over something requires knowing where you are in the sequence, so of course you would need to implement a method to get the current position of the iteration.
Great first article, and very interesting to see someone else using a receipt printer for bite-sized task management!
I have a variety of automations running which print actionable tasks to my receipt printer via a Raspberry Pi. It’s nice having a real-life ticket I can take hold of.
One thing to be aware of if you’re handling receipts frequently: make sure to buy phenol-free thermal paper. Phenol is toxic and some types of it are banned in certain countries.
I thoroughly enjoyed reading this. I peaked at 137wpm[0] and I’m not ashamed to say I love typing long sentences. I type fast enough that my thoughts normally can’t keep up with my fingers, but when I plan a sentence out in my head, the satisfaction I get from watching my inner monologue transmogrify into words onscreen is palpable. It’s a rush. And I totally get it. Great article!
> If we […] tried to use these systems to solve the kinds of problems we need Einsteins, Hawkings and Taos for, then we would be in for one miserable disappointment after another
We can literally watch Terence Tao himself vibe coding formal proofs using Claude and o4. He doesn’t seem too disappointed.
Do you not think the AI output looks far more polished and print-ready? Canny edges have a lot of noise and don't look at all clean for coloring book purposes.
I run all my projects now in TypeScript with the strictest possible settings, including disabling `ts-ignore` markers.
(This would drive me absolutely insane, but my agents get over it pretty quickly!)