Miskatonic University Press

When will Firefox overtake Emacs?

emacs r

The other day my laptop told me Firefox wanted to be updated to version 15.01. Go ahead, I said, and a few minutes later it was done. Firefox is updating itself all the time now, a new one major release every six weeks, which let me tell you doesn't fit well with the way public-access computers are managed at the library where I work. The reference desk computer was still using version 3 or 6 or something until they had to update it because of that Java bug.

Speaking of version numbers, I'm waiting for Ubuntu 12.10 to come out in October because it will have Emacs 24.2 on it, the latest version of my favourite editor. I'm running 23.3 right now but there are a few things in 24 that I want to use, though I can't be bothered to compile it from source or use a version from some dude's repository.

Firefox 15 ... Emacs 24 ... Firefox is a fairly new program, but Emacs has been around since the 1970s ... when will Firefox overtake Emacs? This sounded like a job for R.

First, using Wikipedia's Firefox release history and Emacs pages, and Jamie Zawinski's Emacs timeline, I put together a CSV file of versions and dates. Then I fired up R and ran the following:

> library(ggplot2)
> programs <- read.csv("http://www.miskatonic.org/files/se-program-versions.csv")
> programs$Date <- as.Date(programs$Date, format="%B %d, %Y")
> head(programs)
  Program Version       Date
1   Emacs    24.1 2012-06-10
2   Emacs    23.4 2012-01-29
3   Emacs    23.3 2011-03-10
4   Emacs    23.2 2010-05-08
5   Emacs    23.1 2009-07-29
6   Emacs    22.3 2008-09-05
> head(subset(programs, Program == "Firefox"))
   Program Version       Date
18 Firefox      16 2012-10-09
19 Firefox      15 2012-08-28
20 Firefox      14 2012-06-26
21 Firefox      13 2012-06-15
22 Firefox      12 2012-04-24
23 Firefox      11 2012-03-13
> ggplot(programs, aes(y = Version, x = Date, colour = Program))
  + geom_point()
  + geom_smooth(span = 0.5, fill = NA)

That looks like this:

Emacs and Firefox version number timeline

But when will the line meet? When will Firefox overtake Emacs? I had no idea how to do this so I asked on Cross Validated, the statistics Stack Exchange site: How to predict or extend regression lines in ggplot2?

As you can see, I got an answer, and with a bit of fiddling and leaving out early Firefox versions before they went on their rigid schedule I did this:

ggplot(subset(programs, !(Program == "Firefox" & Version < 4)),
  aes(y = Version, x = Date, colour = Program))
  + geom_point()
  + ylim(0,30)
  + xlim(as.Date("1985-01-01"), as.Date("2015-01-01"))
  + stat_smooth(method = lm, fullrange = TRUE)

which gives this chart:

Emacs and Firefox version number timeline with prediction

I don't know how to extract the range where the lines collide, but it looks like in late 2013 Firefox will overtake Emacs with a version number at or under 25. You heard it here first.