Year round learning for product, design and engineering professionals

Are AIs making us stupid?

One of the emerging concerns with LLMs is what Christopher Noessel, keynote speaker at UX Australia this August, calls deskilling—“when users lose skills they previously had, but handed off to the AI.” Others are more blunt, like James Anderson, who writes in a more thoughtful piece than the title might suggest:

People often talk about the productivity gains that come from LLMs, and it would be disingenuous of me to dismiss these. It’s true. You can be productive with an LLM-assisted workflow. But that same workflow could also be making you dumber.

This echoes concerns educators have been voicing for a while—that when students rely on LLMs to write essays, they lose the capacity for long-form reasoning and expression. The point of writing an essay isn’t just the output. It’s to develop critical thinking and the ability to communicate ideas clearly in writing.

But let’s focus on software development.

I’ve written countless lines of code, in a wide range of languages—some you’ve probably never heard of. At certain points in my career, I’ve likely understood a couple of those languages better than just about anyone else—writing developer tools, parsers, and books on the subject will do that. Above all, that’s true of CSS.

And yet, I still sometimes have to look up foundational things—like the exact property for underlining text (text-decoration, for the record—I didn’t have to look it up this time, but I often do). And don’t get me started on the permutations of grid and flex. I know what’s possible, I know what I want to achieve, but I don’t carry all the syntax in my head anymore. That’s not new—we’ve always used cheat sheets, shortcuts, and macros. I haven’t typed out a for loop from scratch in two decades.

Programmers used to punch holes in cards. They moved bits around in memory using machine or assembly code. They—heaven forbid—allocated and deallocated memory manually. It still helps to understand what’s happening at lower levels, but the history of software development is a history of rising abstraction.

That said, the direction of progress isn’t always linear—or inevitable. When I was studying computer science in the late 1980s, fourth-generation languages (4GLs) were widely considered the future. So much so that our final-year software engineering project switched from COBOL to a 4GL—Omnis, if I remember rightly. That’s how the leading computer science degree in Australia was preparing graduates for the future of software.

And yet, forty years later, we still mostly use what were then called third-generation languages. Sure, we no longer manage memory directly—garbage collection is now table stakes. Some capabilities remain foundational. Others, once essential to writing software, have faded into the background.

As LLMs emerge as powerful tools for developer productivity, it’s worth asking:
Which skills will remain foundational?
And which, like punchcards and memory allocation, will quietly fall away?

As William Goldman, legendary American author and screenwriter (his credits include The Princess Bride and Butch Cassidy and the Sundance Kid ) wrote about Hollywood

Nobody knows anything…… Not one person in the entire motion picture field knows for a certainty what’s going to work. Every time out it’s a guess and, if you’re lucky, an educated one

I feel that’s about where we are at when it comes to the impact of LLMs, not just on software engineering, but everything.

This week’s reading

This week we’ve got the usual grab bag of links for you-JavaScript and CSS Color deep dives, and some thoughts about UX and AI, and a very useful application of LLMs by gov.uk in bringing a significant number of PDF forms to the Web.

Why is Nobody Using the hwb() Color Function?

color, CSS, css color

A grid of colored squares forming a gradient from light to dark vertically and shifting hues horizontally across the spectrum (blue, green, yellow, orange, pink, purple).

