Mike Slinn
Mike Slinn

How Much Do You Actually Program?

Published 2017-08-07.

This article is categorized under Open Source, Software

Last week someone asked me how much I programmed, or even if I actively programmed anymore. 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.

My Statistics

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 time period compared to the state of the project at the beginning of the time period. You cannot value software by weighing it.

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 web application 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            │
└───────────────────┴───────────────────┴───────────────────┴──────────────────┘