А что же будет с Си?!
Nov. 9th, 2008 04:50 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
(написано в ответ на Re: C++ умирает... из предыдущего поста)
1. Я решил скачать openjdk-7-ea-src-b39-06_nov_2008 и посмотреть на некоторые разделы (значимые на мой личный взгляд) кодовой базы в разрезе файлов с расширениями java, h, c, hpp, cpp (такой разрез не говорит обо всём, но он говорит о многом). Вот, что у меня получилось.
Интересно было узнать, что 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'е кол-во этих же файлов оправдывает фразу из Википедии:
2. Про моно так скажу: там плюсов совсем нет, а вот без сей - ну, просто никак.
Про мелко-мягких могу судить только по тому, что рассказывает Страуструп (он хоть человек и заинтересованный, но должен знать о таких вещах уж точно, к тому же ресурс публичный, могли бы уже давно зачмырить):
Насколько я понимаю, Erlang и Haskell - противопоставляются умирающим языкам, как новое "наше всё"?
Посмотрел вскользь на их исходники. Ни один из них не использует плюсов: Erlang завязан на Си, Haskell - на Си--. Интересно было узнать.
В этой связи возникает вопрос о будущем сей относительно будущего плюсов, явы, Erlang и Haskell.
* Upd: Взял CCCC версии 3.1.4 чтобы посчитать две дополнительные колонки: кол-во строк кода и комментариев. Не спрашивайте меня о гарантиях правильности подсчета этих колонок, обращайтесь к авторам CCCC. И парочку файликов пришлось выкинуть, т.к. CCCC зависал или падал.
Дайджест блога '11
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
no subject
Date: 2008-11-12 03:53 pm (UTC)