Flogging the World
Published 2007-08-21 @ 02:09
Tagged rubysadism
Coming out
It is time I come right out and say it…
It is true. I like to hurt code. With code I like to hurt systems. It is something I’m good at, I just haven’t been able to put it into words very well. Potential employers don’t quite understand or empathize when you talk about hurting code, even tho that might be exactly what they’re trying to hire you for. They just don’t think of it in those terms. To help gather my thoughts, tools, and to communicate my goals more clearly, I’ve launched ruby.sadi.st. Enjoy…
Flogging the World
Flog 1.1 is out, and with it a lot of enhancements to pointing out code complexity. In particular, it adds full ABC (Assignment, Branches, and Calls) metrics. ABC is a nice, simple whitespace independent way of measuring code that I talked about it in my RubyConf 2005 talk.
Well… I went overboard (again). I flogged every (latest) gem released and poked around. I won’t release the full report yet, but here is a bit of a peek:
Statistics:
total # gems : 1766
total # methods : 134839
avg methods / gem : 76.35 +/- 170.66
avg flog / project: 1245.47 +/- 3416.56
avg flog / method : 14.06 +/- 32.60
Top 10 Methods per Gem:
1: fxruby-1.6.11.gem: 2559 methods, 4.71 +/- 11.33 flog
2: bio-1.1.0.gem: 2286 methods, 13.10 +/- 23.22 flog
3: puppet-0.23.2.gem: 2044 methods, 15.85 +/- 22.54 flog
4: facets-1.8.54.gem: 1962 methods, 11.42 +/- 28.21 flog
5: soap4r-1.5.7.gem: 1452 methods, 11.55 +/- 16.59 flog
6: bioruby-0.6.4.gem: 1450 methods, 12.04 +/- 22.36 flog
7: deplate-0.8.gem: 1426 methods, 14.35 +/- 25.47 flog
8: rio-0.4.1.gem: 1291 methods, 6.44 +/- 10.17 flog
9: activerecord-1.15.3.gem: 1279 methods, 15.12 +/- 26.89 flog
10: actionpack-1.13.3.gem: 1129 methods, 12.61 +/- 19.95 flog
Most Prolific Developers:
1: Daniel J. Berger: 43 projects 11849.9 tot 275.6 avg
2: Thomas Sawyer: 43 projects 48329.2 tot 1123.9 avg
3: Eric Hodel: 40 projects 36787.0 tot 919.7 avg
4: Ara T. Howard: 28 projects 40856.8 tot 1459.2 avg
5: Aaron Pfeifer: 19 projects 3733.0 tot 196.5 avg
6: Ryan Davis: 18 projects 31990.1 tot 1777.2 avg
7: NOT Ryan Davis: 16 projects 15834.9 tot 989.7 avg
8: Geoffrey Grosenbach: 15 projects 6203.7 tot 413.6 avg
9: Erik Hollensbe: 13 projects 2069.0 tot 159.2 avg
10: Florent Solt: 12 projects 3686.2 tot 307.2 avg