Wed, 18 Oct 2006

Fading Memories

A tonne of code

KOffice is steadily growing. While we've not reached really gargantuan proportions, Krita has passed the 100,000 lines of code mark in trunk -- and that's with the color library, pigment, moved to the koffice libraries. Krita 1.6 is 108,000 lines of code, while the Gimp is 600,000 lines of code. Some of that is due to C needing more lines of code for the same functionality, some of that is generated during compilation, but there's also a difference in functionality. The Gimp has many more filters and tools: lots of stuff Krita doesn't have. Yet. And I suspect Photoshop to be in the multi-mloc range.

Last time I used sloccount on KOffice, the result was around 630.000. That was October, too. A year ago, kspread was still bigger than Krita by 10.000 lines. A year later, we're at:


SLOC    Directory       SLOC-by-Language (Sorted)
173248  filters         cpp=166091,ansic=6028,python=600,yacc=227,lex=157, sh=145
170184  kexi            cpp=93786,ansic=70942,yacc=2401,python=2123,sh=627, lex=305
119202  libs            cpp=117190,python=1369,ansic=440,sh=137,ruby=66
100757  krita           cpp=96327,ansic=3669,python=457,ruby=234,perl=65, sh=5
83465   kspread         cpp=83349,sh=99,python=17
54839   kpresenter      cpp=54571,perl=142,sh=126
51095   kword           cpp=50957,sh=73,perl=65
33839   kchart          cpp=33838,sh=1
30891   kivio           cpp=30860,perl=27,sh=4
27307   karbon          cpp=27246,sh=61
26432   kplato          cpp=26430,sh=2
14688   kdgantt         cpp=14687,sh=1
7890    kugar           cpp=7888,sh=2
2287    tools           cpp=1859,perl=261,sh=167
1843    kformula        cpp=1782,sh=61
1317    koshell         cpp=1316,sh=1
366     doc             perl=336,sh=30
224     example         cpp=223,sh=1
189     top_dir         ansic=189
183     kounavail       cpp=182,sh=1
141     shapes          cpp=141
79      plugins         cpp=78,sh=1
77      interfaces      cpp=77
22      templates       sh=22


Totals grouped by language (dominant language first):
cpp:         808878 (89.82%)
ansic:        81268 (9.02%)
python:        4566 (0.51%)
yacc:          2628 (0.29%)
sh:            1567 (0.17%)
perl:           896 (0.10%)
lex:            462 (0.05%)
ruby:           300 (0.03%)

Total Physical Source Lines of Code (SLOC)                = 900,565
Development Effort Estimate, Person-Years (Person-Months) = 253.09 (3,037.05)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 4.39 (52.63)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 57.70
Total Estimated Cost to Develop                           = $ 34,188,688
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler

We're getting awfully close to the 1 mloc lines of code mark -- that said, kexi still includes 70,000 lines of imported c code that shouldn't count, KWord basically exists in two copies, and it looks likely that we'll be able to remove most of the kotext library, which is almost 37,000 lines of code.

/software | permanent link | |


Your Comment


Name:
URL/Email: [http://... or mailto:you@wherever] (optional)
Title: (optional)
Comment:
Save my Name and URL/Email for next time
Captcha: To prevent comment spam, please retype the characters in this image:

Enter the text here: