1. Python / Говнокод #16298

    −97

    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
    def load_library():
        requests = []
        class Handler(object):
            pass
        Handler.errors = 0
        def handler(request):
            print "failed to load: %s" % request.url
            Handler.errors += 1
        for node in res:
            for url in filter(lambda x: x, map(node.prop, names)):
                requests.append(grequests.get(url))
        gmap(tuple(requests), exception_handler = handler)
        print "total failures: %s" % Handler.errors

    Ля-ля-ля, замыкания!

    Запостил: wvxvw, 10 Июля 2014

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

    • Это какой то адский фарш - сайд эффекты из ооп, однострочная нечитаемая ебанистика из фп.
      Здесь каждая строчка это шедевр.
      Ответить
      • На самом деле тут ООП потому, что... в Питоне такие правила контекста, что локальную переменную хер захватишь. Т.е. класс Handler сам по себе нахер не нужен, но это был самый короткий способ захватить локальную переменную (другие способы - с ниипическими выкрутасами с рефлексией, поиском переменных в, предположительно родительском стек фрейме). Другой интересный момент - grequests библиотека, у которой первоаначальная версия не предусматривала обработку ошибок, и поэтому ее пришлось патчить добавляя код из более новой версии.
        Ответить
        • def handler(request):
                  print "failed to load: %s" % request.url
                  handler.errors += 1
          handler.errors = 0

          Как то так вроде должно работать.
          Ответить
          • Ну это тоже обход проблемы. Можно было, например, в список засунуть, и потом errors[0] += 1, или что-то такое. Но суть та же.
            Ответить
            • class ErrorHandler():
                  def __init__(self):
                      self.errors=0
                      
                  def __call__(self, *args, **kwargs):
                      self.errors=+1
              
              def load_library():
                  requests = []
                  handler = ErrorHandler()
                  for node in res:
                      for url in filter(lambda x: x, map(node.prop, names)):
                          requests.append(grequests.get(url))
                  gmap(tuple(requests), exception_handler = handler)
                  print "total failures: %s" % handler.errors
              Ответить
        • Там что, снаружи цикл что оно переменную не берет? У меня смутное ощущение что все должно быть ок с локальной.
          Ответить
          • В Питоне, если к переменной объявленой снаружи функции применить +=, то она сразу же "становится" локальной. Логика этого не постижима, но вот так вот.
            Ответить
            • Оо читать можно писать нет, класс )
              Ответить
            • насколько я помню, в питоне же вся инкапсуляция ложиться на плечи программиста?
              Ответить
            • class A:
                  i=0
                  def a(self): 
                      i+=1
              A().a()
              
              UnboundLocalError: local variable 'i' referenced before assignment
              Ответить
    • Непонятно, зачем нужен новый класс, достаточно было словарика/списка с одним элементом. Кстати, в жабе в точности такая же проблема при передаче примитивов в анонимные классы.

      В третьем питоне это пофиксили - ввели ключевое слово nonlocal.
      Ответить
      • Кто бы еще армию питорастов на 3 питон пересадил
        Ответить
        • Тот кто перепишет все либы под него.
          Ответить
        • Я окромя небольших скриптов на нём ничего не пишу, поэтому меня это мало волнует.
          Динамика не для меня. Я терпеть не могу дебаггер и предпочитаю, чтобы компилятор сам находил мои косяки.
          Ответить
          • Нету в питоне привлекательности для меня. вот руби мне понравился. Годный язык. Можно даже на рельсы встать.

            Когда я на динамическом языке пишу у меня ощущение... не знаю, что то типа баловства. Несерьезно это все.
            Ответить
            • руби - говно, рельсы - говно.
              Мне нравился web.py, а сейчас мне удобнее писать веб на Go.
              Ответить
              • Рельсы задали моду на MVC в вебе. На вкус и цвет...

                Go тоже хвалят. Он гугловый же? Надо попробовать будет
                Ответить
                • Частично разрабатывается в Google, но по сути это результат эволюции идей Пайка и Томпсона, заложенных в Plan 9, Inferno и Limbo.
                  Печальки в нём хватает, но в целом довольно приятная для разработки штука.
                  Ответить
                • А MVC это что-то хорошее? Сплошное недопонимание и суеверия. За MVC не стоит никакой теории, если сравнивать, даже у криптозоологии есть больший научный базис, чем у этой дурацкой затеи.
                  Ответить
                  • >>За MVC не стоит никакой теории

                    Шта?
                    Ответить
                    • И где она эта теория? MVC - это народное творчество безымянных зодчих. Имеет примерно такое же отношение к информатике, как астрология к астрономии.
                      Ответить
                      • Ну тогда можно смело говорить, что за ООП никакой теории не стоит и идти в цари
                        Ответить
                        • Нет, за ООП есть теория, при чем много. ООП развивалось параллельно, и в каком-то смысле эквивалентно с логическими проблемами связаными с описанием знаний, ограниченых миров (frame problem). Существует object calculus, который может воспроизвести все те же вычисления, что и lambda calculus. С этим как раз все нормально. Можно спорить о практичности этого подхода для решения конкретных задач, но с теоретической базой тут все хорошо.
                          Ответить
                          • Стало быть за всем ООП теория есть, а за паттернами ООП теории нет?
                            Ответить
                            • ООП - это так же, как, например, дифференциальные уравнения. Понятный математический объект с исследоваными и понятно как себя ведущими свойствами. Шаблоны проектирования - это не теория, им не хватает логического / математического формализма, они даже при поверхностном осмотре не выдерживают никакой критики. Поскольку речь об MVC, то продемонстрирую на его примере:

                              Адепты утверждают, что для MVC необходимо:
                              - Код всегда можно поделить на одну из трех категорий: M, V, или C.
                              - Вышеописаная классификация обладает свойством уменьшения усилий потраченых на написание и поддержку програм.

                              Теория вычислений ничего не знает про код типа "представление". Более того, я берусь утверждать, что M - эквивалентно "данным", а C - эквивалентно функциям оперирующих данными. Таким образом, V просто даже не принадлежит к тому же домейну, в котором оперируют две другие категории. Другими словами, "представление" всегда можно поделить на данные и функции ими оперирующими. Это не говорит, что представления не существует, это говорит о том, что эти три понятия существуют на разных уровнях абстракции. Следовательно формальная классификация кода предложеным образом не возможна.

                              Предположим, что кто-то нашел способ поделить код на функции, данные и "представление" (которое не является ни функциями ни данными), и теперь пытается утверждать, что такое деление уменьшает трудозатраты.
                              - Никто никогда не проводил научных экспериментов это подтверждающих. (Научный эксперимент должен проводится так, чтобы исследователи не знали, какая из груп произвела продукт пользуясь MVC, в то время как производители не должны знать, работают ли они с MVC или с чем-то другим). Не просто таких экспериментов не проводилось, а вообще никаких исследований в этой области не было, их никто никогда не публиковал. Все рассуждения об MVC основаны на нескольких авторитетных мнениях и тысячах неавторитетных мнений.
                              Еще хуже: у нас даже нет метрики по которой можно было бы оценивать результаты.
                              Ответить
                              • > Никто никогда не проводил научных экспериментов это подтверждающих.
                                > Не просто таких экспериментов не проводилось, а вообще никаких исследований в этой области не было, их никто никогда не публиковал
                                > Все рассуждения об MVC основаны на нескольких авторитетных мнениях и тысячах неавторитетных мнений.
                                > Еще хуже: у нас даже нет метрики по которой можно было бы оценивать результаты.
                                Именно! Тут даже трудно что-то добавить. Ведь именно так и есть: все заявления об удобствах и преимуществах MVC основаны на субъективных утверждениях, а не каких-либо объективных фактах.

                                А на самом деле родилось из общей идеи - давайте бить код на какие-то логические куски, потому что говно намешаное на одной странице сопровождать уже трудновато.
                                А каким именно способом лучше - этого никто не знает. Ну кто-то придумал такой способ, а потом - пошло поехало.
                                Ответить
                              • М. Как я вижу-помню-слушал на лекциях. V - это вьюшка. M - это вычисления. С - это связь с юзером, реализующая его хотелки. V вообще пофиг что и как хотел юзер - ей кинули данные - она нарисовала. М пофиг как данные будут представляться - она подсчитала и предоставила. C не важно как, главное что. В рамках компании - C - манагер, M - кодер, V - пиарщик. Вот и все. каждый занят своим делом.

                                Тут остается вопрос о том надо ли больше подсистем и есть ли лишние.

                                Про последнее - юзеры не чураются каких то сайтов, все воспринимают одномерно - следовательно со стороны юзера пох есть MVC или нет. А в разработка упрощается. + модульность - отсегнул вьюшку - прикрепил другую.
                                Ответить
                        • ООП не нужно
                          Ответить
                          • ООП - такая больная тема...
                            Ответить
                            • Object-oriented design is the roman numerals of computing.
                              -- Rob Pike (2004)
                              Ответить
                              • > roman-kashitsyn
                                > roman numerals
                                Ответить
                              • Так а шо.
                                В начале 00-х когда оно было в зените популярности мне в принципе было очевидно что панацеей оно не является.
                                Сейчас же лихорадка прошла, появляются языки без ооп и стало модно пинать ооп.

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

                                  И только крестоблядство вечно...
                                  Ответить
                                • Ну как, запинали фп?
                                  Ответить
                                  • > Однако лихорадка сменилась другим сумасшествием - чисто функциональные языки.
                                    > И это пройдет, останутся только идеи, самые удачные из которых запилят в промышленные императивные язычки

                                    Лямбды есть в: PHP, C++, Java, js, C#.
                                    Паттерн-матчинг на подходе...

                                    Хацкель не интересен даже самым ярым адептам.

                                    Всё, ребята, финиш.
                                    Ответить
                                    • Т.е. Хаскель победил.
                                      Ответить
                                      • > Т.е. Хаскель победил.
                                        Подебил.

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

                                        Всё что было заявлено — со всем обосрались. Только факториалы считать.

                                        Указатель на функцию был и в Сишке в 70х. Анонимные классы были и в Яве в 90х.

                                        Скалы, Окамлы, F# и прочие Closure никому и даром не нужны.

                                        А божественная императивщина рулит и в 2к21.
                                        Ответить
                                        • > Где повальная иммутабельность, ленивость,

                                          Попытки есть.

                                          Например котлин иммутабелен много где. Всякие RxJS, RxJava умеют в ленность, да и всякие генераторы в питоне тоже.

                                          В коко есть Flow (это переосмысление идеи реактивных потоков), там можно собрать целую цепочку, и запустить её потом. Она ленива: пока потребитель не захочет -- продьюсер не вскочит.
                                          Ответить
                                        • > Лямбды есть в: PHP, C++, Java, js, C#.

                                          Дикари строят из веток подобие самолёта...

                                          > где чистые питухи, где ссылочная прозрачность?

                                          На недосягаемой высоте, откуда мы вас почти не видим.
                                          Ответить
                                          • >> откуда мы вас почти не видим.

                                            Ок. Счастливо оставаться.

                                            > Haskell / Говнокод #27033

                                            > Петуху дали поиграть в Haskell.

                                            > digitalEugene, 16 Октября 2020

                                            Никому это уже не интересно. Ни-ко-му.
                                            Ответить
                                            • > Никому это уже не интересно. Ни-ко-му.

                                              Просто мы форсим Coq, это ещё более забористая вещь, чем Haskell. А для него Прокуратор Септимус пока не запилил раздел.
                                              Ответить
                                              • > Просто мы форсим Coq

                                                А тут, во-первых, вы в меньшинстве.

                                                А, во-вторых Coq я неоднократно одобрял и хвалил, за что был минусован.

                                                > Кстати Coq — хороший, правильный Петух.
                                                > В отличие от Rusta они занимаются нужными вещами, а не просто кукарекают.
                                                https://govnokod.ru/26927#comment573050

                                                > Прокуратор Септимус
                                                Не по стандарту же. Последняя буква в обоих словах должна быть «р» как в «Питер Селлер»
                                                Ответить
                                          • >> Лямбды есть в: PHP, C++, Java, js, C#.
                                            > Дикари строят из веток подобие самолёта...

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

                                            Да, в C++ их прикрутили сбоку, из-за чего работа с замыканиями превращается в пердолинг, либо надо полностью пересаживаться на лямбды. Да, в python полноценных лямбд нет.
                                            Но в JS отличные же лямбды?
                                            Ответить
                                            • > Но в JS отличные же лямбды?

                                              Good point. Кажись ещё в 2014 я отмечал что несмотря на все потуги самым используемым ФП языком является именно жс.

                                              Причём стандарт ECMA-262 (1997) появился ещё до какой-либо внятной спецификации хаскеля (1998).
                                              Ответить
                                              • Особенно хороша у JSных лямбд их кложность.

                                                Они ловко НЕ захватывали this, заставляя неопытных программистов откладывать дымящиеся кирпичики.

                                                Хвала Аллаху, в ES6 завезли стрелочные функции
                                                Ответить
                                                • this — головная боль в JS. Постоянно нужно думать, чей this имеется в виду.

                                                  А стрелочные функции чем помогут? Это же просто сокращённая запись.
                                                  Ответить
                                                  • они захватят this, проверь
                                                    Ответить
                                                    • и методы class тоже
                                                      Ответить
                                                      • >this
                                                        >class

                                                        Почему-то подумал что здесь все против «ООП».
                                                        Извините, был неправ.
                                                        Ответить
                                                      • Поясню
                                                        'use strict';
                                                        
                                                        
                                                        function User() {
                                                            this.name = "me";
                                                            this.getNameBad = function () {
                                                                return this.name;
                                                            };
                                                        
                                                            this.getNameGood = () => this.name;
                                                        }
                                                        
                                                        const user = new User();
                                                        console.log(user.getNameBad()); //me
                                                        console.log(user.getNameGood()); //me
                                                        
                                                        const funPointerBad = user.getNameBad;
                                                        const funPointerGood = user.getNameGood;
                                                        console.log(funPointerGood()); //me
                                                        
                                                        console.log(funPointerBad()); //bagor
                                                        
                                                        /// правильное решение
                                                        class UserGood {
                                                            constructor() {
                                                                this.name = "me";
                                                            }
                                                        
                                                            getName() {
                                                                return this.name; // тут по идее ок
                                                            }
                                                        }
                                                        Ответить
                                                        • > правильное решение
                                                          Но всё равно будет bagor, когда getName возьмут отдельно от объекта.

                                                          Хотя, такой вариант мне больше нравится, чем питонячий. Метод, отделённый от объекта - это просто функция, куда нужно передавать свой this. Это багрово, но логично.
                                                          Ответить
                                                          • > Но всё равно будет bagor, когда getName возьмут отдельно от объекта.

                                                            Он разве не захватит объект неявно?
                                                            Ответить
                                                  • Плохо ещё, что this и первый аргумент - это разные вещи. Вместе с функциушнёй получается говно pituxes.map(pitux => pitux.method()) вместо чего-то вида pituxes.map(Pitux.method).
                                                    Подход python (там это только для бойлерплейта?) lua с точкой и двоеточием мне больше нравится.
                                                    Ответить
                                                • > Они ловко НЕ захватывали this, заставляя неопытных программистов откладывать дымящиеся кирпичики.

                                                  Почти никогда не пользовался this.
                                                  ЧЯДНТ?

                                                  > в ES6 завезли стрелочные функции
                                                  Особой нужды в них не заметил. Ну они чуть короче, да.

                                                  this это для таких ООПухов для которые буквально понимают слово «ЙажаСцрипт».
                                                  Но если мне понадобится «Йажа» я знаю где её взять :)
                                                  Ответить
                                                  • Вы делаете объекты с методами через замыкания? Каким из способов?
                                                    Вы не делаете объекты с методами, а пользуетесь чисто функциональным/процедурным стилем?
                                                    Ответить
                                                    • > Вы не делаете объекты с методами, а пользуетесь чисто функциональным/процедурным стилем?

                                                      Да. Мне не нравится сама идея implicit параметра this.

                                                      Во-первых, эта штука добавляет стейт и портит чистоту функции.
                                                      Во-вторых, сама педерача неявного сахара this это ООП.
                                                      В-третьих, мне просто лень учить все эти правила.

                                                      > Вы делаете объекты с методами через замыкания?
                                                      Если нужно спрятать то да.
                                                      В замыкании лучше инкапсуляция. А в объекте все кишки торчат наружу.

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

                                                        > Какой резон в this?
                                                        Ну тут уже от реализации зависит. Я просто привык делать объекты через this.pitux = kokoko в коньструкторе.
                                                        Синтаксис более-менее нормальный, а ломается только когда в методе зовут функцию, что можно терпеть.
                                                        Ответить
                                                        • Я вам говорил что в ES5 нужно не добавлять фичи, а наоборот выпиливать лишнее.
                                                          (ЕМНИП ещё когда вы восхищались ES6нутым* стандартом)

                                                          Всю эту дрянь с instanceof, new, this и прочим ООП я бы выкинул на помойку к with, чтобы не морочить людям голову.

                                                          > В принципе, можно просто в каждом методе возвращать новый объект, и тогда чистота не будет затронута

                                                          Тут больше смысл, что this побуждает неявную херь с мутированием хуйпойми какого объекта.
                                                          Чистота не самоцель, мутабельный стейт is ok. Просто явное лучше неявного.

                                                          Имеется ввиду что функция, хороша если сама по себе не имеет стейта (прибинженого this).

                                                          > просто привык делать объекты через this.pitux = kokoko в коньструкторе.
                                                          Сравним 2 куска кода:
                                                          function kokonstr(bagor, lalka, pituz, rusnya) {
                                                            this.bagor = bagor;
                                                            this.lalka = lalka;
                                                            this.pituz = pituz;
                                                            this.rusnya = rusnya;
                                                          }
                                                          
                                                          function kokonstr(bagor, lalka, pituz, rusnya) {
                                                            return {
                                                               bagor : bagor
                                                              ,lalka : lalka
                                                              ,pituz : pituz;
                                                              ,rusnya : rusnya
                                                            }
                                                          }

                                                          В первом надо писать this, this, this, this. Потом new.
                                                          А второй прост и понятен. Завтра понадобится массив — сделаем массив.

                                                          Да, мы теряем тип.
                                                          Но дело в том, что Js УЖЕ НЕТИПИЗИРОВАННЫЙ язык.

                                                          Нам потом всю эти говнину придётся проверять каким-то instanceof.
                                                          Зачем? Зачем?

                                                          * Спасибо Макаке за точный термин.
                                                          Ответить
                                                  • Проблема до ES6нутого JS в том, что там все эмулировали class-based ООП.

                                                    Каждая библиотека имела свой сахар для этого.

                                                    То есть как-бы class-based ООП не было, но чтобы пользоваться библами оно как-бы было.

                                                    Это багор.

                                                    Такой же багор в Перле с его Moose, Moo, Mo, хуйму.

                                                    Я считаю, что либо нужно ООП не использовать вообще и делать чисто процедурный язык, либо тогда надо ебать лёжа, и делать классы как в мейнстримном говне, а не изобретать велосипед из говна и палочек.

                                                    Потому что вот это, извините меня, гомосятина:
                                                    https://www.geeksforgeeks.org/underscore-js-_-create-function/

                                                    Слава Кришне, в ES6 это починили
                                                    Ответить
                                                    • mootools?
                                                      Ответить
                                                      • >mootools

                                                        Я не шучу
                                                        http://blogs.perl.org/users/forward_ever/2011/10/chaining-in-moose-mouse-moo-and-mo.html

                                                        Лось, мышь, му и мо

                                                        В общем все, что связано с ООП, всегда начинается на "М".

                                                        Так ООП и называют: "технология на букву мэ"
                                                        Ответить
                                                    • > Проблема до ES6нутого JS в том, что там все эмулировали class-based ООП

                                                      Эти жавухи и ES5нутом стандарте постоянно дрочили какие-то прототипные наследования, new, instanceof.

                                                      Причём в отличие от статически шипизированных языков, в JS гарантированных полей как в struct/class всё-равно нету.

                                                      Поскольку это просто ключи, которые торчат наружу, и которые можно поменять на любом этапе.


                                                      Только лишние пляски вокруг бесцельных абасракций.
                                                      Ответить
                                        • > Где повальная иммутабельность

                                          В сишке. clang разворечивает её в SSA.
                                          Ответить
                                          • Wake up, Tsar
                                            the Haskell has you
                                            Ответить
                                          • >> Где повальная иммутабельность
                                            >В сишке.
                                            Хорошо подмечено

                                            gcc кстати тоже.
                                            https://gcc.gnu.org/onlinedocs/gccint/SSA.html
                                            Правда непонятно как быть с переменными внутри цикла.
                                            Ответить
                                            • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
                                              Ответить
                                            • > как быть с переменными внутри цикла

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

                                                petuh = 'krestuh'
                                                if koko > 42:
                                                    petuh = 100500
                                                # тип петуха юнион (str | int)
                                                Ответить
                                        • Так ведь любой достаточня развитый крестушок уже давно вынужден писать ня чисто функционяльном языке — с повальной* иммутабельностью, чистыми функциями высшего порядка и прочим паттерн-нятчингом. Это и есть победа функционяльного программирования.

                                          * За исключением пары багов: https://govnokod.ru/27316
                                          Ответить
                                          • > Так ведь любой достаточня развитый крестушок уже давно вынужден писать ня чисто функционяльном языке

                                            В крестопараше более-менее функциональной является только кривая крестовая недометушня
                                            Ответить
                                            • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
                                              Ответить
                                          • ...Пиррова
                                            Ответить
                                          • >писать ня чисто функционяльном языке — с повальной* иммутабельностью, чистыми функциями высшего порядка

                                            на шаблонах
                                            Ответить
                                            • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
                                              Ответить
                                    • Здравый смысл победил. Что тут удивительного?
                                      Ответить
                                      • Даже ебучая Jawa как-то пытается выжить и барахтается.
                                        Ответить
                                      • Победили миллионы хомячков, изучивших свои джавы и ПХП по курсам мистера Nagoor Babu.
                                        Ответить
                                        • Потому что это удобнее, чем Хаскель, не?
                                          Ответить
                                          • Чтобы понять что $A удобнее чем $B нужно хорошо изучить $A и $B, и сделать вывод.

                                            Как ты думаешь, ротоёб знает Haskell? Делая выбор в пользу "PHP" проводит ли он какие-то сравнения?
                                            Ответить
                                            • А ты изучил Haskell?
                                              Ответить
                                            • > Как ты думаешь, ротоёб знает Haskell?

                                              А зачем ему? Он же ротоёб, а не мечтатель на мамкиной шее.

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

                                              Пока хаскелист борется с ленивостью... А впрочем ажиотаж прошёл. Сейчас все дрочат на Rust.

                                              Пока ruster борется с borrow-checkerом — ротоёб отлаживает почти готовое решение.

                                              Пока ruster ждёт окончания компиляции — ротоёб уже тратит деньги и наслаждается жизнью.

                                              > Делая выбор в пользу "PHP" проводит ли он какие-то сравнения

                                              Несомненно. Он кучу раз писал: «именно поэтому я за PHP».
                                              Ответить
                                            • Полагаю, что у ротоняка не возникало необходимости пробовать что-то другое.
                                              Ответить
                                            • Ты когда вакцину «ГамКовидВак» выбирал, ты изучал все вакцины, или пошёл за большинством, потому что скорее всего там уже разобрались?
                                              Ответить
                                              • Во-первых у меня не было выбора: был только он.
                                                Во-вторых я не делаю из этого вывод, что он чем-то лучше других.

                                                Утверждение "миллионы ротоёбов выбирают PHP и JS потому что это самые удобные языки" неверно, потому что миллионы ротоёбов выбирают их не по причине удобства, а по причине популярности, маркетинга и киллер приложений.

                                                Может быть они удобные, может быть нет.
                                                Мы этого не знаем.

                                                Мы не проводили исследования. И ротоёбы тоже его не проводили.

                                                Для многих ротоёбов это действительно единственные два языка, которые они знают. Потому они физически не могут выбрать что-то другое.
                                                Ответить
                                                • Приведи реальные примеры языков/инструментов/etc, которые по твоему мнению незаслуженно (не)получили популярность.
                                                  Ответить
                                                  • Думаю ты и так знаешь, кто незаслуженно получил популярность ))
                                                    Ответить
                                                    • "PHP"?
                                                      Почему незаслуженно? Почитай комменты ротоёба.

                                                      А кроме "PHP"?
                                                      Ответить
                                                      • Какой аргумент ротоёба ты предлагаешь мне рассмотреть?

                                                        JS тоже попал в тренд не по причине своего высокого качества (ха-ха), а потому что все остальные RIA выкинули (в тч flash/ActionScript).

                                                        В начале нулевых использовалась Java апплетами, которая была выкинута из за тёрок MS и Sun, иначе бы сейчас у нас был JVM в каждом браузере, и качество языка тут не причем.

                                                        В конце нулевых вдруг стал популярен Ruby, потому что RoRовцы ездили на каждую конфу и из каждой дырки про него говорили, и потому что на нём всякие гитхабы написали.

                                                        А потом вдруг резко популярным стал питон. Что случилось? Питон вдруг резко стал лучше? Руби испортилось?

                                                        Нет, между python 2.4 и 2.7 не такая большая разница, просто прошел слух, что Ruby тормозит (и твиттеру пришлось от него отказаться), и что Python это круто (его используют гуглы и пр).

                                                        Во второй половине 90-х под винду много чего писали на паскале и на дельфи, а потом перешли на С++.

                                                        C++ был хуже паскаля, а потом вдруг резко стал лучше?
                                                        Нет, просто C++ поддерживался MS, а Борланд стал накрываться пиздой.

                                                        Так что понятие "удобство языка" (весьма, кстати, абстрактное: Ротоёб и Снаут разные языки считают удобными) это последнее, что влияет на его популярность среди хомячков
                                                        Ответить
                                                        • > В начале нулевых использовалась Java апплетами

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

                                                            JVM (от MS) шла с виндой и была встроена в эксплорер.
                                                            Ответить
                                                            • > JVM (от MS) шла с виндой

                                                              - в каком году это было и про какую винду речь?
                                                              Ответить
                                                              • Про 98-ю точно. Во времена w2k и XP апплеты уже замещали флешем.

                                                                MS JVM была выкинута на мороз в 2001-м.
                                                                https://en.wikipedia.org/wiki/Microsoft_Java_Virtual_Machine
                                                                Ответить
                                                                • это очень начало нулевых, прямо на тоненького
                                                                  Ответить
                                                                  • Ну так её выкинули из XP, а Win98 продолжали люди юзать еще пару лет, так что окончательно апплетов не стало году так к 2004-му кмк..
                                                                    Ответить
                                                    • Или ты про осетину?
                                                      Ответить
                                                      • Не путать популярность и известность.
                                                        Ответить
                                                • какой маркетинг был у пхп? не видел я что-то рекламы по тв
                                                  Ответить
                                                  • Зато в интернетах кидали вот такие картинки:
                                                    https://s00.yaplakal.com/pics/pics_original/5/7/8/83875.gif
                                                    Ответить
                                                • > Мы не проводили исследования. И ротоёбы тоже его не проводили.

                                                  Вот исследование.

                                                  «Говнокод» писался на Scala (Роман и rat4), PHP (.ru) и ещё раз на PHP (.xyz).

                                                  Реализации на каких языках оказались практичнее и востребованее?

                                                  > Я ещё раз напоминаю, что на "PHP" написана "ВКонтакте", на "PHP" написан "Facebook", на "PHP" написана "Википедия". Наконец, этот сайт. Задумайся, долбоёб.

                                                  Нужно просто читать его аргументы. Они довольно логичны, если задуматься.
                                                  Ответить
                                                  • gcode.space писался на python.

                                                    Это единственный сервис, который не падает. Остальные падают переодически
                                                    Ответить
                                                    • > писался на python

                                                      Динамически типизированный язык с очень уёбищнымислаборазвитыми лямбдами.

                                                      Питон подходит под «критерий ротоёба»:
                                                      Ты просто набираешь код, загружаешь его на сервер и течёшь от наслаждения. Никаких доёбов до типов данных, никаких компиляций - просто спокойное, течное программирование.

                                                      Тут конечно интересно послушать gosta.

                                                      Питон был выбран из-за «течного программирования», или я ошибаюсь.
                                                      Ответить
                                                      • Как минимум правило

                                                        >Никаких доёбов до типов данных
                                                        нарушено: в питоне строгая типизация

                                                        А Гост, кроме того, фанат тайпхинтов: у него питончик часто типами обвешан.

                                                        Просто Госту питон нравится, а ПХП нет, вот он его и выбрал.
                                                        Ответить
                                                        • > Просто Госту питон нравится, а ПХП нет, вот он его и выбрал.

                                                          Первую версию NGK борманд запилила, потом гост его форкнул.
                                                          Ответить
                                            • > Делая выбор в пользу "PHP" проводит ли он какие-то сравнения?
                                              Постоянно.

                                              https://govnokod.ru/27065#comment590032
                                              Так она нахуй не нужна. Я хочу программировать и течь от наслаждения, а не искать, какая функция какому модулю соответствует.

                                              https://govnokod.ru/27031#comment584938
                                              "PHP" - это единственный язык программирования, который не ебёт мозги программисту. Ты просто набираешь код, загружаешь его на сервер и течёшь от наслаждения. Никаких доёбов до типов данных, никаких компиляций - просто спокойное, течное программирование.

                                              https://govnokod.ru/26839#comment578630
                                              Я ещё раз напоминаю, что на "PHP" написана "ВКонтакте", на "PHP" написан "Facebook", на "PHP" написана "Википедия". Наконец, этот сайт. Задумайся, долбоёб.

                                              Человек получает наслаждение от жизни, а не пердолится со своим инструментом.
                                              Ответить
                                              • Если большинство слушает "Моргенштерна", это значит что "Моргенштерн" лучше "Моцарта"?
                                                Ответить
                                                • Здесь ключевое слово «Если».
                                                  Ответить
                                                  • > Здесь ключевое слово «Если».

                                                    Но ведь левая часть этой импликации истинна...
                                                    Ответить
                                                  • Если "Моргенштерна" слушает больше людей, чем "Моцарта", это значит что "Моргенштерн" лучше "Моцарта"?

                                                    На всякий случай исправил и понизил планку. Теперь утверждение сохранится даже если "Моргенштерн" станет в 10 (или 100?) раз менее популярным.
                                                    Ответить
                                                • https://govnokod.ru/26591#comment579155

                                                  > Пока программистам навороченных языков «лень писать ПО» и ещё ждать «пока оно скомпилируется, выложится», пхпшник делает «хуяк-хуяк и готово».
                                                  >Попутно получая удовольствие от процесса автоматизации рутинных действий.

                                                  > Ещё раз. Наглядный пример.

                                                  > Пхпшник Страйкер написал ГК. Ещё один пхпшник иньо написал хуз.

                                                  > А ещё был супер навороченный ГК от Романа и rat4, написанный на Скале. Где он?

                                                  > Вот именно поэтому я за «PHP».

                                                  > Там люди мешки ворочают, а не пиздят. Нужно отдать им должное.

                                                  Уже всё давным-давно сказано.
                                                  Можно нагядно видеть где супернавороченная Scala и всё ФП. А где презираемое всеми PHP.
                                                  Ответить
                                                • сравнить музыкальные вкусы с выбором инструмента

                                                  ждём "вы не так поняли мои абстракции"
                                                  Ответить
                                                • Конечно. Лучше по способности заинтересовать (заразности), способности вызывать наслаждение или по обоим пунктам сразу.
                                                  Ответить
                                              • >википе

                                                Самый посещаемый сайт в Интернете это ``google.com``.

                                                Он использует "C, C++, Go, Java, Python, Node"
                                                "PHP" там нет
                                                Ответить
                                                • И много времени люди проводят за просмотром «google.com»? Введут запрос и сразу переходят по ссылке на другой сайт.

                                                  Это примерно как по результатам исследований сайтов «mozilla.org», «opera.com» и «google.com/chrome» самым популярным веб-браузером оказался «Интернет Эксплорер».
                                                  Ответить
                                                  • Я не пользуюсь ни VK, ни FB.

                                                    В моих контро браузерах её нет.
                                                    Ответить
                                                    • Любишь повтыкать в дудл?
                                                      Ответить
                                                      • Ему стыдно признаться, что бо́льшую часть времени он проводит на «Говнокоде», а говнокод написан на «PHP».
                                                        Ответить
                                            • Входит ли порог вхождения в удобство? Недавно же упоминали выгодное незнание, когда дороже изучать питушню, чем получить выхлоп.

                                              Если на языке можно писать с первого дня программы, которые делают что-то полезное, он объективно удобнее.

                                              Посетители ГК любят жаловаться на тонны говнокодеров, пишущих на простых языках. Но это не баг, это фича. Не только программисты программируют, дрочить на сложные языки для избранных - не круто.
                                              Ответить
                                        • Макет оказался сильней.
                                          Ответить
                                • > Я хочу посмотреть как лет через 5-8 адепты будут пинать фп, и форсить очередную серебянную пулю.

                                  Ну как, посмотрел?
                                  Ответить
                                  • А куда подевались все Хаскелисты? Ведь в 2012-2014 только его и форсили. В т.ч. и на ГК.

                                    Почему никто больше не обсуждает этот чудо-язык?

                                    Роман вон ушёл на rust (три раза ха). «Безопасная хрюкня с боров чекером».

                                    Смотри активность в разделе: https://govnokod.ru/haskell
                                    Ответить
                                    • в 2012-ом нинужно форсили где угодно

                                      была-есть такая контора selectel, они усиленно пиарились в том числе на чупакабре и в том числе о том, что у них кишки были написаны сначала на errланге, а потом на хачкеле

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

                                      Это не ответ на предсказание, что адепты будут его пинать:

                                      > как лет через 5-8 адепты будут пинать фп, и форсить очередную серебянную пулю.
                                      Ответить
                                      • > Это не ответ на предсказание, что адепты будут его пинать:

                                        >> как лет через 5-8 адепты будут пинать фп, и форсить очередную серебянную пулю.

                                        https://habr.com/ru/post/497114/#comment_21551234

                                        roman_kashitsyn
                                        От Haskell я тоже порядком устал. "Знать" Haskell становится всё сложнее и сложнее, в GHC льётся нескончаемый поток плохо документированных, несогласующихся расширений.

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

                                        > форсить очередную серебянную пулю.

                                        С прошлого июля я пишу на Rust full-time, скучаю по C++. Мало что интересует меня меньше, чем релиз-ноты новых версий rustc.
                                        Ответить
                                        • >нескончаемый поток плохо документированных, несогласующихся расширений.

                                          Напоминает systemd
                                          Ответить
                                          • А вспомни как хаскель-отребье бесновалось 8 лет назад.

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

                                            А то что ненужная заумь, это потому что императивщики сиволапые не можете постигнуть высокие материи.

                                            И что в итоге вышло? Всё что было заявлено — со всем обосрались.

                                            Итог: мейтейнер GHC ищет реальную (то есть оплачиваемую) работу.
                                            Ответить
                                            • > И что в итоге вышло?

                                              Все мейнстрим языки спешат утащить себе кусочек хаскеля.

                                              > в GHC льётся нескончаемый поток плохо документированных, несогласующихся расширений.

                                              В исследовательском языке ведётся исследовательская работа, кошмар \(〇_o)/
                                              Ответить
                                              • > Все мейнстрим языки спешат утащить себе кусочек хаскеля.

                                                ФП победило в том виде как учил божественный JavaScript.

                                                Лямбда стрелки => теперь во всех языках.

                                                Равно как var (а не Хиндли-Милнер).

                                                Все мейнстрим языки спешат утащить себе кусочек яваскрипта.
                                                Ответить
                                        • Передёргивешь. Нахрюк Романа был конкретно на GHC, а не на ФП. Дальше, емнип, он писал, что хочет писать на Standard ML.
                                          Ответить
                      • Это инженерное решение. Теория не нужна.
                        Ответить
                        • Вот-вот, wvxvw часто постоянно про теорию, новые научные достижения в программировании и выразительный формат данных, а я постоянно не понимаю, причём тут теория. Если с %хрень% что-то получается лучше/программисты понимают код/смертность сокращается, то %хрень% нужна. Иначе - примените её уже как-нибудь, или она (пока) не нужна.
                          Ответить
                          • Решение без теории может вылиться в тыкание пальцем в небо. На интуитивном уровне сходится, вроде работает, а потом падает на спину и пена из рта. И хз почему.
                            Ответить
                            • Если алгоритм какой-нибудь, то да. Скажем, квадрат для проверенного теорией алгоритма лучше наколеночного куба. (хотя, не факт же... в теории 100500 N^2 лучше N^3, да и полиномиальная сложность перфомансу не повредит...)
                              Это как постройка сложного механизма: надо всё по формулам рассчитать, чтоб не погнулось от натуги.

                              А если я пробелы ставлю в коде как мне хочется, или язык любимый использую, или паттерн интересный в код втыкаю, а тут приходят теоретики, то гнать их надо и побыстрее. Если всем хорошо, то зачем вмешиваться?
                              Это как развешивание картин в доме. Только искусство, теория не нужна. Не вызывать же знатока геометрии и астрологии, чтобы красиво картины развесить?
                              Ответить
                              • >>Это как развешивание картин в доме. Только искусство, теория не нужна. Не вызывать же знатока геометрии и астрологии, чтобы красиво картины развесить?

                                Декоратора. И люди им нехилые деньги платят между прочим

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

                                Ну так же на чем то основываешься. У тебя есть опыт. Ты не формализовал его в теорию, но, тем не менее он есть. Например паттерны grasp я всегда называл паттернами здравого смысла, потому что я всегда так писал, даже не зная их. Да, программирование - это еще и искусство, но и в искусстве есть свои законы.
                                Ответить
                          • wvxvw тут абсолютно прав. за ооп, фп хотя бы стоит теория.

                            >Если с %хрень% что-то получается лучше
                            Далеко не факт.
                            Чем %хрень1%(MVC) лучше %хрень2% (MVP) или %хрень3% (MVVP) и лучше еще какого-то говна?
                            Таких паттернов можно насочинять целую гору.

                            Не стоит же возводить это в ранг абсолютной истины и гениального достижения человечества.
                            Тем более из практики замечено что то что называется MVC многие программисты воспринимают совершенно по-разному.
                            Ответить
                            • А чем хуже?
                              Ответить
                              • В этом всё и дело - никак нельзя померять что MVC лучше/хуже какого-нибудь другого способа организации кода.
                                Кто как хочет - так и кодит.
                                Ответить
                                • Так в чем проблема? Если бы MVC работал плохо, это бы было видно.
                                  Ответить
                                • > Кто как хочет - так и кодит.
                                  Вот, вот оно. И я о том же.
                                  Почему я должен слушать знатоков теории и не использовать %фича%?
                                  Ответить
                            • > MVC многие программисты воспринимают совершенно по-разному

                              Угу
                              http://www.haskellforall.com/2014/04/model-view-controller-haskell-style.html
                              Ответить
                            • > Не стоит же возводить это в ранг абсолютной истины и гениального достижения человечества.
                              А я не говорил, что люблю и боготворю MVC. У меня от MVC бугурт, мне хочется делить на две, а не на три части (клиент - сервер, интерфейс - логика).

                              > Таких паттернов можно насочинять целую гору.
                              И насочиняли же... Это же религия, творческое видение мира, желание идти каждый раз пойти по проторенной дорожке, ...
                              Я не пойму, зачем кому-то требуется научное исследование(!), статистические данные(!), стопицот томов теории(!) для того, чтобы оценить какой-то подход и использовать его.
                              (Хотя, исследование нужно, если вы - хозяин фирмы и хотите определить набор паттернов, используя которые, ваши программисты будут приносить побольше денег сейчас/потом и не будут уходить к конкурентам)
                              Ответить
                              • >У меня от MVC бугурт
                                У меня тоже НЕПОНИМАНИЕ.
                                > мне хочется делить на две, а не на три части (клиент - сервер, интерфейс - логика).
                                Ну вот. И кто сможет доказать что подобное деление хуже?
                                При том что часть "логика" мы можем поделить еще на более мелкие блоки.
                                А кто-то хочет делить на 4 части (MVVP). Потому что ему так удобнее.

                                НО! Если кто-то удосужится предоставить доказательства что такой способ организации кода предпочтителен, то это уже теория. И её нельзя игнорировать.
                                Ответить
                                • > И кто сможет доказать что подобное деление хуже?
                                  Откуда эта мания всё доказать?
                                  Кто как хочет - так и кодит. (3.14159265)
                                  Мне кажется, этого утверждения достаточно.
                                  Ответить
                                  • А потому что во-первых, интересно взглянуть бы на подобное доказательство. Во-вторых логика надежней всяких измерений, ибо в них есть погрешности и уж точно надежней субъективных мнений непонятных индивидов. Короче это всё не критерий истины.

                                    У меня, например, в принципе нет идей как это доказать.
                                    А если такое доказательство и появится, то я более чем уверен что там появлятся трейдоффы - выбирая такую модель вы выигрываете вот здесь, и проигрываете вон там. Например - жестко разделяя на функции, которые управляют данными и сами данные, мы не можем интерпретировать данные как функции, и не можем управлять с помощью данных - последствия очевидны.

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

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

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

                                      > как сотни желающих изобрести вечный двигатель
                                      это эксперименты
                                      > тыкали пальцем в небо
                                      это исследования
                                      > но гораздо приятнее когда есть отработанная методология
                                      вот у них и не было ничего...
                                      > И чего они добились?
                                      Технического прогресса :) На плечах гигантов стояли те, кому хватило места. Всегда есть что-то абсолютно новое.
                                      И в теориях встречаются ошибки, плюс неизведанное, потому строить вечный двигатель можно и сейчас (но вероятность построить [u]крайне[u] мала), он быть может и нарушит современный закон сохранения энергии, после чего физики опять его переопределят.
                                      Ответить
                                      • Теория не может быть "только помогающей" - это вообще от непонимания того, что такое теория. Теория, это своего рода мост между логическим позитивизмом и скептицизмом. Скептицизм - основа научного метода, который требует чтобы любые утверждения, которые мы используем в формальном диалоге должны обладать свойством опровержимости. Из этого следует вышеописаное отношение к статистическим методам и проведению исследований. Т.е. необходимость непредвзятого подхода, кроссвалидация, плацебо и т.д. С другой стороны, исходя из тех же утверждений, понятно, что статистические методы не достаточны для настоящего знания. Кроме обнаружения корреляции нужно так же найти интерпретацию, объясняющую эту корреляцию (таким образом "позволяющей" логический позитивизм в определенных рамках). Теория и является этим объясняющим звеном. Без теории вообще никакая практика в принципе не возможна. Проблема в том, что есть часто бытующее мнение, что теория - это что-то добавочное, без чего можно обойтись. Объяснение этому мнению лежит в том, что когда у человека есть всего одна теория объясняющая интересующее его событие, то она ему кажется тривиальной, и, следовательно не особо нужной.
                                        Эта стратегия хорошо работает для живых существ, которым не нужен интеллект для того, чтобы делать очень сложные рассчеты для, например, передвижения, извлечения энергии из молекул глюкозы и т.п. К сожалению, попытка перенести тот же подход в более формальную плоскость (а программирование, это очень формальная область человеческих знаний) как правило ничем хорошим не заканчивается.
                                        Ответить
                                    • Теория и наука - это всё, конечно, внушительно, и даже вроде работает. Только не надо забывать, что вся наша наука по своей природе вещь очень эвристическая. В конечном итоге ничего доказать мы не можем, всё зиждется на вере в аксиомы.

                                      История науки показывает, что практики зачастую были далеко впереди теоретиков. Отрицательные числа даже знаменитые математики в 19 веке считали ересью, хотя ими пользовались ещё древние индусы. Многие считали (и наверняка до сих пор считают) мнимые числа бесполезной выдумкой, хотя их использовал ещё Кардано.

                                      Конечно, хороший формализм ещё никому не мешал, но наука практически никогда не начинается с аксиом и теорем. Сначала практика, потом формализм. Иначе получаем древних греков с их метафизическим булшитом.
                                      Ответить
                                      • К сожалению, нет. По крайней мере современная наука основывается на скептицизме, а не на аксиомах. Другими словами, на научном методе. Аксиомы, это логический позитивизм (который не принимается серьезной наукой примерно с тридцатых годов прошлого века). Логический позитивизм только живет в математике, философии и логике, но не в науке (если слово наука понимается как "естесствознание"). Не бывает, и в принципе не может быть практиков в отрыве от теоретиков, так же, как не может быть стула без атомов, которые его составляют. Теория, это объяснение (не в смысле "пересказ последовательности событий", а в смысле "причина") почему что-то происходит. Если бы теории не было, то то, что эта теория объясняет, ни под каким предлогом не могло бы произойти.
                                        Ответить
                                        • Ох, стоит мне только отойти...

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

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

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

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

                                                А искать дятлов - занятие не благодарное.
                                                Ответить
                                              • Нет, я вообще не на программиста учился, это только в последние годы. Я учился на графику и оформление печатной продукции, потом - средства связи. Сейчас вот пошел на философию информатики.
                                                А работал я... ох, где только не работал:
                                                - полиграфия (газета, этикетки, книжки, даже каллиграфия и дизайн игровых персонажей)
                                                - гостинничное хозяйство
                                                - производство (алюминиевый профиль, кровельные материалы, салфеточный завод, пивной завод)
                                                - делал гитарные струны и графитные щетки для электромоторов
                                                - пекарня
                                                - фармакологическая лаборатория (типа сисадмином)
                                                - грузчиком (на заводе Кока-Колы)
                                                - сторожем
                                                - координатором такси
                                                Эт только в последние десять лет - я программист.
                                                У студентов очень разнообразная жизнь, особенно если родственники не готовы поддержать материально.
                                                Ответить
                                                • > Нет, я вообще не на программиста учился, это только в последние годы.
                                                  Но Вы в этом разбираетесь. Важно, что Вы видите то, чего не видят непрофессионалы в данной области.

                                                  > считаться замечательным профессионалом, писать книжки и учить других
                                                  > А работал я... ох, где только не работал
                                                  И псевдопрофессионалов почти нигде не было?
                                                  По идее, можно было прикидываться (как товарищ Бендер великим шахматистом)

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

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

                                                      Научи. Покажи как
                                                      Ответить
                                                  • Кстати о главном: http://web.mit.edu/~xiac/www/advbiases/
                                                    Ответить
                                                  • >>И псевдопрофессионалов

                                                    Это которым псевдо платят деньги? Или у вас профессионал это тот, кто хорошо что то умеет?
                                                    Ответить
                                                    • Это дятлы из комментария: Есть очень мало сфер человеческой деятельности, где можно быть полным дятлом, и при этом считаться замечательным профессионалом, писать книжки и учить других, рассказывая о том, как на практике теория не нужна..
                                                      А кто они, не определили, хотя для меня это те, кого хоть кто-то считает профессионалом, не важно, получает деньги или нет, но он при этом дятел.

                                                      > Или у вас профессионал это тот, кто хорошо что то умеет?
                                                      В принципе, да.
                                                      Ответить
                                                      • Профессионал - тот, кто получает за работу деньги. То есть для него это вид деятельности - профессия. Не путайте профессионала и специалиста.
                                                        Ответить
                                                • >>Сейчас вот пошел на философию информатики

                                                  Существует ли переменная в неиспользуемом куске кода? Бесконечна ли оперативная память вселенной? Что я могу компилировать? Что я должен кодить? На какую зарплату я могу рассчитывать? Кто же я?
                                                  Ответить
                                                  • Нет, этими вопросами философия не занимается. Это типичное представление о философии человека, который не знает, что такое философия. Примерно так же, как люди, которые не знают, что такое математика, думают, что математика - это восновном операции с числами (математика - это восновном операции с символами). Философия информатики занимается вопросами возможности найти ответы на фундаментальные вопросы, такие как, например, достаточно ли однопоточной универсальной машины Тюринга для описания любого вычисления, или нет. Как определить скорость выполнения распределенного алгоритма. Является ли функционализм достаточной моделью для описания рационализма.
                                                    Обыватели, не смотря на то, что не знаю ничего о философии, пользуются ее трудами все время. Более того, целиком и полностью зависят от нашего понимания и уровня развития философии. Любые решения, мотивы интерпретации и наблюдения которые делает любой организм способный их делать, делает их в контексте философии. Просто осознание не обязательно для умения. Осознание - это более сложная структура, мета-структура, которая может развиться, а может и не развиться в системах с одинаковыми исходными возможностями.
                                                    Ответить
                                                    • >>Это типичное представление о философии человека, который не знает, что такое философия.

                                                      Куда нам до вас. Мусье, я полагаю?

                                                      >> восновном

                                                      Я не знаю этого грузинского ученого.

                                                      >>Обыватели

                                                      и небожители?

                                                      >> от нашего

                                                      небожителей.

                                                      И как хорошо ты знаешь философию, со всеми этими высказываниями в стиле - все дерьмо, вокруг дебилы, начальник идиот?

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

                                        >История науки показывает, что практики зачастую были далеко впереди теоретиков
                                        Уже приводил пример, что поиск строк в стандартных либах языков имеет квадратичный worst-case, при том что КМП изобретен еще в 70-х. Он старше большинства посетителей этого сайта, и языков на которых они пишут.
                                        Ответить
                                • Это из разряда с какой стороны начинать есть пирожек
                                  Ответить
                            • > Чем %хрень1%(MVC) лучше %хрень2% (MVP) или %хрень3% (MVVP) и лучше еще какого-то говна?
                              > Таких паттернов можно насочинять целую гору.

                              Вброшу-ка я сюда ещё несколько парадигм:
                              • Джанго с его TVM (Template-View-Model), где вместо контроллеров шаблоны, что рвёт мозг тем, для кого шаблон — это View.
                              • MVCS (Model-View-Conroller-Service) и (о, боже!) LDVCS (Logic-Data-View-Controller-Service), что рвёт мозг тем, кто привык в модели обращаться к СУБД, а не реализовывать логику.
                              Ссылки по теме:
                              http://glossar.hs-augsburg.de/Model-View-Controller-Service-Paradigma
                              http://glossar.hs-augsburg.de/Logic-Data-View-Controller-Service-Paradigma
                              http://joeberkovitz.com/blog/reviewtube/
                              • Zend Framework, который рвёт мозг тем, кто прочитал предыдущие ссылки, потому что в нём сервис — это не обменник с СУБД, а разновидность контроллера.
                              • Парадигма Fat Stupid Ugly Controllers, которую все ругают, но которая вечно жива, потому что в вебе всё начинается с запуска контроллера.
                              Ответить
                              • От ты ж блин. Даже не знал о существовании таких изощрённых сортов говна.
                                Ответить
                                • Я ещё забыл упомянуть HMVC — hierarchical Model-View-Controller — фрактал говна.
                                  Ответить
                        • На мой скормный взгляд теорией для паттерна опп является ооп, а ооп является теорией так как базируется на другой теории, математической. Но тут хз, если подоплека в терминологии я - пас.
                          Ответить
                          • >На мой скормный взгляд теорией для паттерна опп является ооп
                            паттерны - это типовое решение типовой проблемы. Теорий здесь в упор не вижу.
                            Ответить
                        • Ну, правильно, для того чтобы искать снежного человека теория эволюции тоже не нужна, нужно уметь быстро бегать и хорошо слышать, особенно ночью.
                          Ответить
                          • Его никто не видел, а MVC вот он. Есть исследования лучше ли MVC или нет?
                            Ответить
                            • Как я уже говорил, MVC тоже никто не видел, т.как не известно, что именно это такое.
                              Ответить
                              • http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html
                                Ответить
                                • Ну так вообще материалов про MVC много, но нужно же различать научную литературу и, например, художественную. Про НЛО, я так подозреваю литературы тоже немеряно, и видели его много людей. Если память не изменяет, то Р. Рейган - один из известных свидетелей появления летающих тарелок. Но этого не достаточно для доказательства существования чего либо. Доказательством существования считается воспроизводимый эксперимент. Если один человек увидел в коде MVC, а другой компетентный человек, используя все те же принципы и способы, которыми пользовался его предшественник MVC там не нашел, и смог объяснить, почему его там нет, то скорее всего второй - прав. Вот, не так давно астрономы думали, что нашли планету похожую на землю, а оказалось, что на звезде, вокруг которой она должна была бы вращаться были пятна, которые и приняли за эту планету.
                                  Ответить
                                  • > Доказательством существования считается воспроизводимый эксперимент. Если один человек увидел в коде MVC, а другой компетентный человек, используя все те же принципы и способы, которыми пользовался его предшественник MVC там не нашел, и смог объяснить, почему его там нет, то скорее всего второй - прав.

                                    Вот скажите честно, это так Вы всерьёз рассуждаете, или оппонентов так троллите?
                                    Доказательства наличия MVC, поиск MVC с научным подходом - это уже перебор. На грани шаманства. "А докажите, что это пятно на картине написано в стиле %стиль%". Назвали как-то свой принцип, написали код, более-менее придерживаясь принципа - и ладно.

                                    Приведут к Вам ребёнка, скажут, что Васей назвали, а Вы им в ответ: "А докажите-ка мне, что это Вася или Алексей? А докажите-ка, что он существует? Я не читал в авторитетном научном журнале отчёт об исследовании на эту тему. Нет достаточной статистики, не провели социологических опросов. Какой ещё Вася? Где Вася?"
                                    И ладно ещё ребёнка приведут, у него может быть и свидетельство о рождении есть, где имя задокументировано. Но вот у Соловьёва, если не ошибаюсь, был карандаш Андрей.
                                    Ответить
                                    • MVC существует как культурный феномен. В том же смысле, как существуют единороги и снежный человек. Это т.н. эпистемологическая вероятность. Тем не менее, MVC не существует как метафизическая вероятность. Т.е. мир, в котором мы живем не совместим с миром в котором могла бы реализоваться MVC. То, что существуют люди, которые думают, что они это практикуют, или что они видели реализацию - ровным счетом ничего не значит. Точно так же существуют люди видевшие инопланетян, привидения и т.д.
                                      Ответить
                                      • Отсыпь.
                                        Ответить
                                      • > - Никто никогда не проводил научных экспериментов это подтверждающих.
                                        > Доказательством существования считается воспроизводимый эксперимент.
                                        > MVC существует как культурный феномен.
                                        У Вас бугурт лженаука. Выражения в научном стиле, постоянное употребления слова "наука" и однокоренных слов, сложные тексты для запутывания противника и внушения своей идеологии, недобросовестная игра терминами. Чего стоит только воспроизводимый эксперимент для доказательства существования культурного феномена!

                                        > А MVC это что-то хорошее?
                                        > у этой дурацкой затеи
                                        > Но этого не достаточно для доказательства существования чего либо.
                                        Итого: не доказано, что MVC существует, но это дурацкая затея!

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

                                    http://insidecpp.ru/art/17/
                                    Ответить
                                    • И тем не менее, я повторяю, доказательством существования является воспроизводимый эксперимент. Я надеюсь, вас не затруднит воспроизвести следующий эксперимент: взять два яблока, потом еще два яблока и получить четыре яблока?
                                      Разница заключается в доказательной силе индукции, естесствознание ей "меньше доверяет", чем математика. Это объясняется еще и тем, что домейн применения математики шире (а не как тут утверждается, "отличный от") естесствознания. Математика относится как к метафизическим вероятностям, так и к эпистемологическим и логическим вероятностям. Теоретически, никто не мешает есстествознанию относится к логическим вероятностям (например, можно было бы изобретать вакцины для инопланетян, или от укусов зомби), но мы просто не видим особой практической ценности в таких исследованиях.
                                      MVC - это практическое исследование, с абсолютно однозначной областью практического применения и ожидаемой интерпретацией в метафизическом мире. Поэтому, если оно претендует на сущесвование в метафизическом мире, оно должно соответствовать законам этого мира.

                                      ЗЫ. Фасад пишестся "facade".
                                      Ответить
                                      • >Я надеюсь, вас не затруднит воспроизвести следующий эксперимент: взять два яблока, потом еще два яблока и получить четыре яблока?

                                        >Матан, CS и ряд других являются абстрактными
                                        >абстрактными

                                        >Разница заключается в доказательной силе индукции, естесствознание ей "меньше доверяет", чем математика.

                                        Доказательная сила индукции не меняется, а вот модель, которая рассматривается в рамках естествознания может быть неточной или иметь ограничения на область применения.
                                        А в рамках матана имеет смысл только внутренная непротиворечивость теории.
                                        Ответить
                                        • Ну и что, что абстрактными? Яблоко - это тоже абстракция, способ назвать плод нескольких разновидностей деревьев. Что в этом необычного? Матан основывается на каких-то более простых правилах, которые в свою очередь с помощью индукции были выведены из еще более простых и т.д. вплоть до момента, когда мы в состоянии проверить все эти правила экспериментальным путем.
                                          Доказательная сила индукции - да меняется. Для математики достаточно доказать, что что-то возможно, для биологии не достаточно доказать, что что-то возможно, нужно так же доказать, что это что-то так же происходит. Т.е. в одном случае просто индукции достаточно, во втором - нет.
                                          Ответить
                              • Я вот не видел тебя - значит тебя нет?
                                Ответить
          • > Я терпеть не могу дебаггер
            Да он и не особо поможет. Заебёшься тестить все варианты в динамике ручками. Так что только юнит-тесты, только хардкор. Без них динамика вообще неюзабельна.
            Ответить
            • Без юнит-тестов я и в статике не могу. Особенно меня радуют QuickCheck и аналоги.

              В статике я часто тоскую по интерпретатору (если это не хаски/скалка). Писать юнит-тесты на какой-нибудь printf мне лень, это проще в интепретаторе проверить.
              Ответить
              • > Без юнит-тестов я и в статике не могу.
                У меня на данный момент Божественный Крестобилдер, так что юнит-тесты это непозволительная роскошь ;(
                Ответить
        • А что еще не все нормальные люди* перешли?

          * Скриптеры для говнопрограмок вроде XBMC нормальными не считаются по определению.
          Ответить
      • http://govnokod.ru/16298#comment239122
        Ответить

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