LLM raises deep questions

31 Jan 2025 · Three minute read · on Gianluca's blog · Subscribe via RSS

I haven’t written here about my relationship with LLMs in software. If you want a hint, I think this article from Armin Ronacher “How I Use AI: Meet My Promptly Hired Model Intern” gives a good picture of how I use them.

My toolkit is very different since I’ve been locked into vim since 2014 and I haven’t found good integrations for it yet. I use aider because it allows me to converse with an agent from my terminal. It also has good integration with git and so on.

That said, deep questions arose in my mind after an intense coding session with Claude.

Wow it did a pretty good job

When it does a good job (and if you know how and when to use it, it usually does), I feel good because it helps me write code quickly.

I know the people I work for are happy about it since my performance has increased, so that’s good.

It also helped me to save time usually spent googling, reading StackOverflow and so on. This is the way we learned but apparently LLMs can help with that as well. Take a look at “The Pulse #119: Are LLMs making StackOverflow irrelevant?” from The Progmatic Programmer if you want to know more about this topic.

The dark side

On the flip side, things are a lot less peaceful. I am not concerned about the job market because I understand that my value doesn’t stop with the code I write, but I do get paid to write software. There is a relationship there and it would be naive to evangelize against that.

Also, I used to be passionate about writing code, solving puzzles and so on. How did I end up being happy when something else writes code for me? How valuable is the outcome of my work if it’s better for something else to take care of it because it can do it quicker than I can? Maybe not better, but good enough by any reasonable measure.

Embrace this new tool

LLMs look a lot faster when it comes to writing code. But it does not know what to do. Also it writes a specific type of code. It writes the code the majority of the people already wrote, in the same way.

For some people, or in some situations, this is everything they need. You need a common solution to a common problem, so why should you write it yourself or waste time looking for what to copy-paste or for a library to import that will contain 4% of what you need and 96% garbage?

People scared that LLMs will take their jobs should read this sentence twice because in it lies a strategy to avoid that fate. We need to get better. We need to be good at solving problems in better ways. This is challenging and it makes me feel alive.

I am not excited about writing the next navbar with a few tables to display a collection of rows from a database. I may need to do it because I need to get some work done, but now I have another tool in my toolchain that can help with that.

LLMs can fix complicated problems

I don’t want to reduce everything to: “if you only work on easy problems you can be replaced by LLMs”. They can solve complicated problems as well, but I think for the next couple of years in software, people capable of solving problems in different ways will keep thriving! And to develop such skills you need to quickly bootstrap “the common solution” and add your creativity on top.

This was always the fun part in code. 12 years ago when I started an HTML page with some PHP code sticked to it was everything I need to get challenged. Today I need something more than that and that’s another thing to look for if you want to stay relevant, the right environment that won’t make you to feel as good as an LLM, it can be a team, a manager, yourself and opensource. You are a lot more than that!

Something weird with this website? Let me know.