| ▲ | sunaurus 2 hours ago |
| I'm constantly thinking about that Microsoft guy who posted something like "we want 1 million LoC per engineer per month", which basically read as satire to most engineers I talked to, except apparently it was not satire at all, and indeed seemed to reflect the position of many CEOs etc when it comes to LLM code generation. I do think that over the past few months, it feels like the hype around producing unmaintainable amounts of LoC has started dying down. More pragmatic and realistic takes are seemingly shared more openly, and are maybe even getting through to top leadership at some tech companies. Maybe not all is lost yet. |
|
| ▲ | embedding-shape 2 hours ago | parent | next [-] |
| > which basically read as satire to most engineers I talked to Seemingly engineers get this wrong too. I'm reminded of when Cursor bragged about how many lines of code a group of agents could produce, with the underwhelming results of a barely working browser, when the same could be built with much less code. But they highlighted the amount of code as they were proud over how much slop their constellation of agents had shit out, and these were supposedly engineers, really strange to see. |
| |
| ▲ | bee_rider 28 minutes ago | parent [-] | | “Less is better” is sort of… the position of the engineer who enjoys the craft of programming, right? I don’t think this is universally believed. And anyway, I’m pretty sure what people really mean by this “less is better” mantra is: the lowest amount of code that still accomplishes the goal and is still readable is preferred. Linux apparently has 40M lines of code, and I bet most of it is better than mine. Some things just take lots of code. Which seems to leave room for these agent salesmen to pitch SLoC as a plus. We just have to believe those lines are all good ones. I that case, it would be impressive. I don’t believe it, but they are probably pitching to people who do. | | |
| ▲ | the_af 15 minutes ago | parent [-] | | > “Less is better” is sort of… the position of the engineer who enjoys the craft of programming, right? I don’t think this is universally believed. I think it is (or should be) a goal & business-oriented concern as well, not just an engineer's who enjoys their craft. More complex systems are worse than simpler systems (that accomplish the same), in cost, maintenance, fragility, ease of understanding, etc. Fewer moving parts usually result in higher reliability, fewer things that can break down or fail to interact properly, etc. That's a business concern too, not just engineering craftmanship or whatever. Business people should care about this too. I don't think this is the same as bikeshedding over irrelevant details, something we software engineers are often prone to. Monstrous complexity does impact the business! |
|
|
|
| ▲ | tikkabhuna 2 hours ago | parent | prev | next [-] |
| The word “slop” was a good choice to talk about the mass of code generated by AI. I think it resonates with non-tech people and it conveys disgust. It’s clear that we should avoid slop. “Technical debt” never hooked management in the same way and we have found it hard to convince them that it needs to be addressed. Debt in general is something that can be a problem, but doesn’t need to be avoided or addressed until it is a problem so the can is kicked down the road. |
| |
| ▲ | VBprogrammer an hour ago | parent [-] | | Technical debt is a indefinable quantity which makes it very prone to be abused to mean "I wish I could rewrite this in [insert some fashionable language, framework or coding style]". AI slop is an easier concept to quantify. It's basically the code for which insufficient people in the organisation have a meaningful understanding of how it works or what it does. | | |
| ▲ | strix_varius 19 minutes ago | parent [-] | | > It's basically the code for which insufficient people in the organisation have a meaningful understanding of how it works or what it does. Its connotation also includes being vastly larger than needed for the purpose it serves, _if_ there is even any purpose. |
|
|
|
| ▲ | dist-epoch 15 minutes ago | parent | prev | next [-] |
| It's not unmaintainable if you have 1000 agents maintain it. |
| |
| ▲ | lionkor 9 minutes ago | parent [-] | | It is unmaintainable even if you spend 100k per month on tokens to have LLMs pretend they are maintaining it, if they slow down and make little ACTUAL progress. Sadly real progress is impossible to measure, if all you have is an overexcited """engineer""", a credit card, and so much cash spent you could hire all the best engineers you know and still have money for a porsche. |
|
|
| ▲ | fridder 2 hours ago | parent | prev | next [-] |
| I think the reliability struggles of Github may have helped with this |
| |
| ▲ | saghm 2 hours ago | parent [-] | | I can't help but wonder if the causation is backwards here and the millions of lines of slop had more to do with the Github struggles than the reverse |
|
|
| ▲ | jkrems 2 hours ago | parent | prev | next [-] |
| > I'm constantly thinking about that Microsoft guy who posted something like "we want 1 million LoC per engineer per month", which basically read as satire to most engineers I talked to Did those engineers not actually read the complete tweet? Because it wasn't about "engineers should write 1M LOC per month of product code" it was "we want to scale automated porting of code to safe languages so that 1 engineer managing 1M LOC of automated conversion can work". Which doesn't seem like satire at all..? It just means "develop mostly reliable AI-driven refactoring tools with good guard rails". Which seems quite sensible, actually? |
| |
| ▲ | bluGill 37 minutes ago | parent | next [-] | | I don't care - porting the current architecture - with all the known I wish I had done this differently's - doesn't gain much. See some developers I've worked with who love Rust for "safety", even though they just put everything in unsafe at the first sign of trouble instead of thinking about how this should work safely. Porting to a new language is easy, but does nothing useful. What we need is to fix the mistakes of the past so we can get to the future. We need to make acceptable performance. | |
| ▲ | saghm 2 hours ago | parent | prev | next [-] | | > Because it wasn't about "engineers should write 1M LOC per month of product code" it was "we want to scale automated porting of code to safe languages so that 1 engineer managing 1M LOC of automated conversion can work". Making a grand claim of a goal and not really having an explanation on how to achieve it isn't really much better. I could say "we want to scale food production so that one farmer could manage a million acres of corn a month", but that wouldn't really be sensible. A line of code is less work than an acre of corn of course, but I don't think it's at all apparent what upper bound for how much code is actually plausible for a single engineer to generate in a month and have any degree of confidence in. Given the absurd levels of hype around AI from non-engineering management in the past couple of years, it's not clear why the benefit of the doubt is earned here when there legitimate are managers and executives claiming pretty much exactly what you're claiming this guy wasn't. | |
| ▲ | psychoslave 2 hours ago | parent | prev | next [-] | | If everything in the initial code is 300% covered with excellently documented tests that should be minimally changed during transition (if transition don’t reveal any corner case tests were missing, maybe the transition is not such a bright move after all), that seems a possible thing to consider. Otherwise it really sounds like a recipe for unnecessary huge risk with dubious expected positive outcome. Not saying don’t have fun, but on the other side maybe not with the core product of you cash cow already? | |
| ▲ | raincole 2 hours ago | parent | prev | next [-] | | > "we want to scale automated porting of code to safe languages so that 1 engineer managing 1M LOC of automated conversion can work". Which doesn't seem like satire at all..? Because many programmers don't believe that'd work. See the reaction to Bun's porting to rust. (I bet Bun will work and prove those programmers wrong, but that's another story.) | |
| ▲ | SlinkyOnStairs 2 hours ago | parent | prev [-] | | Minor correction: LinkedIn, not twitter. https://www.linkedin.com/posts/galenh_principal-software-eng... > Because it wasn't about "engineers should write 1M LOC per month of product code" it was "we want to scale automated porting of code to safe languages so that 1 engineer managing 1M LOC of automated conversion can work" These are one and the same. Whether it's ported code or not doesn't change that. The framing device also doesn't matter, because it's the exact "Oh it's our goal" shtick that executives use in the former's case. "It's just a measure" doesn't cut it in a world where every single AI measure immediately gets turned into a target by executives greedy for efficiencies that don't exist. EDIT: Right, I forgot. This is HN where everyone is a galaxybrain and "Port a million lines of code per month" is a totally reasonable goal for a single individual. | | |
| ▲ | wongarsu 2 hours ago | parent [-] | | I can easily game writing 1M LOC per month by having the LLM write code in more verbose ways, with useless indirections and abstractions thrown in for good measure. I could even ask claude to write code that does nothing but just takes up line. In contrast, converting 1M LOC of code per month is a much more solid measure, as long as you measure LOC of the source, not the new code. Sure, in the short term you can pick the easy/verbose things to port, but it's hard to do sustainably. A 5M LOC code base would still be expected to be ported in 5 engineer months. Granted, you can still rush the work, not test properly, neglect good planning and engineering. Ported lines of code should not be the only measure (just like with any other measure). But it's a much less problematic measure than coding 1M LOC | | |
| ▲ | SlinkyOnStairs 2 hours ago | parent [-] | | > Granted, you can still rush the work, not test properly, neglect good planning and engineering. Which is the core point of my reply and not something to just be casually handwaved, thank you very much. |
|
|
|
|
| ▲ | esafak an hour ago | parent | prev [-] |
| All else being equal, and assuming you are building the right thing, being able to deliver more correct lines of code is a good thing. The question is how to do it reliably, given that a human cannot possibly read all of it. The answer seems to me to involve spot checks with proofs of correctness and statistical quality control, the latter being things that can be automated. One issue I see is that the models are constantly changing and are therefore not well understood statistically. |
| |
| ▲ | JCTheDenthog an hour ago | parent [-] | | >All else being equal, and assuming you are building the right thing, being able to deliver more correct lines of code is a good thing. Why? If you can deliver the same thing in fewer correct lines of code wouldn't that be preferable? At a bare minimum if you're still insisting on using AI to slop out your project, having it do things in fewer lines of code means you can fit more into your LLM's context window. | | |
| ▲ | jcelerier an hour ago | parent | next [-] | | > If you can deliver the same thing in fewer correct lines of code it really depends on what you're doing. If your goal is "become interoperable with the N different and incompatible network protocols that people have devised for doing task X" I'd really like to know a solution that doesn't have at least some part of the amount of code that scales with N. Example: consider https://bitfocus.io/connections which connects to 700 different things. Right now it's written with Node.JS, with one repo per connection (example: https://github.com/bitfocus/companion-module-meyersound-gala...). Let's say you want to make a similar product but that runs on ESP32 where performance is paramount so you need C++ or Rust. How do you do that without at least as many lines of code as the existing JS implementations for every system supported by Companion? | | |
| ▲ | bluGill 33 minutes ago | parent [-] | | Without looking at the details, I expect that each network protocol has a checksum of some form, and there are likely a lot less than N different checksum algorithms. Similarly I expect several will have encryption - using one of a few standard algorithms (if any doesn't use a standard algorithm you have a strong case to say not supported). I also expect that there is a lot of protocol parsing - this can be done as custom hand coded for each, or using a parsing framework (and likely there are some places of generic code in between). |
| |
| ▲ | esafak an hour ago | parent | prev [-] | | Then you simply produce those fewer lines of code even faster. The question is, how fast are you delivering correct code? Moreover, writing too terse code harms readability and maintainability. There is such a thing as irreducible complexity. |
|
|