Hacker Newsnew | past | comments | ask | show | jobs | submit | whoke's commentslogin

I like the concept of "inevitable grittiness"! I think languages like Lean actually do a very nice job of pushing the grittiness out to the boundaries of your program. Everything else can stay pure, and in domains that are amenable to mathematical reasoning (compilers, DSP, etc) it feels like a natural fit. I don't think you have to go all in, either. I ported the compiler project I'm working on from TypeScript to Lean and recently spent a weekend making all the functions total and implementing a few basic theorems. On a basic level it feels like writing Haskell, but there's a lot more room to grow with it.


"you haven’t done any of the hard thinking you would normally do in writing the code yourself"

It's true, I spend less time solving problems that arise naturally from the process of implementation. But implementation errors have a poor signal-to-noise ratio. For every error that exposes a real design problem there are 10 others that involve routine fixes: type errors, scope issues, import resolution, dependencies. There's a common argument I see being thrown around, which is "how will junior engineers develop into senior engineers if they don't get reps in with implementation?" But to me it feels like "programmer" and "architect" are becoming more and more orthogonal as the models improve in capability. If my goal is to be an architect, getting more reps in as an architect is in my best interest, and letting the agents do the dirty work frees up space for me to spend the mental effort where it counts. And anecdotally, the scope of projects I've started taking on has scaled roughly linearly relative to how much work I'm able to delegate, while the mental engagement has stayed constant.


| type errors, scope issues, import resolution, dependencies.

I write code myself and use the LLM to find mistakes then fix them manually. I recommend inverting the conventional wisdom on LLMs:

  1. Don't use it to write code. It's a terrible
     programmer. But it's an intelligent rubber duck
     and a solid analysis tool.

  2. Write the code yourself. It'll go faster than
     figuring it out as you go along. It's just typing
     if you have a plan.

  3. Use an LLM to sanity check what you wrote.
     It can find potential design issues or future
     problems or breaks from convention. Decide based on
     your experience how much you want to address these
     issues before moving on.
Is this as fast as AI writing the code? Not at first but possibly over time. Maybe faster. Certainly better quality.

Plus you don't lose any of your skills in the process.

You're still doing the gruntwork necessary to keep your skillset.

And the token cost is a small fraction of what it takes to get LLMs to write good code.


> Don't use it to write code. It's a terrible programmer.

I see this sentiment often, and I’m honestly not sure where this comes from, as it’s really not been my experience. I feel like this must come from people feeling threatened and just moving the goals posts, or not knowing how to use the tools effectively.


> I see this sentiment often, and I’m honestly not sure where this comes from, as it’s really not been my experience

If you see people saying it often, but you are convinced they are just feeling threatened, what AI generated software would point to to say, "Look at this! Definitive evidence that they are just coping!"


Well, for one thing, I’d point to all the other anecdotes of developers being made 10x more efficient due to LLM use.

But really I’m just comparing against my personal experience. Once I learned how to use the tools well, and what to expect (and what not to), I’ve found LLMs to be very powerful.


>If you see people saying it often, but you are convinced they are just feeling threatened, what AI generated software would point to to say, "Look at this! Definitive evidence that they are just coping!"

This is a trap. Anyone who answers this will see the goalposts being moved yet again.

95% of our code at a top in market global fintech is now written by agents. We make it write good code, and it does.


This is very vague. Maybe you could actually name the fintech (or, if that is too sensitive), you can list a few of its competitors?


GitHub

/s


I see your sentiment quite often here on HN¹, I'm honestly not sure what kind of experience you may have had with automatic program writers. LLM code absolutely sucks.

1 - I wonder why my other social circles are so different.


I am really curious about this because my experience is completely different. Can you elaborate a bit more on how you use LLM's for coding? Are you doing one-shot coding? Vibe coding (not looking at code)? Small focused one-step-at-a-time with yourself verifying? Anything else?


It's a common enough experience that it shouldn't be dismissed.


I think language, frameworks, domain and style can all influence the quality of the output. I think it’s hard to compare experiences.


I think a lot of the people saying AI code sucks is because the code isn't formatted the way they like, not because the code doesn't work.

Basically, the people that leave dozens of bikeshed code review comments.

Sure, sometimes I might ask the AI to break out a helper function or structure things differently, but that's the same as working with another dev


I've witnessed SQL executed with a where clause be wrapped in a function which then iterates over the result to re-enforce the where clause.

People need to read the slop they're throwing at reviewers.


It's a mistake to let AI write code unsupervised by a human. I tend to let it write code and then iterate on it. Sometimes myself (because explaining would take longer than actually doing it) sometimes I prompt the AI to improve specific points.


Have you seen how poor the Claude Code codename is?

If that's what the token providers themselves can get out of their SOTA models, imagine how bad it is for other companies.


I agree. Claude Code (for example) writes excellent code as long as the prompt is focused and clear.


I agree. This sentiment is quite tiring and I put it down to one of 3 things:

1) lies and/or cope

2) lack of actual software ability, therefore over evaluating your own skill

3) haven’t actually used LLMs, and want to do a “look at me I’m so unique and different”

I roll my eyes whenever someone says “AI bad” “AI sucks” “AI can’t replace me”

Yeah. Load of


Regarding 2

Isn't it possible that people who think LLMs are awesome at coding are in fact bad at it themselves, leading to them over estimating the LLMs "skill"?

