How many lines of code does an average Linux kernel developer produce per year?
Based on estimates of the value of the Linux kernel (around 2200 Million Euros in 2011), the size of the kernel (in 2011, version 2.6 was current, with a bit less than 20 million lines of code), and average salary of kernel developers (for Germany, one could estimate 60,000 - 80,000 EUR/year for a mid to senior embedded developer, you can go to kununu.de and look for salary statistics for larger companies like Siemens as a reference), one can estimate the lines of new code that a full-time kernel developer produces - less than 1000 lines per year:
value=2200000000
cost_man_year = 60000
lines_of_code= 20000000
person_years = value / cost_man_year
lines_per_person_per_year = lines_of_code / person_years
I get to 545 lines per person-year that way.
The interesting question is: You can obviously type that in in half an hour. What do these software developers actually do all day? ;->
Edit: Some people might get it wrong and overlook the 😉 emoticon: I absolutely don’t think you should or can measure the productivity or competence of a software developer by counting the lines he or she produces! Myself, I just fixed a bug after searching one whole week for it by uncommenting a single line … in a two year old unfinished port of a software written 15 years ago to implement and port a niche industrial protocol created 18 years ago.


It is actually a mix of two things:
Ironic about the idea of what AI companies promote - and many managers in tech believe - that you can speed up the work of developers by speeding up code generation. The fact that typing in code costs way less than 0.1% of developers work time shows that the time to type in code is /not/ the bottleneck.
Interested in what it is actually that costs time. I think most time I work on larger projects is reading code and trying to understand how different parts are related, what invariants it has, etc. It is actually a form of /learning/ because it uses material to build a useful long-term collection of related concepts in my brain.
Anything that’d help us to do and understand the second part better would be extremely useful for this work. I think that literate programming, also tools that can transparently put code into a form of interconnected hypertext (like the LEO editor), inline doc tests and so on, are helpful for that.
Personally, I also think that wikis like gollum are powerful tools for that kind of learning, but not many people seem to agree with this (except the fossil and forejo authors).
Interesting point of view. You got my upvote 😉 I think many people took it 1st degree, so the many downvote you have.
I’m personnaly not a big fan of natural language programing. Natural language is too ambiguous and subject of interpretation. So you have to give very long description of what you want to achieve. I often do the parallel with Mathematics. If you read Euclid’s_Elements’s definition for point, line, etc…, wording is extremly wordy and indigestible. But moderne formalism is much more concise and precise. Now with LLM and vibe coding, I have the impression that programming is evolving backward 😟
The role of a developper has never been about writing code. The role of a developper is to formalize a problem. In a certain way, job of developper didn’t changed a lot since the last 50 years. My grandpa use to be developper on punch cards, and he had the sames problems than us today. How to translate accounting department request into series of instruction, how to define boundaries, etc…