I would say the JD's tractor software (if taken in it's entirety) is on par with the modern Linux kernel in size, if not larger. Worse yet, the codebase is spread along many different repositories, teams, and build systems.
I've seen integration builds take days to finish (not including running of unit tests).
Look I get it, John Deere is evil. But this codebase is beyond any one person or team's comprehension. It's very massive, and it's very complicated.
How is possible that a software developed for a very specific purpose is comparable in size to a general purpose OS? I see this as an indication of a bad developed/vastly overcomplicated software. Correct me if you think otherwise.
I've worked at Deere as a contractor. Not on the tractor software as I didn't have access, but I would put most of what I saw as towing the line of over engineered.
There were certainly parts that were exceptionally easy to work with. Many, many, many repos all over the place doing various different things and inside of some of those you would find some very cleanly written code with excellent tests, examples, and documentation. The problem was once those nice little libraries, tools, etc got brought together it became a mess.
Yes, but they're getting paid, which is going to easily make up for the larger number of individuals developing Linux. Not to mention that 10x the devs does not come close to 10x the productivity.
For next time: if you don't know how something works (in this case, how linux is developed and by whom), ask! It's better than assuming and jumping to conclusions.
Most linux developers are paid to develop linux. Based on Jonatan Corbets stats less than 15% of the changes could possibly be from volunteers. More than 1200 developers affiliated with ~200 companies contributed to the last release alone. There are nuances here (some developers might not be full time _kernel_ developers) but the argument that linux development isn't professional and mostly paid work has been invalid for years.