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

    +148

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    #define NAT unsigned int
    class Matrix {...};
    
    bool ortholin ( Matrix & a, const double * b, double * x )
    {
        const nat n = a.nRow;
        const nat m = a.nCol;
        // далее нигде не используется класс матрицы и идет Сишный код
    }
    
    bool ortholin ( nat n, nat m, const double * const * a, const double * b, double * x )
    {
        return ortholin ( Matrix ( n, m, a ), b, x );
    }

    Запостил: Kornew, 16 Мая 2010

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

    • так же в функции с классом есть строчка:

      double * const * u = a; //Matrix -> double **
      Ответить
    • Странный ООП подход. Метод нужно было использовать в классе.
      Ответить
      • здесь ВООБЩЕ не нужен ооп
        нужна нормальная система модулей, но Трупстрауса Страуструп даже не задумывался об этом
        Ответить
        • есть неймспейсы...
          Ответить
          • прошу пардона, но иногда лучше жевать
            Ответить
            • но они есть и они реально удобны...
              Ответить
              • откуда только такие фанатики вылазят, его уже сотню раз тявкалкой в статью Грэма совали, а толку ноль - до сих пор смысл не докатился до мыслительных центров (от с++ атрофировались?).
                чтобы такое заявлять нужно хоть немного иметь сведений о предмете, но для плюсовых зомби это не преграда, они будут мозги людям засирать своими бессистемными выкриками, выставляя уродства с++ эталонами.
                Ответить
                • отписался ниже...
                  ссылку на Грема плз...
                  Ответить
                  • http://paulgraham.com/avg.html (оригинал)
                    http://www.nestor.minsk.by/sr/2003/07/30710.html (перевод)
                    Ответить
                    • цитаты
                      > Есть много исключений из этого правила. Если вы пишете программу, которая должна тесно взаимодействовать с программой, написанной на определенном языке, возможно, окажется разумным писать новую программу на том же языке.

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

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

                      это как раз то что я пытаюсь донести вам на протяжении споров в этих темах...
                      Ответить
                      • а кто тут спорил с этим?
                        это вообще прописные истины, но:
                        1) да, существует легаси (мать его), но надо же как-то ситуацию исправлять
                        2) кроме с++ есть фортран, си, ассемблер (и тд)
                        3) для этого и был придуман перл =)
                        Ответить
                        • 1) на это нужно время
                          2) С++ это удобный С с плюшками... про фортран ниче не скажу ибо незнаю... ассемблер можно использовать из С++...
                          3) питон
                          Ответить
                          • 1) не спорю
                            2) ядро Linux очевидно не зря не стали на с++ писать
                            3) руби (языковой дизайн хорош, матц отлично питон отшлифовал)
                            Ответить
                            • 1) согласен
                              2) а L4ka на С++ написана - самое стабильное ядро с математически доказанной безглючностью
                              3) ага, недавно сам на него глянул, вроде как симпатишный...
                              Ответить
                    • вот еще отличная цитата

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

                      программы на динамических языках ограничены в управлении памятью... объекты в них можно только создавать, на С++ их можно создавать в любом месте...
                      Ответить
                      • а что насчет фейла с алгебраическими типами данных?

                        >объекты в них можно только создавать
                        вообще в общем случае даже это недоступно, возьмем тривиальный пример с qsort
                        qsort [] = []
                        qsort (x:xs) = qsort [y | y <- xs, y < x ] ++ [x] ++ qsort [y | y <- xs, y >= x]

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

                            раньше говорили "я фанат жосткого и правильного процедурного программирования - "одна задача - одна процедура""
                            Ответить
                            • ну скоро будут говорить "я фанат ФП" - "одна задача - одна пара скобок"
                              Ответить
                              • неверное предположение:
                                в ФП в почете подход divide et impera
                                Ответить
                              • я фанат ФП: одна задача - один плюсосрач
                                Ответить
                            • Я фанат программирования: одна задача - одна программа.
                              True Unix way.
                              Ответить
                        • Кстати, пример хуёвый. И памяти жрёт дохера, и для изначально упорядоченного массива O(n^2) даёт.
                          Ответить
                          • Этот слой содержит следы тарасовской культуры
                            Ответить
                        • Этот пример реально заебли везде совать. Функционализм Головного Моска даёт опасные метастазы, люди пишут скобочки и радуются этой хуете, что "не надо думать и компилятор сам разберётся". Как же, нам неинтересно, что там внутри, нам абстракции высокого класса подавай и метапрограммирование.
                          Ответить
                          • не волнуйся так))
                            настанет час когда твой маленький и скукоженный мозжечок осилит что же там такое написано, главное верить и не сдаваться, и еще желательно перестать упарываться говном
                            Ответить
                            • "Кто упоротый, ты упоротый йопта" (q)
                              Ты илита, да. Не пробовал вести себя скромнее, добрее, что-ли? Или лугоффски-моде-он и все, кто не понимают скобочек - нелюди, ублюдки и тупые мрази?
                              А ещё мне и не надо понимать того, что это, как оно работает и зачем оно работает. Я занимаюсь совершенно другими вопросами, мне неинтересны декларативные поделки. Я прекрасно знаю, как работают алгоритмы, если чего-то не знаю, так перечитаю Кнута.
                              Как правильно пишут здравомыслящие люди, среды нужны для интеграции индусов. Как правильно отмечают не менее здравомыслящие люди, подобный холивар не стоит и выеденного яйца. Я не спорю, в языке могут быть тактические просчёты. Тем не менее, не стоит гордиться только тем, что ты знаешь эти скобочки. И что ты безумно горд, потому что у тебя ФГМ. И что ты весь из себя такая илита. Ваши полуидеи имеют обычно чисто академический интерес.
                              Dixi.
                              Ответить
                              • dixi ты такой фееричный ебонат, что аж умиляет.
                                ты щас всем показал насколько ты слаб умишком, раз не понял, что холивар тут был just for lulz. и напирание на тему фгм какбэ недвусмысленно намекает на твою неполноценность, как ты верно выразился подобные тебе - нелюди, ублюдки и тупые мрази, иди, учись отличать жизнь от срача в каментах, а то из палаты еще дооолго не выпустят
                                Ответить
                              • > Я занимаюсь совершенно другими вопросами, мне неинтересны декларативные поделки

                                правильно, ты обезьянка и занимаешься ручным перекладыванием кирпичиков. на такую проблемы в цивилизованном мире принято набирать не привыкших думать азиатов типа индусов, китайцев или турков, а ты, видимо, сам решил выбиться в люди?
                                Ответить
                                • ну как бе китайцев трогать не надо... уверен что через 10 лет все СНГ будет на них аутсорсить...
                                  ну и небольшой факт из жизни: одаренных детей в индии больше чем детей в США...
                                  Ответить
                          • этот пример - типа хелловорлда, чтобы не обременённые моском фонаты ООП могли хоть что-нибудь понять. если им показать настоящий рабочий код на функциональном языке хотя бы в десять строк - они начнуть есть говно и реветь.
                            Ответить
                            • кто-то тут говорил что С++ нечитаем и нелогичен... а код от которого хочется есть говно и реветь наверно сверхчитаем и сверхлогичен...
                              Ответить
                    • по сути статья является одой во славу Лисп... замени Лисп на С++/Питон/Яву/ПеХаПе смысл не поменяется... статья холиварна по своей сути... неучтен факт того что каждый успех уникален, и успешное повторение успеха тоже уникальный случай... уверен что создание компании программирующей на лиспе это еще не шаг к созданию успешной компании, но статья постоянно давит на этот факт (очень попахивает заказухой, типа выбирайте СиШарп и экономьте 1000 человекочасов в месяц или $1000 на зп сотрудников)...
                      Ответить
                      • нет, не заказуха, Пол ее писал уже после того как стал миллионером (именно так).
                        лисп на пхп при всем желании не поменять, ибо лисп мощен, возможно мощнее того же эрланга
                        Ответить
                        • опять же в своей предметной области...
                          Ответить
                        • Настолько мощен, что его боятся использовать.
                          Ответить
                          • бывает и так.
                            обезьянки боятся огня, а кто-то доменные печи спокойно строит (надеюсь, твой неполноценный умишко понял метафору)
                            Ответить
              • "Удобны" ?
                Уважаемый, но у вас действительно не лады с логикой. По сравнению с модулями ML, или той же Ады неймспейсы С++ - ничто. Их даже сравнивать не имеет смысла - они ортогональны.
                Ответить
                • я так понимаю ни один из вас ими не пользовался... с задачей разделения классов на группы они справляются.. что еще нужно? к чему эти пуки в воздух?
                  я ими пользуюсь... я часто вижу их использование в сторонних библиотеках... ЧЯДНТ?
                  Ответить
                  • >я так понимаю ни один из вас ими не пользовался
                    неправильно понял
                    >с задачей разделения классов на группы они справляются
                    это не та задача, но даже в этом случае с++ ущербен
                    > к чему эти пуки в воздух?
                    вот и я задаюсь этим вопросом, зачем бздеть не разбираясь в теме
                    >я часто вижу их использование в сторонних библиотеках.
                    см. про миллион мух
                    Ответить
                    • давайте оставим в стороне аргументы типа "все долбоебы, один я д'Артаньян", спор от этого станет только интереснее... допустим я тоже считаю что все мухи слетелись на всякие C#/Java/Python/PHP и они не ошиблись... Да С++ очень сложный, очень, очень-очень сложный... его смогли осилить 1 из 5 которых я знаю... и половина из осиливших пользуются им на уровне С с классами и неймспейсами... мне понадобилась неделя чтоб написать сайт на PHP, пара дней чтоб освоить основы питона, неделя чтоб спроектировать первую игру на Яве, и 2 года чтоб перестать использовать С++ как С с классами и еще пара лет чтоб научиться выжимать из него эффективность и еще неизвестно сколько лет я буду оттачивать свое мастерство, читая таких же как и я, которые ценят каждый такт и каждый байт, и ищут методы как бы написать это на одну строку меньше (к стати как ни парадоксально, большинство иностранных авторов надрачивающих на такты и байты пишут на шарпе (я где-то тут выкладывал ссылки на кеш-оптимизацию), на С++ все надрачивают на красоту кода, а читая русские блоги, ситуация абсолютно противоположная... разные задачи? или разное отношение к своему продукту?)...
                      Ответить
                      • >С++ очень сложный
                        причина в нелогичности

                        >пользуются им на уровне С с классами
                        причем частенько ооп применяют неверно и не в тех местах

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

                                'все равно' бывает разных видов, и чтоб ситуацию прояснить в статье есть такие строчки

                                "Но гораздо реже понимают то, что существует и более общий принцип: при наличии выбора из нескольких языков ошибочно программировать на чем-то, кроме самого мощного, если на выбор не влияют другие причины."
                                Ответить
                                • это как раз пояснение какой язык является более мощным в определенных ситуациях...
                                  Ответить
                                  • Ты споришь с людьми, которые на своем любимом мощном языке не сделали ничего серьезного, и лишь восхваляют его тут и там, засирая все остальное.
                                    При этом и дураку понятно, что будь они действительно теми, за кого стараются себя выдать, они бы отдавали себе отчет о том, что и в их лиспе есть куча недостатков.
                                    Ответить
                                    • список напейсать осилишь?
                                      али так побздеть пришел?
                                      Ответить
                                      • Долбоёбу список не нужен.
                                        Ответить
                                        • чтож ты так о себе не лицеприятно отозвался.
                                          понятно, что мартышкам списки не нужны, а вот людям надо
                                          Ответить
                                          • Поцелуй мой волосатый зад.
                                            Ответить
                                            • тредом ошибся, тебе в 2995, только анальную смазку не забудь, а то натрут тебе чего-нибудь ненароком - опять виноватых искать будешь
                                              Ответить
                                              • Говоришь из своего опыта? В 2995 уже натёрли? Вижу, что учитесь на своих ошибках.
                                                Ответить
                                                • что ты деточка,
                                                  таких как ты редиректил туда, да только никто не возвращался - очевидно что-то нехорошее происходило, вот теперь решил хоть советом помочь болезным имбецильчекам
                                                  Ответить
                                                  • Вам подарить пемзу, что-бы вы содрали все мозоли из вашего ануса?
                                                    Ответить
                                                    • ололо) я смотрю тут кое-кто другой в анальных вопросах подкован)) ни разу не палимся, да?
                                                      Ответить
                                                      • Да ладна. Не стесняйся. Здесь все свои.С++ники.
                                                        Ответить
                                                        • ну я смотрю ты уже расслабился и чувствуешь себя как в своем гей-клубе уже и в позу встал, пидарок.
                                                          тред 2995 без следа не проходит - факт
                                                          Ответить
                                                          • Вылижи моё говно и поклонись моим тапкам.
                                                            Ответить
                                                            • какая упоротая обезьянка.
                                                              что, гнилой банан большие белые люди на обед дали? или тебя банально выебли этим самым бананом ? =)
                                                              Ответить
                                                              • Не смеши мои тапочки, а просто отсоси.
                                                                Ответить
                                                                • не дают? тебе и не светит - так уж получилось что ты - ущербен. просто прими это и можешь спокойно резать вены/прыгать под поезд или с моста, в общем выдумывай, фристайли - хотя бы последние часы жизни проведи достойно
                                                                  Ответить
                                      • Понимаешь, любая вещь, созданная людьми несовершенна.
                                        Или твой лисп сам боженька создал и передал человекам?
                                        Ответить
                                        • И какие в нём недостатки? Он абсолютно идеален.
                                          Ответить
                                          • Я забыл сказать, для вычисления факториала.
                                            Ответить
                                        • >>>>Или твой лисп сам боженька создал

                                          как ты догадался?
                                          Ответить
                                      • Вообще палю школьника, жуткие попаболи в вопросах опыта применения.
                                        Ответить
                                        • в вопросах опыта применения своего члена.
                                          Ответить
                      • > Да С++ очень сложный, очень, очень-очень сложный

                        толи дело джаваскрипт, правда?
                        https://webpack.js.org/configuration/module/

                        А питон, питон-то вообще лехкотня
                        https://peps.python.org/pep-0646/#using-type-variable-tuples-in-generic-classes
                        Ответить
                        • "Solving Environment" takes forever, as always, and it remains without result. #11919
                          Speed up your Conda installs with Mamba
                          core parts of mamba are implemented in C++ for maximum efficiency


                          А как же так, тупая скриптоблядь? Ты же пиздела, что тупая мартышка может написать гоавна на скриптосмегме, а потом придет умный JIT и "молча всё исправит", а теперь твоя поебота работает 4 часа, а тула на C++ 10 секунд?

                          Скриптоблядь пиздливая анскильная скриптоблядь
                          Место скриптобляди на помойке со всем её скриптоговном

                          Просто спустите в унитаз всех шаблонизаторы, и "языки" для мигания статус баром в браузере вместе с прокладками между унитазом и ноутбуком, и найтимите настоящих программистов на настоящем ЯП


                          https://github.com/conda/conda/issues/11919
                          Ответить
                          • Да, C++ сложнее джаваскриптов. Это значит, что вы больше не сможете нанимать барист, переучившихся в программитсов на недельных курсах. Вам придется искать настоящих программистов. Иногда даже с вышкой. Зато ваши программы вместо четырёх часов будут работать 10 секунд. Стоит-ли оно того?
                            Решать вам
                            Ответить
    • Опять студенты и как код работать вообще будет?.
      в дефайне NAT большими, но переменная const nat
      Ответить
      • это были исходники по численной математике (в данном случае - аппроксимация МНК)

        в наборе было много *.h и *.cpp, которые были переплетены между собою и в каждом из которых было своё обьявление НАТ, в одном модуле nat в другом: NAT...
        Ответить
        • NAT - это network address translation, а аппроксимация, несомненно, МПХ!
          Ответить
    • Каждый день на говнокоде в разделе С++ превращается в ФЯП VS С++ и у сторон всё ещё не иссякают аргументы.
      Я начинаю думать, что С++ какой-то особенный, что способен конкурировать со всеми ФЯП языками, да и прочими. :D

      Самое интересное, это что в других разделах такого нет... Например нет Руби VS ФЯП или C# VS ФЯП. Никто кроме С++ на это не способен? :D

      А казалось бы языки C++ и ФЯП вообще не сравнимы...
      Ответить
      • согласен, но всегда появляется тот кто пытается... и тут как всегда начинается холивар...
        Ответить
      • > Самое интересное, это что в других разделах такого нет... Например нет Руби VS ФЯП или C# VS ФЯП. Никто кроме С++ на это не способен? :D

        потому что с++ - самый мейнстрим.
        вот майкрософт - самая крутая корпорация (по крайней мере была до гугла), её тоже поливали и поливают говном изо всех шлангов.

        а руби вообще нафиг никому не сдался
        Ответить
    • Может кто-то здесь друг мёртвого страуса и рекламирует С++?
      Ответить
    • Почему любители ФЯП приводят аргументы именно против С++?
      Почему бы не зайти в раздел Питона и сравнить его с ФЯП?
      Определенно, любители ФЯП тоже пытаются скрыто рекламировать С++... Может это даже один и тот же человек?
      Ответить

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