First impressions on Claude
This past week, my company finally unblocked access to Claude models. We have been receiving tremendous pressure from management to use AI for our workflows to "improve our velocity", so now I am compelled to use it. In my personal life, I have resisted every incursion of AI to the best of my abilities, but for work it seems that it is an inevitability now.
I will say right off the bat that it is impressive. A few simple, but longstanding issues were checked off the todo list pretty much immediately. I can also see how people like it to working with a junior developer. In its default mode, every action requires either approval or guidance. It is very much like working with a high school student that has 10 years of experience working at a tech company.
The other thing that people say is that the bottleneck becomes code review, which it very much has. I currently have three large changesets sitting around waiting for me to review them. This is the price to pay when refactoring becomes easy.
I have also had the opportunity to test Claude Opus on physics derivations. Here too, it performed shockingly well. It was able to answer in fairly comprehensive fashion a question I have repeatedly posed to colleagues and friends, but never having received a satisfactory answer for anyone. I will elaborate more on this separately.
I have so far used Claude and Gemini. I read a comment on HN that really resonated with me, in terms of my interactions with these two models. I feel like these models are like children of their parents; the apple does not fall far from the tree. Working with Gemini was very much like working with the idea of what a Googler would want to work with: a sycophantic bloviator whose accuracy is largely irrelevant. Working with Claude feels much more like working with a junior developer acting in (apparent) good faith. I imagine that GPT is like working with my mental model of of what an OpenAI employee is like: neurotic, autistic, and paranoid. And the Chinese models probably behave like my mental model of working with Chinese contractors. And so on. Perhaps this is reading too much into things, but it appears to be a useful mental model that is somewhat confirmed by others.
It is quite clear that the nature of software development, at least in a professional setting, is very different now. I like the analogy to home building. Long ago, homes were crafted. Skilled craftsman sawed every board and hammered every nail with hand tools. Cabinetry was crafted on site, tailored to the as-built interior, and fit and finish depended on the skill of the tradesmen.
Then came power tools, and air compressors, and nail guns, and standardized sheeting and wallboards. Now all of a sudden, framing is mechanical, sheathing is algorithmic, and finish work became industrialized. Cabinets come in pre-assembled standardized units to be pieced together, no longer built in place. The home became cheaper and faster to build. This was what happened to enable the post-war housing boom, a great democratization of housing, and yet we also lost so much. Gone are the tradesmen who can hang wallboard on a cove, the plasterers who can mix and sling mud to just the right viscosity, and the cabinet makers who can utilize every cubic inch of space in the kitchen.
And so too will software change. It will be produced mechanistically, no longer crafted with human tastes and finishes. The craftsman inside me is saddened by this, but the open source advocate inside me is cautiously optimistic, assuming open local models will improve to the level that Claude is at today. I have long believed that the long run equilibrium state of all software is that it will all be free and open source. Since any proprietary code can, with enough time, be rebuilt in an open fashion. We will soon see vibe coded [insert your favorite piece of commercial software to hate].
For myself, though, I still prefer not to use AI. In the same way I refuse to enable any autocorrect on my phone, spellcheck on the computer, or autocomplete in my IDE, I think myself perfectly capable of writing code and thinking for myself, however slow it may be. I want my words and thoughts to be mine and mine alone.