So what's in this stuff, anyway? Let's dissect it using
sloccount and
cloc (count lines of code) and find out!
Grab the code for Roslyn:
$ GIT_CURL_VERBOSE=1 git clone -v https://git01.codeplex.com/roslyn
Cloning into 'roslyn'...
error: RPC failed; result=56, HTTP code = 200
GnuTLS recv error (-9): A TLS packet with unexpected length was received.
Whatever - no time to rebuild git against OpenSSL. Let's use a workaround:
$ mkdir roslyn; cd roslyn; git init
$ git remote add origin https://git01.codeplex.com/roslyn
$ git checkout -B master origin/master
Great. Now let's grab the .NET Core dev stack, libraries and build tools (github clones fine):
$ git clone https://github.com/dotnet/corefx.git
$ git clone https://github.com/dotnet/buildtools.git
Analyze the .NET Core 5 (corefx) and buildtools
$ cloc --xsl=1 --xml corefx/ buildtools/
| Language |
Files |
Blank |
Comment |
Code |
| C# |
565 |
17312 |
24750 |
104192 |
| XML |
2 |
0 |
7 |
4456 |
| MSBuild scripts |
15 |
54 |
90 |
1820 |
| SKILL |
2 |
11 |
0 |
52 |
| Visual Basic |
1 |
17 |
1 |
43 |
| ASP.Net |
6 |
0 |
0 |
32 |
| C/C++ Header |
1 |
5 |
1 |
7 |
| DOS Batch |
1 |
0 |
0 |
5 |
| Total |
593 |
17399 |
24849 |
110607 |
Analyze Roslyn
$ cloc --xsl=1 --xml roslyn/Src
| Language |
Files |
Blank |
Comment |
Code |
| C# |
4138 |
186147 |
131956 |
1173792 |
| Visual Basic |
1767 |
178277 |
140738 |
981301 |
| XML |
4 |
1870 |
1920 |
12451 |
| MSBuild scripts |
74 |
0 |
216 |
10066 |
| C/C++ Header |
15 |
1607 |
428 |
7361 |
| SKILL |
33 |
888 |
0 |
4954 |
| C++ |
12 |
322 |
186 |
1698 |
| XSD |
3 |
74 |
217 |
401 |
| ASP.Net |
44 |
4 |
0 |
351 |
| XAML |
3 |
3 |
1 |
128 |
| DOS Batch |
6 |
22 |
11 |
79 |
| PowerShell |
3 |
7 |
0 |
13 |
| Total |
6102 |
369221 |
275673 |
2192595 |
$ sloccount roslyn/Src
Total Physical Source Lines of Code (SLOC) = 1,205,824
Development Effort Estimate, Person-Year (Person-Month) = 343.86 (4,126.29)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 4.93 (59.14)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 69.78
Total Estimated Cost to Develop = $ 46,450,431
(average salary = $56,286/year, overhead = 2.40).