Git and libgit2

How Much Do You Actually Program?

Published 2017-08-07. Last modified 2022-05-05.
Time to read: 2 minutes.

This page is part of the git collection.

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 … and I am more than 50% older than that! Like all types of bigotry, ageism is ugliest when it is delivered with self-righteousness.

Update 2022-05-04

GitHub Resume is another approach to documenting programming activity.

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            │
└───────────────────┴───────────────────┴───────────────────┴──────────────────┘
* indicates a required field.

Please select the following to receive Mike Slinn’s newsletter:

You can unsubscribe at any time by clicking the link in the footer of emails.

Mike Slinn uses Mailchimp as his marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices.