Off-hours. What languages get written outside 9-to-5.
This site got built mostly after dark. A token tweak at 8am Saturday, a font swap at 1am on a Thursday, copy edits in the gap between dinner and bed. The rhythm felt obvious. So I started wondering whether it was true of code more broadly, and for which kinds in particular.
So I pulled twelve years of commit timestamps from the public GitHub mirror on BigQuery. Every commit from 2011 to 2022, every language with enough data to read honestly. Then stripped each one down to one number: what fraction of commits land outside Monday-through-Friday, 9 to 6, in the author's local timezone?
The answer turns out to be anywhere from 30% to 67%, depending on what kind of code you're writing.
Below: thirty languages on a single axis. Drag the work-hours window or toggle whether weekends count, and the field rearranges.
Off-hours by language
That number, off-hours share, hides a lot. Each language has a shape: a 24×7 grid of when its code actually gets written.
Java's shape is a sharp little rectangle, glowing brightest Monday through Friday between 10am and 5pm. Rust's is a smear with weekend evenings nearly as hot as weekday mornings. Click through the languages below; cycling between any two tells you which world each one lives in.
When does Java get written?
Static snapshots flatten the most interesting question. Languages move. A weekend hobby finds enterprise adoption; a research toy ends up on a product team; the same syntax gets used by a different shape of person five years later.
The clearest case is Rust: it started 2012 at almost 60% off-hours and reached 50% by the end of the decade. Adoption professionalized it. Whether the same holds for every language, or it's the exception, is what the next chart shows.
Have languages professionalized?
- C
- C++
- Rust
- Erlang
- OCaml
- Scala
- JavaScript
- PHP
- Ruby
- TypeScript
- Lua
- Perl
- Python
- Shell
- C#
- Go
- Java
The fine print. This is the bigquery-public-data.github_repos snapshot, public-repo commits only, so it leans toward open-source norms. The longitudinal chart stops at 2020 because the mirror under-samples 2021 and 2022. Local time comes from each commit's author.tz_offset, which the committer's own machine sets, so a developer who never updated their laptop after a flight registers weirdly. And off-hours itself is a Western-workweek frame. A four-day week, or a Saturday-through-Wednesday week, would tell a different story.
None of that disqualifies the picture. Erlang really is anchored to 9-to-5, Lua really is a weekend language. But the percentages are softer than they look.