Monday, September 21, 2015

Two billion lines of code...

Two billion lines of code...  That's the estimated amount of code that powers all of Google's web sites.

“Lines of code” (LOC) or thousands of lines of code (KLOC) are, these days, standard measures of the size of a software project.  As any programmer would tell you, these are very imperfect measurements – somewhat akin to measuring a farm by its acreage.  Some farms pack the plants more densely, have better soil, more sunlight, more water, etc. – so the number of acres is a very crude measurement of a farm's productivity.  Similarly with software, LOC is a crude measure of how much a particular software program does, or how complex it is.  But it's better than nothing, and nobody has yet come up with something that's widely considered to be better (though I'm partial to using the compressed size of code, rather than LOC).

No matter how you measure it, though, Google's code base is simply enormous.  It is almost certainly the most complex single thing that mankind has ever produced – though that statement may not be at all obvious to non-programmers.  By comparison, the design of an automobile is an utterly trivial effort – even when you include the design of the automobile's components.  In fact, even in automobiles today, the amount of engineering that goes into software (including firmware) is larger than all the other engineering put together.

It fascinates me how the engineering effort put into software is invisible to a large segment of the world's population.  They simply have no idea what went into, say, the design of the smartphone they use every day.  As the number of people exposed to at least basic software concepts increases (and it is, most certainly!), that proportion will change.  Has any other technology ever had this sort of disconnect between actual effort and perceived effort?  I don't know of any...

No comments:

Post a Comment