barrell
5 months ago
I'm not convinced it's what the future holds for three main reasons:
1. I was a pretty early adopter of LLMs for coding. It got to the point where most of my code was written by an LLM. Eventually this tapered off week by week to the level it is now... which is literally 0. It's more effort to explain a problem to an LLM than it is to just think it through. I can't imagine I'm that special, just a year ahead of the curve.
2. The maintenance burden of code that has no real author is felt months/years after the code in written. Organizations then react a few months/years after that.
3. The quality is not getting better (see gpt 5) and the cost is not going down (see Claude Code, cursor, etc). Eventually the bills will come due and at the very least that will reduce the amount of code generated by an LLM.
I very easily could be wrong, but I think there is hope and if anyone tells me "it's the future" I just hear "it's the present". No one knows what the future holds.
I'm looking for another technical co-founder (in addition to me) to come work on fun hard problems in a hand written Elixir codebase (frontend is clojurescript because <3 functional programming), if anyone is looking for a non-LLM-coded product! https://phrasing.app
james2doyle
5 months ago
Totally agree. I use for chores (generate an initial README, document the changes from this diff, summarize this release, scaffold out a new $LANG/$FRAMEWORK project) that are well understood. I have also been using it to work in languages that I can/have written in the past but are out of practice with (python) but I’m still babysitting it.
I recently used it to write a Sublime Text plugin for me and forked a Chrome extension and added a bunch of features to. Both open source and pretty trivial projects.
However, I rarely use it to write code for me in client projects. I need to know and understand everything going out that we are getting paid for.
bdangubic
5 months ago
> I need to know and understand everything going out that we are getting paid for.
what is preventing you from this even if you are not the one typing it up? you can actually understand more when you remove the burden of typing, keep asking questions, iterate on the code, do code review, security review, performance review… if done “right” you can end up not only understanding better but learning a bunch of stuff you didn’t know aling the way
barrell
5 months ago
I have never met an engineer whose abilities were limited by their typing speed. Most engineers can already type far faster than they can critically think/store memories
bdangubic
5 months ago
My abilities are limited by time, I don’t work (never have) more than 6-7 hours per day. Hence I automate everything that requires my time (and can be automated). If I have something that saves me 10 minutes per day, that is significant for me (should be for you too if you value your time). now imagine if I have something that saves me 90 minutes per day…
JustExAWS
5 months ago
I don’t use Claude Code or any of the newer coding assistants. I use ChatGPT and tell it the code I want with the same type of specifications I would do when I am designing an implementation. It can definitely type 200+ lines of correct code faster than I could especially since I would need to look up the API calls for the AWS SDK.
I treat it like a junior developer.
risyachka
5 months ago
This.
If someone says "Most of my code is AI" there are only 3 reasons for this 1. They do something very trivial on daily basis (and its not a bad thing, you just need to be clear about this). 2. The skill is not there so they have to use AI, otherwise it would be faster to DIY it than to explain the complex case and how to solve it to AI. 3. They prefer to explain to llm rather than write code themselves. Again, no issue with this. But we must be clear here - its not faster. Its just someone else is writing the code for you while you explain it in details what to do.
barrell
5 months ago
To be honest, I’m more inclined to attribute the rampant use of LLMs just to the dopaminergic effect of using them. It feels productive. It feels futuristic. It feels like an unlock. Quite viscerally. It doesn’t really matter your seniority or skill level, you feel can do whatever is within your wheelhouse, and more, faster.
Like most dopaminergic activities though you end up chasing that original rush, and eventually quit when you can’t replicate it and/or realize it is a poor substitute for the real thing, and likely stunting your growth
JustExAWS
5 months ago
I have been coding professionally for 30 years and 10 years as a hobbyist before then writing assembly on four different architectures. The first 12 years professionally bit twiddling in C across multiple architectures.
I doubt very seriously you could tell my code was LLM generated.
I very much rather explain to an LLM than write the code myself. Explaining it to an LLM is like pre rubber ducking.
bdangubic
5 months ago
there is a 4 and 5 and 6… :)
here’s 4 - there are senior-level SWEs who spent their entire career automating every thing they had to do more than once. it is one of core traits that differentiates “10x” SWE from “others”
LLMs have taken the automation part to another level and best SWEs I know use them every hour of every day to automate shit that we never had tools to automate before
koakuma-chan
5 months ago
I agree on all, but I also have a PTSD of the pre-LLM era where people kept telling me that my code is garbage, because it wasn't SOLID or whatever. I prefer the way it is now.
skydhash
5 months ago
SOLID is a nice sets of principles. And like principles, there are valid reasons to break them. To use or not to use is a decision best taken after you’ve become a master, when you know the tradeoffs and costs.
Learn the rules first, then learn when to break them.
mattmanser
5 months ago
I actually sat down to really learn what SOLID meant a few years ago when I was getting a new contract and it came up in a few job descriptions. Must have some deep wisdom if everyone wants SOLID code, right?
At least two parts of the SOLID acronym are basically anachronisms, nonsense in modern coding (O + L). And I is basically handled for you with DI frameworks. D doesn't mean what most people think it does.
S is the only bit left and it's pretty much open to interpretation.
I don't really see them as anything meaningful, these days it's basically just make your classes have a single responsibility. It's on a level of KISS, but less general.
windock
5 months ago
Looks like for you SOLID is just so obvious and easy that it's not worth even thinking about. Maybe that's a sign you're working on code that is already adherent to it. Try working on projects that are violently against it, while still being a classic Java-like codebase to appreciate it.
I work on a big codebase, where most of the code is in Singletons and static methods, no interfaces, no DI frameworks. Maintaining this system and making serious modifications to it is a serious engineering effort, adding weeks to simple changes.
mattmanser
5 months ago
I'm really not. Most of the code I have worked on in my career was hodge podge code, or written by ridiculously unqualified programmers. Sometimes it has been 10-15 years old. At one place the external agency who'd written one of the systems were so bad that they had a project per class. One project, one class file. And no-one had noticed in 5 years, they just thought it was somehow necessary!
Part of what makes my clients happy is that I deliver changes and new features consistently. What I don't always tell them is that after my first 3 months I will start ripping out huge swathes of their old code and replacing it with 1/10th the amount of code that was there. Sometimes I do, depends on the client.
The recent codebase I worked on was using what I consider one of the worst patterns I've ever seen, CSLA. Everything used it. Absurdly hard to work with, practically designed to be inscrutable. It was also littered with static methods everywhere, impossible to use DI with. The gig before that some prat had used the mediator pattern for simple CRUD forms.
2 years later and there's not a single CSLA pattern left and only a few static methods in 'critical' code paths that I haven't got round to extricating. We can use modern libraries, everything is DI, and have switched from framework 4.7 to Core .Net 8.
In the past I've migrated webforms to MVC, migrated from one database system to a different (surprisingly easy) and switched whole front-end frameworks.
It is a serious effort to fix architectural problems. But you turn it in a manageable effort by chipping away at it. By starting on one system and spreading.
That webforms to MVC? It started with one MVC endpoint for a new backend admin feature. Non-critical, but can I run an MVC project inside a webforms project. As soon as I could run the two side-by-side every new feature was an excuse to migrate a page to MVC, it didn't add much time. A year later, bye-bye webforms. Hello, development velocity.
Lots of programmers will not even attempt to fix architectural rot and just wallow in it.
I have advantages, often I'm a team of one, or two, or three and can bully my way through middle management to change. Yes. Weird career. I'm not going to lie, every now and then I'm 80% through a refactor with a deadline looming and I hate myself and despair. But it usually works out.
But you sound so resigned? If you were in my position, would you listen to my opinion about SOLID if I'd just admitted I was wallowing in the rot? You don't sound like a top tier programmer.
Try fixing it! That's how you learn what actually works in architecture. That's when you can start having an opinion about architecture.
tjr
5 months ago
Lots of programmers will not even attempt to fix architectural rot and just wallow in it.
What would Claude do?
koakuma-chan
5 months ago
This is idealistic. Do you actually sit down and evaluate whether the code is SOLID or maybe it's more like you're just vibe checking it, and it doesn't actually matter if you call that SOLID or DRY or whatever letters of the alphabet you prefer. Meanwhile your project is just a PostgreSQL proxy.
skydhash
5 months ago
These are principles, not mathematical equations. It’s like drawing an human face. The general rule is that the eyes are spaced by another eye length viewed from the front. Or the intervals between the chin, the base of the nose, the eyebrows and the hairline are equal. It does not fit every face, and artists do break these rules. But a beginner breaks them for the wrong reasons.
So there’s a lot of heuristics in code’s quality. But some time, it’s just plain bad.
majorbugger
5 months ago
and what LLM has to do with your PTSD?
koakuma-chan
5 months ago
It has to do because those assholes will no longer tell me that I should have written an abstract factory or some shit. AI generated code is so fucking clean and SOLID.
muzani
5 months ago
Ah, so it's like remote work. Boom of the buzzword, actually being forced to live the buzzword, then whiplash back into the dark ages.
pllbnk
5 months ago
That was a weird comparison and I didn't understand what was meant exactly. Are you trying to say that remote work is somehow putting a burden on organizations? If so, probably wrong organizations have been in your radar.
muzani
5 months ago
I got sick of remote work by 2018. I quit freelancing, took on a full time job in hopes of just spending time with other humans. I wasn't the only one - co-working spaces just boomed and peaked in 2019 with WeWork.
But after lockdown, 4/5 of the co-working spaces in my city shut down. The same people who did co-working spaces started their own businesses and would criticize remote work. Remote work basically went back to 2008 levels, even with new tech like Slack, Zoom, etc. Hybrid is probably best, but people overshot for no reason.
I think with AI, if you were early enough to work with langchain, there's some hints that they tried writing langchain with AI. The architecture was all over the place. Some bits were overengineered. Context windows grew faster than the scaffolding that was designed to handle small context windows.
GPT-5 is the lockdown event. You have the tech now to work fully with AI... it just stops being vibe, and starts being invasive. It's more judgemental. It changes code in a way you don't want it to. We'll probably be in a better place next year, but by then, people have lost their appetite for AI assistants.