How Big is Mac GUI City?
There are a few different answers to this question, and they really depend on what metric you want. For starters, well, we've got 50 million rows of data across 16 databases, several thousand unique visitors every month, and over 2 million hits annually.
But let's take a look at what goes on behind all of that. Let's take a look at the code that runs Mac GUI City.
I have been curious for awhile to count exactly how many lines of code make up the Mac GUI system, and until now, I'd had rough guesses. Well, the other day, I stumbled across a program called SLOCCount. It's a counter for Source Lines of Code, and it skips over lines that are blank or that contain only comments.
Intrigued, I downloaded the source and compiled it. After fixing a few paths, I pointed it to the Mac GUI City source directory and let it go. The results surprised me:
Total Physical Source Lines of Code (SLOC) = 98,151
Development Effort Estimate, Person-Years (Person-Months) = 24.69 (296.28)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 1.81 (21.74)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 13.63
Total Estimated Cost to Develop = $ 3,335,271
(average salary = $56,286/year, overhead = 2.40).
Near on 100,000 lines of code valued at an estimated $3 million. This figure does not include the CSS, JS, or HTML template files.
However, I didn't write every line of code in the Mac GUI system. Some parts, such as the Usenet archive, are GPL code. Now, while I have modified nearly every file that I didn't write, I wanted to get a better feel for the number of lines that I did write. I took out all of the source files that I couldn't honestly say that I'd written, or at least substantially modified. I tried to err on the side of caution with respect to files not originally authored by me, yet which I had modified.
Again, the results were impressive. I'd long had a rough estimate that I wrote over 2/3 of the code behind Mac GUI City, and SLOCCount helped support that notion:
Total Physical Source Lines of Code (SLOC) = 61,561
Development Effort Estimate, Person-Years (Person-Months) = 15.13 (181.54)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 1.50 (18.04)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 10.06
Total Estimated Cost to Develop = $ 2,043,678
(average salary = $56,286/year, overhead = 2.40).
Now, if I ever do sell the code for the Mac GUI system, I'd probably accept less than $2 million for it, but I wouldn't just
give it away, either.
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL.
SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to
redistribute it under certain conditions as specified by the GNU GPL license;
see the documentation for details.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."