Continuing on my stats-a-holism, here is David A. Wheeler's 'sloccount' run on top of harmony classlib trunk of today
---------------------------------------------------------------------- SLOC Directory SLOC-by-Language (Sorted) 942739 modules java=867844,ansic=61533,cpp=12807,asm=555 4633 support java=4629,perl=4 12 depends sh=12 Totals grouped by language (dominant language first): java: 872473 (92.09%) ansic: 61533 (6.50%) cpp: 12807 (1.35%) asm: 555 (0.06%) sh: 12 (0.00%) perl: 4 (0.00%) Total Physical Source Lines of Code (SLOC) = 947,384 Development Effort Estimate, Person-Years (Person-Months) = 266.92 (3,203.05) (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05)) Schedule Estimate, Years (Months) = 4.48 (53.71) (Basic COCOMO model, Months = 2.5 * (person-months**0.38)) Estimated Average Number of Developers (Effort/Schedule) = 59.64 Total Estimated Cost to Develop = $ 36,057,364 (average salary = $56,286/year, overhead = 2.40). ---------------------------------------------------------------------- Then I ran it against the DRLVM trunk of today: ---------------------------------------------------------------------- SLOC Directory SLOC-by-Language (Sorted) 281088 vm cpp=223849,java=38033,ansic=18140,asm=1066 1093 build ansic=601,java=458,sh=34 401 src_test java=401 Totals grouped by language (dominant language first): cpp: 223849 (79.22%) java: 38892 (13.76%) ansic: 18741 (6.63%) asm: 1066 (0.38%) sh: 34 (0.01%) Total Physical Source Lines of Code (SLOC) = 282,582 Development Effort Estimate, Person-Years (Person-Months) = 74.94 (899.32) (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05)) Schedule Estimate, Years (Months) = 2.76 (33.15) (Basic COCOMO model, Months = 2.5 * (person-months**0.38)) Estimated Average Number of Developers (Effort/Schedule) = 27.13 Total Estimated Cost to Develop = $ 10,123,795 (average salary = $56,286/year, overhead = 2.40). ----------------------------------------------------------------------- So, according to Wheeler's metric, Harmony would have taken 46 million dollars to build. NOTE: of course I'm perfectly aware that this is an incredibly bogus metric. I'm also aware that there are days that I write several hundreds (if not thousands) of lines of code and days that I write one.... (especially when it's a nasty bug to fix). So, while the dollarized metrics are to be taken with a grain of salt (or tongue-in-cheek if you wish), the SLOC breakdowns by language are actually useful. BTW, if you have better suggestions on what folders of our svn repo I should run this tool against, just say so. -- Stefano.