To me it feels like people telling on themselves that they aren't very good


30+ years of experience here writing everything from JIT high-performance compilers to professional game engines to mission critical biz servers:

Claude Code is excellent at writing (C++) code. Especially multi-threading code. However I still need to verify everything because it will occasionally make mistakes.


Guess I'm the one who is delusional then

Oh well. Time to start building a new career before I'm completely irrelevant I guess


I don’t consider myself an expert, but I’ve been programming for the last 6 years, and of those 6 years I’ve spent almost all my spare time programming during this period except for a 1 year hiatus.

This includes personal projects with a decent amount of users, and 1 sold project. I’m not the best programmer, but I wouldn’t say I’m bad at all.

Question to you, have you actually used a leading model like Fable when it was available? I did. I was seriously impressed.

I’ll be honest I find it hard to take anyone seriously who says they can program better or faster than a model with those capabilities. That has not been my experience.

Architecting - yes people are still better overall. LLMs tend to go with the average middle of the road result. But in terms of output, raw speed, and getting something working? No way am I better than an llm.

Happy to be enlightened and told I’m completely wrong. Maybe I am an idiot. That is a possibility.

But how about I give you a task, and I give Claude that same task, and we compare results against execution speed? I’ll happily be the judge of that.


People are generally bad at judging themselves, and for some reason even worse about judging their agents' output.

I've heard a million people say their LLM workflow produces amazing code. But I have never actually seen the amazing code allegedly being produced. Where are the people saying "I love when my coworkers send me AI-generate PRs"?


“Amazing code”… who cares?

that’s like saying a book is only worth reading if each sentence is beautiful

To me I couldn’t care less as long as the overall story is coherent, and I care more about the idea density in the book.

Lord of the rings is a great book because of the ideas, not because Tolkien is the best writer ever.

Same with AI. I couldn’t care less if some of its code is crap, if it is dense with ideas and generally good execution. If it writes crap code sections I can “beautify” myself.

Plus LLMs are only going to improve… they have improved so much since ChatGPT 3. It’s insane.

And the arguments saying they haven’t can’t be taken in good faith


I mean sure. It can get stuff done faster

So can just copying from Stack Overflow, or taking from Open Source repos

There have always been reasons why we didn't prefer to do that in the past, but I guess laundering it through LLMs is fine. And that's just the tip of the ethical ice berg

High volumes of unvetted code is a bad practice. If the code winds up working out fine then congrats you won the slot machine. It's still a bad practice and very, very stupid to become reliant on

And by the way, I had been programming for longer than you have before I even graduated high school, if that matters


But we aren’t discussing ethics here, we are discussing technical capabilities.

Who said it’s unvetted?

Sure it matters


> Don't use it to write code

One of the things I've started doing is to write the high level scaffold myself, create stubs (with comments) and have it fill out the details. I haven't done this for long, but I feel like my mental model of the code rots less, and I can review code faster.

I used to do this in the past, when these models were not all that capable, now there is a huge temptation to leave everything to the model. But long term I lose track of whats going on, and have a hard time even communicating with the model about the changes I want. Just a total decay of my mental model of the system, and it's really hard to recover from that state.


I like to start out by creating the overall structure of my application: the module structure, high level components, feature boundaries. That way these decisions are already made for the LLM, and it can focus on filling in logic within the structure provided.

It works quite well for me, a lot better than when the LLM makes these decisions.


Definitely agree. And once you factor in the review time + time spent fixing LLM bugs, I'm pretty sure this inverted process is actually faster than using the LLM to write code


This is half question, half thought experiment: What exactly is it that makes us think „great, I can delegate coding to the agent, and focus on architecture myself“, instead of „great, I can delegate coding to the agent, and I can delegate architecture to the agent, and I can focus on <third thing> myself“?

And how many levels up can you construct this sentence before things go south?

What I‘m implying with this question is, of course: What makes us so confident that these things are not also better architects than us?

After all there is a huge corpus on how to architect applications correctly, and that’s in the training data just as much as Python best practices and C++ style recommendations.


I'd say this is relative to the novelty of the problem domain. At work I'm often solving problems that have fairly standard solutions, e.g. Python scripts to automate build and execution workflows. For this stuff I'm often happy to delegate architecture, and in general, since I spend a lot of time working with legacy code, the solutions the models develop are both clearer and more maintainable than what was already there. The personal project I'm working on (small research compiler for stateless computation) has sparse precedent, and because of this I spend a lot more time hashing out architectural questions with the models. I think of it as a collaborative enterprise.


You can delegate architecture to agents, as long as you know different architectures and decide which one is the most fit for a given scenario. AI can choose one but it will usually pick the one that is more present in the training corpus.

React + NextJS is a terrible architectural decision for most projects that LLMs recommend all the time.


Business has tried and mostly failed to do this since the beginning of programming. Architects that stop coding long enough tend to become shitty architects as their abstractions increasingly become disconnected from the concrete requirements of the actual problem space rather than the idealized version in their head.


ironically llm prove the its not possible to just think "abstract thoughts" . we cannot remove concrete "implmenation" facts like paris is capital of france and retain just abstract "countries have capitals"


I think the interesting part here is that the black box gives us a starting point. And it's not a true black box: if a model is generating Lean, we can examine the entire source, iteratively refine by refactoring into smaller self-contained units, and the compiler gives us the certainty that our decomposition is correct.


Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: