I enjoy lurking in obscure IRC channels and often have been amazed how many people I met there I already knew from some other channel. Today, this happened again, so I just had to map all language channels I could find on Freenode and make a diagram of their relationships.

I tried to find all language-specific general channels, and came up with these: #perl, ##c, #python, ##c++, #ruby-lang, #haskell, #bash, #lisp, ##java ###javascript, #perl6, #scheme, #erlang, #ruby, #latex, #lua, #d, #asm, #zsh ##tcl, #ocaml, #fpc, #io, #awk, #sed, #forth, #scala, #ada, #dylan, #sml, and #!/bin/sh.

I also added #rubyonrails, #concatenative, #esoteric, #oasis, #haskell-blah, #ruby-de, #camping, and #rack, which are not really general language channels but interesting to see.

After frustration with R (I first wanted to make a kind-of heatmap), I decided to use GraphViz’s fdp . Here’s the preview of the map (click for fullsize, beware: 1833x2084px):

If you want to print it, there also is a PostScript version.

The font-sizes are logarithmic, legend for the edges:

If 45% of the smaller channel are in the other channel, there is a bold line.

If 25% of the smaller channel are in the other channel, there is a solid line.

If 10% of the smaller channel are in the other channel, there is a dotted line.

Enjoy.