This is about a very specific use of a particular large language model. The model is Claude, from Anthropic. The use is assistance in coding. I find that coding with Claude makes me a lot more productive than I am without.
I’ve used language models quite a bit by now, and I don’t think what they’re doing is “intelligence” exactly. Whatever “intelligence” is. I think I can do is place “Claude-as-a-coding-tool” on a continuum. In my own lifetime, “programming computers” started out as a very detailed, low-level task involving a teletype or punch cards. Your tasks as a programmer mostly involved thinking about the goal you wanted, and breaking that down into absurdly tiny steps. Each of which would become a punch card, or a line of code.
In some cases, particularly when the first personal computers arrived, you had to be very familiar with the inner workings and architecture of the computer you were using. Managing memory was your job, and the absurdly tiny steps leading (hopefully) to your goal could be as absurdly tiny as moving bytes around in that memory. That was how assembly language pretty much worked. I managed to write some assembly language code that functioned, technically. But I never managed to put the absurdly tiny steps together into anything substantial or, y’know, useful.
The C language was pretty much like that too, but moved up a bit from the bare-metal concerns of assembler. The programmer still had to make sure to properly allocate and reclaim memory, but could think at a somewhat higher level. I found C pretty difficult, but enough easier than assembler that I created some programs that actually did something.
At some point computer languages started to come with garbage collection, which meant that the programmer (mostly) no longer had to worry about what was going on in the actual chips. You could think at a higher level. This helped me, at least, be more successful at programming. And the community of programmers helps too; it’s grown steadily for decades, to the point that now if you write code in any popular language (my current choice is Python), your first task is more likely to be finding some code that already works to do part of the tasks leading to your goal. It might even be built into the language. The days of looking up an algorithm to figure out how to sort a list are happily in the past; now I just type “sort” and don’t worry about it.
But is “typing ‘sort’” the best use of my abilities in creating a digital tool? The decades-long progression of programming has been “up,” in the sense of rising from focusing on absurdly tiny steps to being able to concentrate on the goals you have for what you’re working on. When I use an AI tool to help write code, I can leave mechanical tasks like entering the word “sort” to the AI, and think about things like why I need to sort a list, what the list is for, and how to make the system I’m working on more useful.
I can’t entirely step away from the code itself — large language models are statistical engines, and the answers they deliver are probabilistic, not deterministic. That is, they can make mistakes. So can I, of course. So having a human checking the work of the AI, and an AI checking the work of the human turns out to be a really good way to filter out the mistakes made by each.
Coding with Claude has helped me reduce a coding problem that’s been particularly troublesome for me personally. I am crap at naming things, and at remembering the names I use. If I had a nickel for every time I’ve named a variable, then later misspelled the name I myself created (often embarrassingly recently), well, I’d probably be relaxing on my yacht.
What I do is still programming; I have no qualms about stating that. But programming tools have continued their evolution, and AI is just the latest, boosting humans another rung up the ladder of abstraction. Highly recommended.
Leave a Reply
You must be logged in to post a comment.