Hackers and photographers

Share
Hackers and photographers
Inu-san is painting a landscape and turns around in surprise when he realizes a camera is pointed at him
💡
I used AI to fix my grammar mistakes and awkward phrasing.

Hey, what's up? It's Takuya here.

Agentic coding has become a crucial workflow these days. It has completely changed the landscape and perspective of software development, even for indie developers like me. At the same time, many of us are anxious about this drastic economic change. For most of us, this is the biggest paradigm shift we've experienced as programmers.

I struggled to accept it, and it took me a long time to get through bargaining and depression. But after using Opus 5.5, I felt AI had become smart enough for me to quit writing code myself. Now I've mainly been reviewing generated code in Neovim. It will keep evolving, and I'm certain I'll be touching lines of code less and less in the future.

Now, I'd like to discuss what we should learn and how we should change our mental model of programming. Also, I thought it'd be interesting to take a snapshot of my thoughts and feelings in this unique moment.

Table of Contents

Hackers were like painters

There is a popular book called Hackers & Painters by Paul Graham. It argues that hackers are makers, like painters, rather than scientists or mathematicians. One quote beautifully describes how we built software in the pre-AI age:

Paintings usually begin with a sketch. Gradually the details get filled in.

Like painters, we discovered things during the process:

Have you ever noticed that when you sit down to write something, half the ideas that end up in it are ones you thought of while writing? The same thing happens with software.

I loved sketching directly in HTML to design a website. It gave me so many ideas along the way.

That's because code wasn't just the output. It was how we thought:

A programming language is for thinking of programs, not for expressing programs you've already thought of.

So our code represented our thoughts, or the history of our thoughts. No wonder we got attached to it.

With agentic coding, I still sketch and refine, but no longer in code. I've stopped thinking through code. Instead, I think in natural language, like English and Japanese. That's why some people say English is now the best programming language.

Hackers are now like photographers

Now you can ask your agent to build a web page, and it's done in minutes. In this process, you skip thinking about variable names, which tags to use, how the DOM should be structured, CSS properties, and so on. These were our brushstrokes.

As DHH pointed out in his keynote at Rails World 2026, portrait-making went through the same change around 1900, when Kodak's Brownie camera made photography affordable. Anyone could get a realistic portrait cheaply, without learning to paint. Painters realized that:

Depicting reality as perfectly as possible was no longer really an economically viable skill. They needed another skill. They needed another domain.

The same thing is happening to programming. As Nolan Lawson wrote in his blog post:

A lot of the educators I admire in the frontend web space seem to be either bowing out or dialing back their efforts: Axel Rauschmayer, Salma Alam-Naylor, Josh W. Comeau, to name a few. Other well-known luminaries like Kent C. Dodds, Addy Osmani, Rachel Nabors, and Lydia Hallie have pivoted from talking about frontend development to talking about… well, take a wild guess.

Like the painters, they needed another domain. This is a clear sign that, with AI, hackers' work has changed from painting to photography.
At the same time, almost anyone can make software without knowing how to write code.
Let's look at what non-professionals have been making with their new technology.

Nobody calls snapshots "photo slop"

Because it's so easy to build things with AI, people have been publishing a massive number of products. According to RevenueCat's State of Subscription Apps 2026, new subscription app launches grew from about 2,000 per month in January 2022 to over 14,700 by January 2026. Some of these apps look incredible and unique, but many are just yet another to-do app or habit tracker, and people call them AI slop. And the flood hasn't turned into revenue: apps launched before 2020 still generate 69% of subscription revenue, while apps launched in 2025 or later account for just 3%.

This has been happening in photography for years. Having a good camera doesn't make you a great photographer. Your smartphone, with multiple lenses and a 48MP sensor, can take stunning AI-enhanced photos with just a few taps.

My parents have iPhones too, and they take photos that just put the subject in the center (called Hinomaru-kozu/日の丸構図 in Japanese), without caring about lighting or composition. They just capture whatever is in front of them. The photos are technically sharp and well exposed, because the phone handles that. But they don't say anything.

Interestingly, nobody calls these photos "photo slop", even when they're posted on Instagram for everyone to see. We're used to seeing them everywhere.

People call apps "AI slop" because, until now, publishing software has mainly meant making something for other people to use. But this landscape is going to change. In a world where everyone can make software as easily as taking a photo, we'll get used to seeing tasteless apps, just as we got used to snapshots. I have no doubt my kids will enjoy making their own "apps" without knowing JavaScript or any other language, and nobody will call them slop.

Then, what role do professional software developers play?

Know why it feels right

I've been taking photos since 2015, and I also publish videos on YouTube as devaslife. If you've watched my channel, you may recognize my video style. It mainly comes from what I've learned through photography.

There are still a lot of domains where you have to learn photography. For example, if you run a business and use Instagram to attract customers, you have to post "good" photos (or videos). Unlike snapshots, these are made for other people.

To get photos that work for your business, you can't avoid learning shutter speed, aperture, ISO, composition, lighting, and so on, so you can get the result you want instead of relying on the defaults. On top of these skills, you'll need to develop your "taste".

It's a vague concept, but Mitchell Hashimoto defines it as:

“Taste” is the ability to consistently make high-quality qualitative judgments where no objective metric exists. It’s the creation of something that feels right intuitively, with no real justifiable way to measure that. But when you do it, people feel it.

In photography, I believe taste is knowing what makes a picture pleasing when you see one, and being able to reproduce it. It can't be measured. It's not scientific or mathematical. When you enjoy something, you have to carefully observe your mind, then decompose and analyze the feeling. Reproducing that essence is another level. It takes a lot of effort to reliably get the result you want by yourself.

This is where professional software developers now have to compete. You need not only your own taste, but also the ability to reproduce it in your work as a professional.

Articulate your taste in natural language

As mentioned earlier, a programming language is not for thinking of programs anymore. Your agent translates your thoughts into code efficiently. Now your job is to write out the directions. The knowledge and experience you accumulated by writing code should be articulated in natural language, so your agent can understand and apply it. You are the only one who can define the right goals, directions, issues, and questions. So, for your agent's output to reflect your taste, you need to be good at telling it what you want. Just as a 48MP sensor doesn't make you a great photographer, Opus 10 won't make you a great developer. (I've personally been doing this by taking tech notes, but that's another story.)

For beginners: You are lucky. You don't have any old habits to unlearn, so you can start thinking in natural language from day one. Build as many things as possible with AI, just like taking lots of photos with a camera. Find good examples, and try replicating them, again and again. If I were a beginner, I would do that. At some point, you'll start noticing quirks you can't fix just by prompting. That's when you need to learn how things work under the hood. I didn't know anything about RAW development until I bought my first Leica, and the photos straight out of the camera stopped satisfying me.

I no longer grieve when I see my agent rewrite my code. My app is still mine, because it reflects my taste and ideas. No one can predict the future, but I feel it's time to change gears.