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

    +2302

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    http://govnokod.ru/20924
    
    Запрашиваемая страница не найдена!
    
    Возможно, её и не было никогда

    http://dump.bitcheese.net/files/pimarut/%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4_%2320924_%E2%80%94_C___%E2%80%94_%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4.%D1%80%D1%83.html
    но бекап я сделал, так что хуй вам. Я требую продолжения банкета.

    Запостил: j123123, 24 Августа 2016

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

    • roman-kashitsyn

      >> иллюстрация ограниченности плюсов
      >> BOOST_PP_REPEAT
      >
      >плюсы != препроцессор

      Вот в этом то и убогость плюсов, что в них для этого нет НИЧЕГО лучше, чем накопипащенность через препроцессор


      >> ограниченности
      >
      >Как будто ограниченность -- это всегда плохо. HTTP ГОВНО ПОТОМУ ЧТО В НЁМ НЕТ ГОМОИКОН

      В случае с плюсами это точно плохо. А какие могут быть гомоиконы в HTTP? Может еще и в FTP их добавить?
      Ответить
      • > для этого

        Для чего "для этого"? Для цикла во время препроцессинга нужны средства препроцессора? Вот это поворот!
        Как вообще BOOST_PP относится к плюсам? Это набор примитивов для упоровшихся по препроцессору, их можно из сишки юзать.
        Ответить
        • > Для чего "для этого"?
          Для того, чтобы повторить нечто n-ное число раз

          >Для цикла во время препроцессинга нужны средства препроцессора?
          Почему ж препроцессор столь убог, что в нем нельзя сделать это без копипаста?

          >Как вообще BOOST_PP относится к плюсам?
          Так, что он использует препроцессор, препроцессор есть в плюсах.

          >Это набор примитивов для упоровшихся по препроцессору, их можно из сишки юзать.
          Конечно можно, и что?
          Ответить
          • > Для того, чтобы повторить нечто n-ное число раз

            Можно же просто цикл использовать

            > Конечно можно, и что?

            Критиковать язык, который стремится избавиться от препроцессора всеми силами, за то, что в нём недостаточно развитый препроцессор -- немного странно, тебе не кажется?

            Ну и потребность использовать BOOST_PP у меня за 4 года возникла... дайте подумать... 0 раз.
            Ответить
            • > Можно же просто цикл использовать

              Анскильный компилятор не осилит заанроллить цикл как следует

              > Критиковать язык, который стремится избавиться от препроцессора всеми силами, за то, что в нём недостаточно развитый препроцессор -- немного странно, тебе не кажется?

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

                Совсем выкинуть не получится, а вот избавиться от его необходимости в большей части нового кода -- вполне.

                Препроцессор нужен в основном для управления конфигурацией и для инклюдов. Первое вполне решается нормальной билд-системой и подходящим структурированием кода, второе -- модулями на уровне языка.
                Ответить
              • ты сейчас только что сам сказал что с++ "убог" из-за "обратной недосовместимости" с си.
                Ответить
                • А так и есть. Основная причина убогости плюсов как раз в этом и заключается. Пытаться сделать высокоуровневый язык на основе кроссплатформенного ассемблера, сохраняя при этом обратную совместимость с ним - не очень хорошая идея
                  Ответить
        • Почему до сих пор ничего лучше не придумали, чем накопипастить говна через препроцессор?
          Ответить
          • > до сих пор ничего лучше не придумали

            Я вообще не понимаю твоих доводов. Что значит лучше не придумали? Для чего лучше не придумали?
            Мне для моих задач очень редко препроцессор нужен, почти всегда можно что-нибудь придумать вместо него.

            Для задач кодогенерации препроцессор вообще плохо подходит, тут лучше что-нибудь более специфичное и удобное использовать. Да и вообще обычно полезно сразу на нескольких языках код генерить, protoc тому пример.
            Ответить
            • > Я вообще не понимаю твоих доводов. Что значит лучше не придумали? Для чего лучше не придумали?

              Ничего лучше не придумали, кроме как плодить накопипащенное макроговно из BOOST_PP_REPEAT чтобы что-то много раз повторить, потому что в убогом препроцессоре нет ни циклов, ни рекурсий.

              > Мне для моих задач очень редко препроцессор нужен, почти всегда можно что-нибудь придумать вместо него.

              Конечно можно - кодогенерация. Но тот факт, что для эффективного решения определенного круга задач надо приклеивать скотчем какие-то там костыли сбоку, он говорит как раз таки об убогости и ограниченности инструмента.

              Вот например есть такая штука http://nedbatchelder.com/code/cog/ где можно встраивать куски питона в свой код, и оно туда вставляет. Пример использования:

              http://we.easyelectronics.ru/MrYuran/avtogeneraciya-koda-ili-uletnye-shablony-v-si.html



              Ну и вот еще про DSL и кодогенерацию на окамле http://www.fftw.org/fftw-paper-ieee.pdf - интересно, почему они не наваяли свой DSL на метапрограммировании через плюсошаблоны? Не потому ли, что метапрограммирование через плюсошаблоны - говно?

              В плюсах нет никаких средств чтобы работать с AST на этапе компиляции, так что никакого нормального метапрограммирования нет и не предвидится. А чтобы можно было работать с AST, надо выкинуть нахуй сишно-плюсовый синтаксис и взять лисповый скобкосинтаксис или нечто подобное, и чтоб с гомоиконами. А иначе это говно
              Ответить
              • А нахуй нужно работать с AST на этапе компиляции? Ваши программы настолько сложны, что в человеческий разум не умещаются?
                Ответить
                • почитай про fftw по ссылке
                  Ответить
                • Ну вообще говоря работать с AST при кодогенерации веселее, чем с текстом. Структурированные данные, которые тайпчекаются и вот это всё. Плюс убирается аж два лишних шага, чреватых ошибками.
                  Ответить
              • Гомоиконы нинужны, QQ хватит всем. Да и вообще, макроёбство/кодогенерация происходят либо от убогости языка, либо когда нужен пирфоманс. В elisp, например, мне приходится макроёбить там, где в нормальных языках были бы ф-ции высшего порядка.
                Ответить
              • ты в доказательство убогости с++ приводишь сишную либу fftw3? Грац, чо
                Ответить
                • Какой багор )))
                  Ответить
                • В доказательство я привожу тот факт, что вместо использования говноплюсов с шаблюнами, был использован язык Си с кодогенерацией
                  Ответить
                  • Заходим на сайт FFTW3: http://www.fftw.org/
                    Читаем первую же строчку под логотипом:
                    "FFTW is a C subroutine library"
                    Сишная, мать его, либа. Они не использовали шаблоны потому и только потому, что не могли
                    Ответить
                    • А из-за чего они НЕ МОГЛИ? Может быть они просто НЕ ХОТЕЛИ?
                      Почему они свою либу писали на Си с кодогенерацией, а не на плюсах с метапрограммированием на шаблонах?
                      Ответить
                      • из-за того, что необходима возможность использовать либу из чистого си. Иначе бы они теряли 60+% пользователей
                        Ответить
                        • Плосовые либы тоже можно использовать из чистого Си, есть способы. Причина наверняка в чем-то другом
                          Ответить
                          • да, но шаблонные функции ты из чистого си не вызовешь
                            Ответить
              • > ... лисповый скобкосинтаксис или нечто подобное, и чтоб с гомоиконами. А иначе это говно

                а, понятно. Я думал ты хоть немного вменяем. Ошибался
                Ответить
                • Вижу что по делу тебе сказать нечего, только переходы на личности остались
                  Ответить
              • > нет ни циклов, ни рекурсий

                Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.

                Но вообще наезды по поводу препроцессора довольно легко решаемы. Не нравится cpp -- возьми PHP!
                Ответить
                • пхп он тоже не любит
                  Ответить
                  • Ну тогда m4 или perl.
                    Да! Генерить сишный код можно и из лишпа. С помощью гомоикон!
                    Ответить
                    • почему или?

                      я люблю генерировать код на perl с помощью m4
                      Ответить
                • http://govnokod.ru/20958
                  Ответить
          • Потому что нахуй никому не сдалось делать тонну вещей в компайл-тайме?
            Ответить
            • кому-то не сдалось, а кому-то сдалось
              Ответить
              • > кому-то не сдалось, а кому-то сдалось

                Всегда будут люди, которые хотят странного, что теперь? Тот факт, что для достижения странного нужно прилагать усилия -- это же скорее плюс. Это как забор с колючей проволокой, огораживающий опасное место: если припечёт, то перелезешь, зато неплохо ограждает от зевак и норкоманов.

                Гёдель доказал, что какое бы конечное количество аксиом ты не взял, всегда будут утверждения, которые ты не сможешь ни доказать, ни опровергнуть.

                Аналогично, сколько бы фич ты в язык не насовал, всегда будет мало. Если только не добавить фичу "добавить фичу", но тогда каждый пользователь языка вполне может начать страдать хернёй и сочинять на ровном месте долбанутую херню вроде макроса loop в CL.
                Ответить
    • Это Страйко взялся за лопату или глубоко слитые треды сами дохнут?
      Ответить
    • показать все, что скрытоИнтересно, за что убрали пост.
      Ответить
    • показать все, что скрытоКакой багор )))
      Ответить
    • блять тушканчик съебался
      Ответить

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