mpd

А что же будет с Си?!

Nov 09, 2008 04:50

(написано в ответ на Re: C++ умирает... из предыдущего поста)
1. Я решил скачать openjdk-7-ea-src-b39-06_nov_2008 и посмотреть на некоторые разделы (значимые на мой личный взгляд) кодовой базы в разрезе файлов с расширениями java, h, c, hpp, cpp (такой разрез не говорит обо всём, но он говорит о многом). Вот, что у меня получилось.

путь расширения кол-во файлов кол-во строк кол-во слов кол-во байт строк кода * строк комментариев *

jdk/src/share java 7379 2481343 10405236 102285019 896623 741547
h, c 937 356712 1403919 12480723 108962 53440
hpp, cpp 92 25434 145786 1098891 12462 3743

jdk/src/solaris java 229 94520 319113 3963349 51724 13331
h, c 352 182558 651537 6096770 92590 18429
hpp, cpp 0 0 0 0 0 0

jdk/src/windows java 152 38714 149539 1400959 18157 9054
h, c 227 58690 229662 2017576 18329 9723
hpp, cpp 104 69194 216812 2243307 18171 5131

hotspot/src/share java 196 30254 103299 1023361 7127 3179
h, c 8 5065 18474 179188 1172 1002
hpp, cpp 1005 486944 2017300 18368964 209287 85251

hotspot/src/cpu java 0 0 0 0 0 0
h, c 2 79 483 2973 9 48
hpp, cpp 175 98513 397759 3514055 49594 19761

hotspot/src/os/solaris java 0 0 0 0 0 0
h, c 12 6587 25299 204315 3928 1565
hpp, cpp 28 10705 45660 372784 5144 2097

hotspot/src/os/windows java 0 0 0 0 0 0
h, c 1 108 377 2863 13 31
hpp, cpp 27 7864 33451 270258 1737 1170

hotspot/src/os_cpu/solaris_sparc java 0 0 0 0 0 0
h, c 0 0 0 0 0 0
hpp, cpp 13 1884 9065 72642 835 434

hotspot/src/os_cpu/windows_x86 java 0 0 0 0 0 0
h, c 0 0 0 0 0 0
hpp, cpp 16 1821 8307 63948 661 429

Интересно было узнать, что java - это сишная консольная утилита (openjdk-7-ea-src-b39-06_nov_2008/jdk/src/share/bin/java.c), а javac - напротив, явовская (openjdk-7-ea-src-b39-06_nov_2008/langtools/src/share/classes/com/sun/tools/javac/Main.java).

И если в jdk полюсовых файлов почти нет (по сравнению с явовскими и сишными), то в hotspot'е кол-во этих же файлов оправдывает фразу из Википедии:The HotSpot Java Virtual Machine is written in C++.
Думаю, без hotspot'а ява была бы не столько привлекательной сейчас, всё же он делает своё дело.

2. Про моно так скажу: там плюсов совсем нет, а вот без сей - ну, просто никак.
Про мелко-мягких могу судить только по тому, что рассказывает Страуструп (он хоть человек и заинтересованный, но должен знать о таких вещах уж точно, к тому же ресурс публичный, могли бы уже давно зачмырить):Some parts of Visual Studio like the Base Class Libraries that ship with the .NET Framework were written using C# but the C# compiler itself is written in C++.

Насколько я понимаю, Erlang и Haskell - противопоставляются умирающим языкам, как новое "наше всё"?

Посмотрел вскользь на их исходники. Ни один из них не использует плюсов: Erlang завязан на Си, Haskell - на
Си--. Интересно было узнать.

В этой связи возникает вопрос о будущем сей относительно будущего плюсов, явы, Erlang и Haskell.
* Upd: Взял CCCC версии 3.1.4 чтобы посчитать две дополнительные колонки: кол-во строк кода и комментариев. Не спрашивайте меня о гарантиях правильности подсчета этих колонок, обращайтесь к авторам CCCC. И парочку файликов пришлось выкинуть, т.к. CCCC зависал или падал.

Дайджест блога '11

plain c, c++, java

Previous post Next post
Up