Will's blog

purpose: Will Kahn-Greene's blog of Miro, PyBlosxom, Python, GNU/Linux, random content, PyBlosxom, Miro, and other projects mixed in there ad hoc, half-baked, and with a twist of lemon

[ home | blog home | recent activity ]

Tue, 01 Jun 2010

Code growth

I was working on identifying and removing dead code in the Miro tree today when I decided to do some stats on the Miro codebase over the last bunch of versions.

version sloccount .tar.gz size
1.0
python:       44700 (94.91%)
cpp:           1313 (2.79%)
ansic:          790 (1.68%)
xml:            264 (0.56%)
sh:              30 (0.06%)
12.3mb
1.1.2
cpp:          58403 (58.71%)
python:       39985 (40.20%)
ansic:          790 (0.79%)
xml:            264 (0.27%)
sh:              30 (0.03%)
13.4mb
1.2.8
cpp:          58491 (58.53%)
python:       40187 (40.21%)
ansic:          796 (0.80%)
xml:            265 (0.27%)
sh:             196 (0.20%)
14.6mb
2.0.5
cpp:          73663 (58.74%)
python:       49198 (39.23%)
ansic:         1831 (1.46%)
xml:            438 (0.35%)
sh:             282 (0.22%)
7.3mb
2.5.4
cpp:          73808 (57.63%)
python:       51631 (40.31%)
ansic:         1874 (1.46%)
xml:            432 (0.34%)
sh:             328 (0.26%)
10.0mb
3.0.2
python:       52869 (95.73%)
cpp:            832 (1.51%)
ansic:          692 (1.25%)
xml:            432 (0.78%)
sh:             403 (0.73%)
9.7mb
git master
python:       53305 (95.98%)
cpp:            832 (1.50%)
ansic:          692 (1.25%)
xml:            432 (0.78%)
sh:             279 (0.50%)
9.6mb

There are a couple of interesting things here. First is that we switched to libtorrent in Miro 1.1. We had libtorrent code in the tarball in Miro 1.1 and removed it in Miro 3.0--that's the bulk of the cpp code.

Second, we did a ui overhaul for Miro 2.0. In doing that, we switched all three platforms to using gettext and thus only had to have one set of translations. We also ditched a bunch of binary data. That reduced the tarball size significantly.

Third, the number of lines of Python code has been going steadily up since Miro 1.1. This is the number I'm most concerned with. In adding more Python code version after version after version, we're adding more complexity and a larger domain of things to test. This adds to the maintenance work we have to do between versions, too.

We sure could use some help coding, fixing, maintaining, testing, documenting and translating.

If you're interested in helping, click this button:

Comments:

Post a new comment:

Three things:

  1. New comments get placed in a "draft" status and will NOT show up on the site until I explicitly approve it. Sometimes that happens within 24 hours.
  2. I reserve the right to reject/remove inappropriate comments.
  3. Sometimes I'll reply to a comment directly in email--so make sure your email address is correct.

If you can't for some reason post a comment, send me an email: willg at bluesock dot org.

Your name:


Your e-mail address (this doesn't get displayed to anyone--sometimes I'll reply directly to you):


URL of your website (optional):


Comment:


Yes, I am a human!


pyblosxom::1.5-dev git-master

Copyright 1996 to 2012, Will Guaraldi Kahn-Greene, under the Creative Commons BY-SA 3.0 license

Creative Commons License
Will's Blog by William Kahn-Greene is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.