1. Куча / Говнокод #18461

    +144

    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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    Флоат даёт ошибки только тогда, когда он плывёт. 
    На вычислении всяких косинусов он не плывёт - поэтому ошибки там врядли возможны.
    
    Точность не будет падать - её не будет, вместо неё будет округленчиский мусор.
    
    Каким образом у вас это получилось - я не знаю, ибо у меня cos(M_PI_2) = ноль. 2.0f*2.0f = 4.0.
    
    Конпелятор всегда знает, ибо нормальные про-пацаны юзают фичи конпелятора, и умеют писать код. 
    В гцц есть такие штуки - builtin_*() - ими запиленны аналоги самых популярных libc функций. 
    ГГЦ абсалютно точно умеет определять константы - для этого есть свой builtin_constant_p() - 
    который в любом куске кода тебе 100% скажет - константа эта перменная, либо нет.
    
    Дак вот, в гцц даже можно писать так:
    
      static const double cos_pi = cos(M_PI);//глобальная статик-константа, которая в компилтайме инициализируется результатом вызова функции cos(). Это не особо профитно, ибо издревли система констант в Си лютое говно.
    Так же в гцц есть атрибуты, один из которых const - он говорит, что твоя функция не имеет побочных эффектов. 
    И все функции, которые их не имеют - принято так помечать, особенно в glibc и libgcc.
    
    А всё почему? Патамучто их пишут более-менее про-пацаны. 
    Конпелятору не нужно ничего знать - знает программист, который пишет, а конпелятор должен предоставить ему фичи, 
    с которыми он может пилить нормальный код, а не говно. 
    А неосиляторам подавай оптимизиторы, автоматизаторы и прочую ересь, от которой толка нет, а гонору много.

    http://ru.stackoverflow.com/questions/245261/Неправильная-работа-cos
    Как-то я проебал открытие сего быдлятника. Когда читал ответ сходу какое-то знакомое чувство, будто я знаю автора.

    Запостил: 3.14159265, 10 Июля 2015

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

    • Он кстати реинкарнировался
      https://www.linux.org.ru/people/Carb_blog/profile

      Божественная оптимизация
      https://github.com/superhackkiller1997/portage/commit/f6f80613dd5881cbfa26c5ffce6fa3935a4ad47a
      Ответить
      • Забанен 07.05.2014.

        Реинкарнации весны-лета 2014 года и я видел. А посвежее ничего найти не могу.
        Ответить
    • Очень нажористо, рекомендую
      Паскаль - это не язык. Этот выходец из ада безвозвратно( в 98% случаев) калечит психику тех, кто писал/пишет на нём. Это абсалютно бесполезный недоязык, с полным отсутвием дизайна, вменяемости, красоты. Примерно на уровне бейсика.

      Всякие его советуют лишь потому, что сами ваяли на нём свои лабы, а не которые тебе ещё про бейсик расскажут. Это попытка оправдать свой собственный выбор.

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

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

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

        Нравится и хочешь и пхп?
        Ответить
      • Больше специалистов после 2-4 месяцев первого пхп. Мне дом надо строить. Одна земля 3 кк рублей стоит. Как построю дом. Сделаю видеоурок о том какие мудаки те кто смотрит видео уроки.
        Ответить
    • Конпелятор его выдал
      Ответить
    • >>d_ino

      Объедятся своей растишки и кодят потом
      Ответить
      • > кодят потом
        и кровью.
        Ответить
        • И прочими телесными жидкостями

          Пс, парень, посоветуй аниме на подобие Берсерка
          Ответить
          • Shingeki no kyojin
            Bastard
            ХЗ. Может ты уже смотрел их.
            Ответить
            • не, я только мангу берсерк дочитал
              Ответить
              • Сколько у тебя тайтлов?
                Ответить
                • Я вообще не анимэшник меньше 20 точно
                  Ответить
                  • Один раз - не анимас

                    > 20
                    Ну всё. Пропал человек.
                    Ответить
                    • 20 тайтлов - это не о чем. Причем большая часть из них мне не понравилась

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

                        Вот скажу я "пхп - говно" *, и ответят мне, что не знаю я пхп, чтобы так судить о нём. Скажет Борманд "пхп - говно", и ответят ему: "Сколько скриптов ты написал? Сколько камней подводных преодолел? Ты стар и опытен. Хоть пхп и говно, но ты - закоренелый пхпрограммист".

                        ________________
                        * Автор комментария на самом деле не считает PHP говном, хотя JS и C++ выглядят для него привлекательнее.
                        Ответить
                        • JS привлекательней php?
                          Мне просто интересно чем по вашему мнению js привлекательней?
                          Ответить
                          • 1) nodejs, npm
                            2) вменяемый интерфейс для нативных модулей
                            3) один язык и инфраструктура для клиента и сервера
                            4) вменяемые функции высшего порядка и замыкания
                            Ответить
                            • вменяемый интерфейс для нативных модулей

                              function(global){
                              ... код модуля
                              }(global);
                              Вменяемо ???

                              > один язык и инфраструктура для клиента и сервера
                              эээ ммм ИМХО сомнительно но допустим

                              >вменяемые функции высшего порядка и замыкания
                              php это тоже стал уметь.

                              + у пхп классическая система наследования.
                              нейм спейсы, трейды.
                              При более глубоком рассмотрении пых рвет js во всём кроме
                              >один язык и инфраструктура для клиента и сервера
                              Ответить
                              • >> вменяемый интерфейс для нативных модулей
                                Ты не понял утверждения.

                                > function(global){

                                Это не commonjs/nodejs модули, это относительно устаревшая идиома. В наиболее "стандартных" commonjs модулях (коих, вероятно, большинство) - один файл == один модуль, дополнительного замыкания не надо

                                > php это тоже стал уметь
                                С явным перечислением контекста? нет, спасибо.

                                > + у пхп классическая система наследования

                                Наследование не нужно.
                                Ответить
                              • Лол, да какая ж она классическая, эта система наследования в пыхе? Наследование появилось в программировании, как понятие, во времена создания первых экспертных систем используя то, что сегодня формально называется описательной логикой (description logic). Тогда это называлось terminological systems. Так вот, классическое наследование - множественное. Правила типизации отсутствуют, а выбор нужного унаследованного / переопределенного поля / метода делается по правиламсовсем не таким, как в пыхе (и их много разных в "классическом" наследовании! на выбор).
                                Наследование в пыхе такое, потому, что те, кто его писал, ничего в жизни кроме Явы не видели, да и Яву они видели последний раз в техникуме за неделю до диплома.
                                Ответить
                                • Вероятно, слово "классический" интерпретируется вами по-разному.
                                  Ответить
                                • Классическое имеется ввиду не прототипное.
                                  Ответить
                                  • Ну это примерно как есть классическая живопись (Франция-Италия 17 век), а можно сказать что кубизм - это не классическая живопись, но не все, что не кубизм явлается классической живописью!
                                    Точно так же "прототипное" наследование - это одна из сотни возможностей, но ни прототипное наследование, ни то, что есть в пыхе - не "классические". Под классическим понимается состояние, когда теория / комплекс теорий были полностью сформулированы и, по сути перестали развиваться (исследование больше не требуется), например, классическая механика, классическая литература (греческая трагедия, комедия) и т.д.
                                    То, что происходит с наследованием в пыхе - это просто калька с Явы с минимальными изменениями, которая в свою очередь просто поделка, написаная недалекими и "политически заангажироваными" пейсателями, которые вовсе даже не старались сделать что-то претендующее на звание "классики", а просто делали то, что им маркетологи посоветовали.
                                    Ответить
                                    • > делали то, что им маркетологи посоветовали

                                      Инфа 146%? Сенсация - долбанутую ковариантность массивов в жабе Гослингу надиктовали маркетологи!
                                      Ответить
                                      • Так вот почему сипипи такое говно - страуструп был не программистом, а маркетологом!
                                        Ответить
                                        • Ты разве не знал, что у AT&T лучшие маркетологи на свете?
                                          Ответить
                                        • Если интересно, почитай воспоминания Дийкстры о проекте Steelman: конкурс военного министерства США на разработку языка, с абсолютно бестолковыми требованиями, но хорошим грантом. Сиплюсплюс и Ада разрабатывались именно в рассчете на этот грант. Т.е. они такие не потому, что авторы языка посчитали, что нужно делать именно так, как они сделали, а потому что "жизнь заставила" (по-своему маркетинг).

                                          Что до Явы и Гослинга, то соображения при разработке были: сделать как можно попсовее, чтобы побороться с мелкомягкими за популярность. Т.е. Ява - это своего рода Ласковый Май в программировании.
                                          Ответить
                                          • А можно ссылку или название книги где искать?

                                            Не нагуглилось что-то
                                            Ответить
                                            • Литература цитирует периодику, которую сложно найти. Но вот, например, есть ссылка на его дневник: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD659.html
                                              Ответить
                                          • Читал почту и тут такой перл.

                                            >Т.е. Ява - это своего рода Ласковый Май в программировании.
                                            Однозначно в граниты!
                                            Ответить
                                            • БелыеРозы белыеРозы = ФабрикаНовыйШипы() ;
                                              Ответить
                                          • > Сиплюсплюс и Ада разрабатывались именно в рассчете на этот грант
                                            Что-то слабо верится. Насколько я помню, ада там соревновалась с диалектом паскаля, разрабатываемым Виртом и самим Дейкстрой. При этом язык, продвигаемый Дейкстрой, не выиграл. Так что у него предвзятое отношение.
                                            До c++ там ещё десятилетие было.
                                            Ответить
                                            • Дийкстра был в "приемной комисси", тут как бы хочешь не хочешь отношение какое-то будет. И проект был очень-очень долгим, после того, как закончился Ironman (и никто не получил грант), начался Steelman, http://www.adahome.com/History/Steelman/steelman.htm спецификация которого была опубликована в 1978 (тогда же, когда С++ был стандартизирован, если память не изменяет). Но и требования проекта и разработка языка начались раньше.
                                              А вот и заметки по поводу С++ участия в этом проекте: http://www.adahome.com/History/Steelman/steeltab.htm
                                              Ответить
                                              • > в 1978 (тогда же, когда С++ был стандартизирован, если память не изменяет)

                                                Изменяет. Первые версии c++ начали зарождаться примерно в 1988. Стандартизировали его в 1998.
                                                Ответить
                                                • Ну, я нигде не могу найти точную дату окончания конкурса, но процитированая статья была написана в 95-96, в ней же всколзь упоминается о том, что второе и дополненное издание Ады вроде как все еще ориентировалось на требования этого проекта. Вики молчит по этому поводу, на официальной странице есть только дата начала. Х.з. у меня такое такое предвзятое мнение наверное сложилось из комментариев / этой самой статьи.
                                                  Ответить
                                                • Разве труп страуса не в начале 80х начал кресты клепать?
                                                  Ответить
                                            • Не, С++ уже тогда существовал. Там ещё в конкурсе были языки, основанные на отсоСишке, но их завернули, и правильно сделали.
                                              Ответить
                                          • > чтобы побороться с мелкомягкими за популярность

                                            Побороться в каком плане? У мелкомягких не было похожих продуктов.

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

                                                Но первоначально такого успеха не было :)

                                                ЕМНИП, одним из первых проектов была телевизионная приставка, не получившая коммерческого успеха. Только веб спас жабу, а потом уже она начала занимать изначально планировавшуюся нишу.
                                                Ответить
                                            • Спольски когда-то об этом писал: http://www.joelonsoftware.com/articles/StrategyLetterV.html
                                              Ответить
                                          • > Сиплюсплюс и Ада разрабатывались именно в рассчете на этот грант.

                                            Но ведь Ада, в отличие от её собратьев, вышла со вменяемым синтаксисом.
                                            Ответить
                          • тем, что жс я знаю
                            Ответить
                          • Без долларов (надоедает писать);
                            явное "var";
                            имена функций проще;
                            часто функции имеют один неявный аргумент, из-за чего их использовать легче (например, JS: text.replace(/./g, 'a'), python: re.sub(r".", 'a', text) и PHP: preg_replace ("#.#", 'a', $text). В JS из-за неявного аргумента запись выглядит логично "заменить %что% на %что%", в python/PHP пользователю предлагается лезть в мануал, чтобы выбрать один из 3! вариантов расстановки аргументов);
                            нет лишнего оператора для конкатенации.

                            А в общем-то, я на PHP крайне мало писал (только когда его изучал), поэтому замечание Кегдана тоже можно зачислить.
                            Ответить
                      • > анимэшные штампы меня бесят
                        Прими ещё этих горячих источников да скушай бенто.
                        Ответить
    • показать все, что скрытоА не запилить ли нам статью в лурочке?
      Ответить
      • Давай, пили черновик
        Ответить
        • показать все, что скрытоЕсли кому-то интересно - пошли на форум, линки собирать.
          Ответить
          • Я согласен быть редактором
            Ответить
          • Ник Царя упоминали в следующих постах:
            * http://govnokod.ru/4211
            * http://govnokod.ru/11824
            * http://govnokod.ru/13128
            * http://govnokod.ru/13162
            * http://govnokod.ru/13169
            * http://govnokod.ru/13177
            * http://govnokod.ru/13180
            * http://govnokod.ru/13181
            * http://govnokod.ru/13183
            * http://govnokod.ru/13187
            * http://govnokod.ru/13188
            * http://govnokod.ru/13189
            * http://govnokod.ru/13191
            * http://govnokod.ru/13196
            * http://govnokod.ru/13201
            * http://govnokod.ru/13208
            * http://govnokod.ru/13245
            * http://govnokod.ru/13256
            * http://govnokod.ru/13265
            * http://govnokod.ru/13280
            * http://govnokod.ru/13306
            * http://govnokod.ru/13314
            * http://govnokod.ru/13322
            * http://govnokod.ru/13323
            * http://govnokod.ru/13330
            * http://govnokod.ru/13344
            * http://govnokod.ru/13347
            * http://govnokod.ru/13353
            * http://govnokod.ru/13354
            * http://govnokod.ru/13358
            * http://govnokod.ru/13362
            * http://govnokod.ru/13405
            * http://govnokod.ru/13408
            * http://govnokod.ru/13416
            * http://govnokod.ru/13420
            * http://govnokod.ru/13422
            * http://govnokod.ru/13426
            * http://govnokod.ru/13443
            * http://govnokod.ru/13444
            * http://govnokod.ru/13555
            * http://govnokod.ru/13569
            * http://govnokod.ru/13589
            * http://govnokod.ru/13590
            * http://govnokod.ru/13591
            * http://govnokod.ru/13594
            * http://govnokod.ru/13639
            * http://govnokod.ru/13852
            * http://govnokod.ru/13983
            * http://govnokod.ru/16129
            * http://govnokod.ru/16567
            * http://govnokod.ru/16714
            * http://govnokod.ru/17521
            * http://govnokod.ru/17668
            * http://govnokod.ru/17927
            * http://govnokod.ru/17957

            Их можно просмотреть и вынести для себя что-нибудь интересное.
            Ответить
    • > superhackkiller1997

      1997 это год рождения что ли?

      > > А неосиляторам подавай оптимизиторы, автоматизаторы и прочую ересь, от которой толка нет, а гонору много.

      попробывал бы паря в каком хекс эдиторе асмы численые ручками забивать. а натюрель, так сказать. никакой автотаматики. назад к корням - как народ программы писал 50 лет назад на настоящих "компьютерах" а не на каких опущеных "мини-" или "микро-компьютерах".
      Ответить
    • > http://ru.stackoverflow.com/questions/245261/Неправильная-работа-cos

      из коммента:

      > > Откуда компилятору известно, что функция cos() вычисляет косинус числа

      и на самом деле. откуда С компилятор может знать что делает стандартная С функция cos() из стандартного С хидера math.h? /s
      Ответить
    • Человек мимоходом еще и доказал, что поле вещественных содержит все корни уравнений третей степени (а как иначе получить косинус одного градуса?). Вроде по возрасту подходит на медаль Филда, я бы писал заявку.
      Ответить
      • * поле алгебраических вещественных
        Ответить
    • Хуя, какой жир я пропустил.
      Кажется, я знаю автора.
      Ответить
    • коконЫ, пишите на джабе - там и конпелятор есть, и константы точные! это вам не блокнотом ссх тунели писать на линукс!
      Ответить

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