История изменений
Исправление eao197, (текущая версия) :
Я уже понял, что ты принципиально отказываешься видеть в словах оппонента что-то, помимо желаемого.
Уже устал повторять: вы упорно не приводите никаких подтверждений своим напыщенным словесам.
Все, что вы можете – это ссылаться на какие-то другие языки. Но даже их вы не можете назвать. Потому, что далее последует очевидный вопрос: а сравниваете ли вы одинаковые по возможностям языки? Вам ведь нужно сравнивать C++ с языками из группы C, Ada, Rust, FreePascal. Вот и попробуйте сравнить по возможностям, чтобы и вариадик-шаблоны были, и шаблоны, параметризуемые скалярами, и специализация шаблонов, и constexpr, и множественное наследование. И гладкая интеграция с C (т.е. с любыми системными API).
и я подчеркиваю, что я согласен с этим утверждением
Если вы согласны, что компактнее записать не получится, то это автоматически опровергает ваши же утверждения про чрезмерную многословность.
и описал, откуда оно произошло
Это вам так кажется.
Также я упоминал другую проблему в процитированном куске кода - излишние определения типов.
Там нет этой проблемы. И да, вы опять не сможете предложить, как написать это компактнее. Пусть даже на каком-то гипотетическом языке. Ибо это вам не щеки надувать и нести бредни о том, какой херней страдает комитет по стандартизации C++.
Про скорость C++ компиляторов (в частности GCC, который быстрым вообще-то никогда и не был). Вот я для эксперимента натравил g++-8 на своем основном рабочем ноуте на один из файлов, который компилируется порядка 15 секунд. Файл уже отпрепроцессирован, чтобы учитывать только время парсинга:
$ time g++-8 -c -o target/_objs/gcc_8_1_0__x86_64_linux_gnu/release/test_header_prj_rb/test_header/main.o \
-O2 -DNDEBUG -DASIO_HAS_STD_CHRONO -DASIO_STANDALONE -DASIO_DISABLE_STD_STRING_VIEW \
-DHTTP_PARSER_STRICT=0 -DFMT_HEADER_ONLY -fPIC \
-std=c++14 test_header_main.i -ftime-report
Time variable usr sys wall GGC
phase setup : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 1381 kB ( 0%)
phase parsing : 3.34 ( 19%) 1.35 ( 50%) 4.69 ( 23%) 257150 kB ( 38%)
phase lang. deferred : 2.07 ( 11%) 0.47 ( 17%) 2.54 ( 12%) 139104 kB ( 21%)
phase opt and generate : 12.61 ( 70%) 0.89 ( 33%) 13.51 ( 65%) 280832 kB ( 41%)
|name lookup : 0.82 ( 5%) 0.23 ( 8%) 1.12 ( 5%) 19720 kB ( 3%)
|overload resolution : 1.72 ( 10%) 0.40 ( 15%) 1.97 ( 9%) 104011 kB ( 15%)
...
TOTAL : 18.02 2.72 20.76 678479 kB
real 0m21.380s
user 0m18.165s
sys 0m2.770s
Там подключаются библиотеки, которые насквозь пронизаны шаблонами + разная околосистемная муть (библиотеки Asio, fmtlib, Catch2). Всего более 180KLOC в препроцессированном файле.
Время парсинга чуть больше 3 секунд на древнем ноутбучном i7-3667u. На коде, в котором шаблонов чуть меньше, чем дохера.
Вы конечно, можете вспомнить скорость какого-нибудь TurboPascal 3.0, только сравнивать следует языки одинакового калибра.
Исходная версия eao197, :
Я уже понял, что ты принципиально отказываешься видеть в словах оппонента что-то, помимо желаемого.
Уже устал повторять: вы упорно не приводите никаких подтверждений своим напыщенным словесам.
Все, что вы можете – это ссылаться на какие-то другие языки. Но даже их вы не можете назвать. Потому, что далее последует очевидный вопрос: а сравниваете ли вы одинаковые по возможностям языки? Вам ведь нужно сравнивать C++ с языками из группы C, Ada, Rust, FreePascal. Вот и попробуйте сравнить по возможностям, чтобы и вариадик-шаблоны были, и шаблоны, параметризуемые скалярами, и специализация шаблонов, и constexpr, и множественное наследование. И гладкая интеграция с C (т.е. с любыми системными API).
и я подчеркиваю, что я согласен с этим утверждением
Если вы согласны, что компактнее записать не получится, то это автоматически опровергает ваши же утверждения про чрезмерную многословность.
и описал, откуда оно произошло
Это вам так кажется.
Также я упоминал другую проблему в процитированном куске кода - излишние определения типов.
Там нет этой проблемы. И да, вы опять не сможете предложить, как написать это компактнее. Пусть даже на каком-то гипотетическом языке. Ибо это вам не щеки надувать и нести бредни о том, какой херней страдает комитет по стандартизации C++.
Про скорость C++ компиляторов (в частности GCC, который быстрым вообще-то никогда и не был). Вот я для эксперимента натравил g++-8 на своем основном рабочем ноуте на один из файлов, который компилируется порядка 15 секунд. Файл уже отпрепроцессирован, чтобы учитывать только время парсинга:
$ time g++-8 -c -o target/_objs/gcc_8_1_0__x86_64_linux_gnu/release/test_header_prj_rb/test_header/main.o \
-O2 -DNDEBUG -DASIO_HAS_STD_CHRONO -DASIO_STANDALONE -DASIO_DISABLE_STD_STRING_VIEW \
-DHTTP_PARSER_STRICT=0 -DFMT_HEADER_ONLY -fPIC \
-std=c++14 test_header_main.i -ftime-report
Time variable usr sys wall GGC
phase setup : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 1381 kB ( 0%)
phase parsing : 3.34 ( 19%) 1.35 ( 50%) 4.69 ( 23%) 257150 kB ( 38%)
phase lang. deferred : 2.07 ( 11%) 0.47 ( 17%) 2.54 ( 12%) 139104 kB ( 21%)
phase opt and generate : 12.61 ( 70%) 0.89 ( 33%) 13.51 ( 65%) 280832 kB ( 41%)
|name lookup : 0.82 ( 5%) 0.23 ( 8%) 1.12 ( 5%) 19720 kB ( 3%)
|overload resolution : 1.72 ( 10%) 0.40 ( 15%) 1.97 ( 9%) 104011 kB ( 15%)
...
TOTAL : 18.02 2.72 20.76 678479 kB
real 0m21.380s
user 0m18.165s
sys 0m2.770s
Там подключаются библиотеки, которые насквозь пронизаны шаблонами , + разная околосистемная муть (библиотеки Asio, fmtlib, Catch2). Всего более 180KLOC в препроцессированном файле.
Время парсинга чуть больше 3 секунд на древнем ноутбучном i7-3667u. На коде, в котором шаблонов чуть меньше, чем дохера.
Вы конечно, можете вспомнить скорость какого-нибудь TurboPascal 3.0, только сравнивать следует языки одинакового калибра.