1. C++ / Говнокод #28124

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    auto&& rv = elements | std::ranges::views::values | std::ranges::views::transform([](auto&& a) -> auto 
    		{
    			StatisticsElementMultiple n = std::move(a);
    			n.nanosec /= n.count;
    			return n;
    		});
    		std::vector<StatisticsElementMultiple> el(std::begin(rv), std::end(rv));
    		std::ranges::sort(el, [](auto&& a, auto&& b) -> bool {return a.nanosec > b.nanosec; });
    		for(auto&& [nanosec, name, prefixes, count] : el)
    		{
    			printf("%-10d %04X %12s %6d\n", count, prefixes, name.c_str(), nanosec);
    		}

    Запостил: kcalbCube, 18 Апреля 2022

    Комментарии (42) RSS

    • ne laba
      Ответить
    • > |

      Хуясе, это что, пайп?
      Ответить
      • Добро пожаловать в "C++"
        Ответить
        • Ебать говно. А елду ещё не завезли?
          Ответить
          • co_yield?

            https://en.cppreference.com/w/cpp/language/coroutines
            Ответить
            • Ебать говно. Почему не coco_yield, и не ko_yield?
              Ответить
              • Ебать говно. Почему не __yield или _Yield
                Ответить
                • Кстати да. Чтобы не ломать обратную совместимость. Вдруг у меня переменные, блядь, co_yield названы, теперь у меня код сломается???
                  Ответить
                  • надо было как в сях
                    #define co_yield __co_yield
                    Ответить
                    • кстати да. и обратной совместимости бы не повредило - просто не инклудь какой нибудь cocoroutine
                      Ответить
          • views охуенная тема.

            Крестоговнокомпиляторы даже умеют иногда превращать эти рейджи в нормальные циклы, инлайнить transform, разантролливать их и давать оптимальный асм-выхлоп.

            https://govnokod.ru/27646#comment669079
            Ответить
            • То есть пока JS блядь пишет статьи на тему "почему for в 94 раза быстрее функциональщины" крестоблядь пишет код, и течет?

              Еще раз убеждаюсь, что единственный цисгендерный ЯП это С++.

              Писать на скриптоговне допустимо только тем, кто слишком туп для С++ (против природы не попрёшь). Других оправданий нет
              Ответить
              • > Писать на скриптоговне допустимо только тем, кто слишком туп для С++

                Скриптоговно умеет в eval() т.е. возможность в рантайме порождать некий код и выполнение его без лишней питушни. Крестоговно в него не умеет by design, разве что можно насрать кодом крестов в файл, вызывать компилятор для получения dll или so и потом эту говнолибу подгружать и вызывать. Или встраивать какое-то говно типа LLVM и им как-то компилировать из каких-то там блядь байткодов, срать потом инструкциями процессора в исполняемую секцию процесса и вызывать ту хуйню, т.е. это куча геморроя. А еще в крестоговне нет нормальной рефлексии, только какое-то говно ссаное.
                Ответить
                • Ничего хорошего с евалом написано не было. Только нечитаемый и небезопасный пиздец.

                  Ну и конечно же ма_те_ма_ти_ка показывает легко, что всё что можно сделать евалом, можно было заранее написать как нормальный код. (Или ты там собрался в евал вставлять рандомы и фазы луны заодно с инъекциями?)
                  Ответить
                  • > Ничего хорошего с евалом написано не было. Только нечитаемый и небезопасный пиздец.

                    Какая-нибудь DSL питушня для внутреннего использования, где во многих местах можно зафигачить выражение непосредственно на языке, на котором это всё построено.
                    Ответить
                    • И понимать такую DSL будет только ее автор. Ну уж нет: лучше прикрутить Lua к сишке
                      Ответить
                    • Ну может быть, без хорошей документации это всё равно будет пиздец, а хорошую документацию ради внутреннего использования могут позволить себе мягко говоря не все компании.

                      Если нужно передать выражение непосредственно на языке, можно передать колабл, анонимную функцию или лямбзду. За одно не придётся склеивать строки.
                      Ответить
              • > Писать на скриптоговне допустимо только тем, кто слишком туп для С++

                С++ толкает вперёд прогресс. Если в крестокомпилятор (шланг) завозят подобные оптимизации, то анскильные скриптомакаки и прочая дrustомразота как обычно их ворует, выпячивает грудь и кичится смотрите #даяжекаксишка.

                А оптимизатор для себя написать они оказались не в состоянии.
                Потому в явах, ololoLINQ и прочих nodejs лямбды до сих пор дают х5 замедление по сравнению с циклом.
                Хотя уже прошло больше десяти лет, как эта фигню туда завезли.

                https://leanylabs.com/c3c272e1aeeed21f5a97eda0c3fe8c1a/forEach.svg
                Ответить
                • Вот там тебе снизу пояснили, что скриптушня лучше, потому что не надо компилировать

                  Это от создателей "мы оптимизируем код на пхп заменяя двойные кавычки на одинарные"
                  Ответить
                  • > скриптушня лучше, потому что не надо компилировать

                    Ну да. Долго конпелируется, долго оптимизируется.
                    Лучше же потом в рантайме опечатки и ошибки вылавливать.
                    Ответить
                    • просто поставь собачку перед вызовом функции, и забудь про ошибки в своем <b>Undefined variable $language at /home/g/govnokod.xyz/file.php at line 9123</b>, проблем-то..
                      Ответить
            • Я там уже написал, что эти views это банальный сахарок т.е. нахуй не нужная херня, циклов хватит всем
              Ответить
              • Да, в большей части случаев код писать так не стоит.

                Однако иногда есть ситуации, когда нужно динамически поменять алгоритм фильтрации и/или не дублировать код.
                И вот тогда эти пайпы в миллион раз лучше и красивше пирдолинга со звёздочками, укокозателями на функции функций и прочей сишной дрочью.

                И ассемблерный выхлоп оптимальный в отличие от тормознутых функциональщиков.
                Ответить
              • >что эти views это банальный сахарок

                всё что угодно, это сахарок над массивом и условым переходом
                Ответить
            • Только читать эту парашу то ещё удовольствие
              Ответить
            • >Крестоговнокомпиляторы даже умеют иногда превращать эти рейджи в нормальные циклы

              а теперь расскажи во что ренджи превращает неоптимизирующий компилятор и насколько они получаются тормознутее цикла

              а потом расскажи какая разница в продолжительности компиляции между оптимизирующим и неоптимизирующим билдами
              Ответить
              • То есть по твоему оптимиизирующий компилятор это плохо?
                Ответить
                • оптимизирующий компилятор это неплохо

                  плохо это говноренжи которые без оптимизирующего компилятора работают в 100 раз медленнее цикла а с оптимизирующим компилятором компилируются в 100 раз медленнее цикла

                  https://aras-p.info/blog/2018/12/28/Modern-C-Lamentations/
                  Ответить
                  • Неоптимизированный код никто никогда не выпускает в продакшен, так что про него нету смысла говорить.

                    Скорость компиляции являет собой даже меньшюю проблему, чем в JS, потому что в С++ всё таки есть инкрементальная компиляция (разумеется, при наличии нормального разбиения кода), а например в webpack ее нет (и компилируется крупное веб приложеньице вебпаком тоже дай боже)
                    Ответить
                    • >Неоптимизированный код никто никогда не выпускает в продакшен, так что про него нету смысла говорить.

                      это экзотическое непонимание со стороны человека который не писал на языках с действительно длинными билд таймами, неоптимизированный билд очень важен (и разница в пирформансе, и скорость блида) для удобства и продуктивности разработки

                      >Скорость компиляции являет собой даже меньшюю проблему, чем в JS, потому что в С++ всё таки есть инкрементальная компиляция (разумеется, при наличии нормального разбиения кода), а например в webpack ее нет (и компилируется крупное веб приложеньице вебпаком тоже дай боже)

                      это тоже экзотическое непонимание, скорость компиляции это причина по которой с крестов уходят на go или zig а не на раст и по которой с вебпака хуодят на vite или esbuild
                      Ответить
                      • >для удобства и продуктивности разработки
                        То есть ты признаешь, что неоптимизированный билд используют только локально, во время разработки?

                        Тогда какая разница сколько там вью занимает?

                        >, скорость компиляции это причина по которой с крестов уходят на go

                        Это экзотическое непонимание от человека, который не знает, зачем нужны С++.

                        Уход с С++ на Go это примерно как уход с Си на PHP.
                        Подскажу: С++ используют ради:
                        * перформанса
                        * уже существующего кода

                        оба требования одинаково не выполняют Go, Bash, и прочие JavaScript
                        Ответить
                        • спасибо, ваша точка зрения очень интересна
                          Ответить
                          • Все больше програмистов предпочитает джаваскрипт, потому что он быстрее неоптимизированной С++
                            Ответить
                            • потеряйся
                              Ответить
                              • Кстати, джаваскрипт компилируется JITом, и тормозит, хотя и не сильно.

                                Скорость компиляции JITом -- одна из причин массового перехода программистов на .bat файлы: в них нет никакого JIT, и кстати проблемы "пайпы тормозят по сравнению с фором" в них тоже нету.
                                Ответить
                                • пидарасы думают, что я шучу, наверное?


                                  [quote]
                                  Our FREE Advanced Library (ntlib.cmd) weighs in at 2782 lines of executable
                                  source script, compressed to 467 lines of runtime.
                                  [/quote]

                                  К сайту в данным момент платный доступ (библиотека полезный функцуий для .cmd файлов продается), так что у вас он не откроется (если вы не скините мне денег на биток) но можно посмотреть предыдущю версию. БЕСПЛАТНО


                                  https://web.archive.org/web/20071026063304/http://ntcmdlib.com/NTCmdLib.asp
                                  Ответить
                      • > причина по которой с крестов уходят на go

                        Это анскилл. C таким же успехом раньше уходили с крестов на яву.

                        > уходят на zig
                        И где эти отважные герои?

                        gost очень чётко разобрал «zig»
                        https://govnokod.ru/27159#comment601997
                        Ответить
                        • zig хайль
                          zig хайль
                          мы построим быстрокомпилирующийся рай.


                          Вообще история про уход на пхп с с++ по причине времени компиляции это такой лулз примерно из 1991-го года, когда реально люди думали, что скриптоговно хорошо, бо не нужно компилировать
                          Ответить
                • Compile once, use everytime!
                  Ответить
    • дааа, кресты по сложности и нелогичности скоро как питон станут
      Ответить
      • питон по сложности ничего не догонит, такую хуйню повторит надо ещё умудриться.
        Ответить
      • Ты ни кресты ни питон не знаешь?
        Ответить

    Добавить комментарий