How Much Do You Actually Program?

2017-08-07 / All Blog posts

Last week someone asked me how much I programmed, or even if I actively programmed any more. I recognized that the 20-something-year-old who asked me the question did not believe that people over 40 are capable of being skilled in relevant technology or productive programmers. Like all types of bigotry, ageism is ugliest when it is delivered with self-righteousness.

git-stats-scala

Following Paul Graham's advice, I decided to fight back with data. As the first step I wrote git-stats-scala, a program that combs through an entire tree of git projects and summarizes the user's activity for a given time period.

The resulting summary of commit statistics is intended to be placed near the top of one's resume.

The output of this program merely answers the question: "are you an active programmer?" Git-stats-scala only reports textual additions and deletions, and includes the net change, which one hopes are indications of actual programming. Statistics are reported for each computer language found. The reader is free to impart any meaning they deem appropriate to this output. I make no claims regarding meaning.

... and My Statistics Are ...

Here is a summary of my git activity over the last 365 days:

Subtotals By Language (lines changed across all projects)

┌───────────────────┬───────────────────┬───────────────────┬──────────────────┐
│Language           │Lines added        │Lines deleted      │Net change        │
├───────────────────┼───────────────────┼───────────────────┼──────────────────┤
│Scala              │+94,120            │-68,075            │+26,045           │
│SBT                │+7,896             │-2,639             │+5,257            │
│Java               │+23,955            │-20,597            │+3,358            │
│Markdown           │+5,049             │-4,497             │+552              │
│Python             │+371               │0                  │+371              │
│HTML               │+8,810             │-10,488            │-1,678            │
├───────────────────┼───────────────────┼───────────────────┼──────────────────┤
│Total              │+140,201           │-106,296           │+33,906           │
└───────────────────┴───────────────────┴───────────────────┴──────────────────┘

Every project I was involved with had more features and better quality at the end of the timeperiod compared to the state of the project at the beginning of the timeperiod. You cannot value software by weighing it.

I am curious to know how these numbers compare with those from other programmers..

The Cadenza Project

Here are stats over the same period for my contribution to the Cadenza core project. Cadenza is the webapp that powers ScalaCourses.com. During this period I hived several F/OSS projects from the Cadenza code base, which is probably why it does not seem to be growing much even though I added many new features.

┌───────────────────┬───────────────────┬───────────────────┬──────────────────┐
│Language           │Lines added        │Lines deleted      │Net change        │
├───────────────────┼───────────────────┼───────────────────┼──────────────────┤
│Scala              │+42,687            │-38,237            │+4,450            │
│SBT                │+233               │-120               │+113              │
│Java               │+102               │-10                │+92               │
│Markdown           │+519               │-2,617             │-2,098            │
│HTML               │+1,134             │-5,345             │-4,211            │
├───────────────────┼───────────────────┼───────────────────┼──────────────────┤
│Total              │+44,675            │-46,329            │-1,654            │
└───────────────────┴───────────────────┴───────────────────┴──────────────────┘

comments powered by Disqus