hwb() is a color function in the sRGB color space, which is the same color space used by rgb(), hsl() and the older hexadecimal color format (e.g. #f8a100). hwb() is supposed to be more intuitive and easier to work with than hsl(). I kinda get why it’s considered “easier” since you specify how much black or white you want to add to a given color. But, how is hwb() more intuitive than hsl()?

Source: Why is Nobody Using the hwb() Color Function? | CSS-Tricks

So much has been happening in the color space (smirks) with CSS in the last few years (you’ll find quite a bit on the topic on Conffab, in particular The Colourful Future of CSS). Here Sunkanmi Fafowora asks why the hwb function seems little used (and explores the function and related CSS color functions).

The power of the spread and rest syntax in JavaScript

JavaScript

It’s a fair bet that most web developers regularly encounter the three dots (…) in their code. Sometimes it magically copies arrays, sometimes it gathers up function arguments, and sometimes it shows up in object literals like it’s casting a spell.Say hello to the spread syntax and rest parameter, two simple but powerful features that have helped me make JavaScript cleaner, more expressive, and less error-prone.

Source: The power of the spread and rest syntax in JavaScript – Matt Smith

The spread and rest operators are two JavaScript features it pays knowing about.

Building An Offline-Friendly Image Upload System

indexedDB, offline, progressive web apps, PWAs

Poor internet connectivity doesn’t have to mean poor UX. With PWA technologies like IndexedDB, service workers, and the Background Sync API, you can build an offline-friendly image upload system that queues uploads and retries them automatically — so your users can upload stress-free, even when offline.

Source: Building An Offline-Friendly Image Upload System — Smashing Magazine

Get insight into the capabilities of the Web platform with this practical application of many of its powerful yet underused features.

As an Experienced LLM User, I Actually Don’t Use Generative LLMs Often

AI, LLMs

Although I don’t claim to the best user of modern LLMs out there, I’ve had plenty of experience working against the cons of next-token predictor models and have become very good at finding the pros.It turns out, to my surprise, that I don’t use them nearly as often as people think engineers do, but that doesn’t mean LLMs are useless for me. It’s a discussion that requires case-by-case nuance.

Source: As an Experienced LLM User, I Actually Don’t Use Generative LLMs Often | Max Woolf’s Blog

Max Woolf has worked with LLMs extensively in professional capacity for years, including at scale at Buzzfeed. Here he shares his experiences and use cases.

AI is Making Developers Dumb*

People often talk about the productivity gains that comes from LLMs, and it would be disingenuous of me to dismiss these. It’s true. You can be productive with an LLM-assisted workflow, but that same workflow could also be making you dumber.

There’s a reason behind why I say this. Over time, you develop a reliance on LLM tools. This is to the point where is starts to become hard for you to work without one.I got into software engineering because I love building things and figuring out how stuff works. That means that I enjoy partaking in the laborious process of pressing buttons on my keyboard to form blocks of code.

LLM-assisted workflows take this away. Instead of the satisfaction of figuring out a problem by hand, one simply asks the LLM to take a guess.

Source: AI is Making Developers Dumb | James

This is a perspective that I’ve been seeing increasingly. And despite its black and white thinking, strong rhetorical position, unhelpful invective and strawmanning, there is something here worth considering.

*I’d probably use a less ableist term like ‘stupid’.

Could AI convert all the PDF forms on GOV.UK into web forms?

LLMs, product development

Form question asking: "Do you work in another country or receive benefit from another country, or have you at any time in the last 3 months?" with Yes/No checkboxes and a text field to enter the country name if "Yes" is selected.

Last year I wrote about a tool I built that uses AI to generate GOV.UK styled web versions of PDF forms.

This is useful because web forms are more accessible, mobile friendly and smarter than document-based forms.

They reduce error rates and processing time and enable things like automation and identity verification.

In this update I’ll consider what it would be like to use the tool to convert all the document based forms on GOV.UK.

Source: Could AI convert all the PDF forms on GOV.UK into web forms?

Many jobs are full of exacting, time consuming tasks. Many sites have legacy content and forms that need to be modernised, but the process of doing so can be extremely expensive and lengthy, and so get left undone. The UK’s digital service, gov.uk had just such a task–modernising a large number of PDF based forms.

Here Tim Paul looks at using an LLM to do this task. Does it work? What did he learn? There are many uses of LLMs which are over hyped. Tasks like this in my experience are not.

Post-Chat UI

AI, Design, LLMs, UI

Monochrome DOS interface

In 2022, ChatGPT brought us back to text. Back to a world of talking to the computer via a single input field, and getting a scrolling list of responses back.

Just like the terminal, chat-based AI is powerful, flexible for power users, and easy to program. But it has many of the problems that terminals had: it’s daunting, unintuitive, and an awkward way to do many kinds of work.

Amelia Wattenberger describes the problem astutely:

We made painting feel like typing, but we should have made typing feel like painting.

While chat is powerful, for most products chatting with the underlying LLM should be more of a debug interface – a fallback mode – and not the primary UX.

So, how is AI making our software more useful, if not via chat? Let’s do a tour.

Source: Post-Chat UI – Allen Pike

Thoughts on what comes next for AI enabled interfaces. As with software engineering, where we are headed is still very uncertain. But it is I think somewhere new and interesting.

Two publishers and three authors fail to understand what “vibe coding” means

AI Native Dev, LLMs, software engineering

Side-by-side book covers for two books titled "Vibe Coding." The left cover by Gene Kim & Steve Yegge features colorful digital rain in rainbow hues with bold glowing text. The right cover by Addy Osmani, published by O'Reilly, has a minimalist white background with two sketch-style birds and a red "Early Release" badge.

Vibe coding does not mean “using AI tools to help write code”. It means “generating code with AI without caring about the code that is produced”. See Not all AI-assisted programming is vibe coding for my previous writing on this subject. This is a hill I am willing to die on. I fear it will be the death of me.

Source: Two publishers and three authors fail to understand what “vibe coding” means

I am entirely with Simon here and also think that ship has sailed. I hereby suggest we rename it ‘yolo-coding’.

More like this delivered to your inbox every Friday? Just signup to our all signal, no noise newsletter.

delivering year round learning for front end and full stack professionals

Learn more about us

Web Directions South is the must-attend event of the year for anyone serious about web development

Phil Whitehouse General Manager, DT Sydney