LazyPost: Programming in the age of GPT and CoPilot
I’m confused and in a funk, hence this lazypost. Don’t expect any answers.
I’ve always been fascinated by the question of how we as programmers relate to our tools, how that makes us feel about what it is we actually do, and about our identity. Are we craftsmen? Are we factory workers?
It’s a question I’ve been contemplating for more than a decade on this blog. Some prior writing:
- Operation vs expression
- Sharp tools, dull minds
- You can’t run with the machines
- Automating software engineering
- The perils of being a knowledge worker
I’m happily using GitHub Copilot for my personal code. It has made me churn out more Emacs Lisp and Python, and the prospect of actually getting a little project done in a few precious spare hours on the weekend has definitely egged me on and made me more enthusiastic about experimenting with and starting new things. But what does all this mean for us as programmers?
A couple of years ago I thought I had a decent grasp of the trajectory of programming as a field, and as a career path. Languages, frameworks and libraries would get better at modeling and abstracting more complex programs, safety vs performance would be less and less of a conflicting tradeoff, compilers would get better, IDEs and tools would get better, and underneath it all, even if Moore’s Law was hitting a wall, we’d just continue throwing more cores at larger problems. But at the end of the day, the immense cognitive leverage that comes from encoding something into executable software would ensure that programmers were always in short supply. But now I feel unsure and disoriented, not certain about where I stand.
I’m beginning to get more and more convinced of Matt Welsh’s take on how LLMs spell the end of programming as we know it (YT video of his talk). The last few decades saw steady linear improvements in programming languages and tooling. The next few years (who knows, maybe months?) are going to be uncharted territory, a step change. Like the saying goes – may you live in interesting times.