Comment by Sharlin
8 hours ago
I’m super impressed by how "zillions of lines of code" got re-branded as a reasonable metric by which to measure code, just because it sounds impressive to laypeople and incidentally happens to be the only thing LLMs are good at optimizing.
It really is insane. I really thought we had made progress stamping out the idea that more LOC == better software, and this just flies in the face of that.
I was in a meeting recently where a director lauded Claude for writing "tens of thousands of lines of code in a day", as if that metric in and of itself was worth something. And don't even get me started on "What percentage of your code is written by AI?"
As Dijkstra once opined in 1988: "My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger."
In an adage: code is a liability, not an asset.
"What percentage of your code is written by AI?"
"I don't know, what percentage of your sweater is polyester?"
"I don't know, I think it's all cotton, why do you ask me such a random question?"
"Well surely you know that polyester can be made far cheaper in a plastics factory than cotton? Why do you use cotton?"
LOC per day metrics are bovine metrics: how many pounds of dung per day.
I'd argue porcine: how many pounds of slop per day.
Every line of code is technical debt. Some of the hardest projects I’ve ever worked on involved deleting as much code as I wrote.
Exactly. I once worked on a large project where the primary contractor was Accenture. They threw a party when we hit a million lines of C++. I sat in the back at a table with the other folks who knew enough to realize it should have been a wake.
It’s just the easiest metric to measure progress. Measuring real progress in terms of meeting user needs with high quality is a lot harder.
Oh yeah. At a previous job there was a guy who'd deleted more code than he'd written which I always found a little amusing.
Being in a similar position to him now though... if it can be deleted it gets deleted.
I completely agree. The issue is that some misconceptions just never go away. People were talking about how bad lines of code is as a metric in the 1980s [1]. Its persistence as a measure of productivity only shows to me that people feel some deep-seated need to measure developer productivity. They would rather have a bad but readily-available metric than no measure of productivity.
[1] https://folklore.org/Negative_2000_Lines_Of_Code.html
It's only impressive if you've ever only saw code as a means to an end and SLOC never really mattered.
If you write code in any capacity, you'll know that high LOC counts are usually a sign of a bad time, browsers and operating systems aside.
That's what got me. I've never written a browser from scratch but just telling me that it took millions of lines of code made me feel like something was wrong. Maybe somehow that's what it takes? But I've worked in massive monorepos that didn't have 3million lines of code and were able to facilitate an entire business's function.
To be fair, it easily takes 3 million lines of code to make a browser from scratch. Firefox and Chrome both have around ten times that(!) – presumably including tests etc. But if the browser is in large part third-party libraries glued together, that definitely shouldn't take 3 million lines.
Yeah I would have thought 3 million lines for a fully functional browser is a little lean, though I imagine that Chrome and Firefox have probably reinvented some STL stuff over the years (for performance) which would bulk it out.
Depending on how functional you want the browser to be. I can technically write a web browser in a few lines of perl but you wouldn't get any styling, let alone javascript. Plus 90% of the code is likely going to fixing compatibility issues with poorly designed sites.
FastRender isn't "in large part third-party libraries glued together". The only dependency that fits that bill in my opinion is Taffy for CSS grid and flexbox layout.
The rest is stuff like HarfBuzz for font rendering which is an entirely cromulent dependency for a project like this.
Lines of code is just phrenology for software development, but a lot of people are very incentivized to believe in phrenology.
KPIs are slowly destroying the American economy. The idea that everything can be easily measured meaningfully with simple metrics by laypeople is a myth propagated by overpaid business consultante. It's absurd and facetious. Every attempt to do so is degrading and counter-productive.
Other western economies too. In the UK its destroying the education system too.
The problem is that Western societies shifted into a "zero trust" mode - on all levels. It begins with something like being able to leave your house door unlocked after going for work to that not being reasonable due to thefts and vandalism, and it ends with insane amounts of "dumb capital" being flushed into public companies by ETFs and other investment vehicles.
And the latter is what's driving the push for KPIs the most - "active" ETFs already were bad enough because their managers would ask the companies they invested in to provide easily-to-grok KPIs (so that they could keep more of the yearly fee instead of having to pay analysts to dig down into a company's finances), and passive ETFs make that even worse because there is now barely any margin left to pay for more than a cursory review.
America's desire for stock-based pensions is frying the world's economy with its second and third order effects. Unfortunately, that rotten system will most probably only collapse when I'm already dead, so there is zero chance for most people alive today to ever see a world free of this BS.
Citing the ability to turn on an endless faucet of code as a benefit and not a liability should be disqualifying.
These 'metrics' are deliberately meant to trick investors into throwing money into hyped up inflated companies for secondary share sales because it sounds like progress.
The reality was the AI made an uncompilable mess, adding 100+ dependencies including importing an entire renderer from another browser (servo) and it took a human software engineer to clean it all up.