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

    −1

    1. 1
    Чем "Go" влажнее "PHP"?

    Увидел, что "Авито" переводит свои вспомогательные сервисы на "Go", и запаниковал.

    Запостил: inseminator, 15 Июля 2019

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

    • скоро все перейдет на го, пхп станет не нужен, и ты пойдешь зарабатывать на жизнь сбором бутылок
      Ответить
    • Точно не знаю, но думаю у «ВКонтакте» и «Facebook» только рантайм морды на «PHP». Весь остальной бекенд и оффлайн на чем угодно может быть.
      Ответить
      • ВК вроде на тарантул базу перевели. Майл течет от своего Tarantool.
        Ответить
      • Разумеется так и есть. У ВК в беке говнокод олимпиадников на сишечке, у ФБ там все серьезнее: есть и питон, и даже ocaml.
        Ответить
        • Угу, только «OCaml» там используется только в тайпчекере «Питона». У «Питона» настолько сильная типизация, что ему даже внешний тайпчекер на «Окамле» потребовался. Прыщебляди соснули!
          Ответить
          • пюре это про стат проверку типов
            причем тут сильная, питушок?
            Ответить
            • В питоне типизацию можно назвать сильной только у некоторых встроенных методов встроенных типов, все остальные функции и методы принимают значения любых типов, большинство коллекций гетерогенные, о неправильном типе аргумента ты узнаешь не при вызове функции, а только когда исполнение дойдёт до куска кода с проверкой (если вообще дойдёт).

              Вообще чтобы спорить об этом, нужно дать точное определение тому, что сильная тупизация, а что слабая. Если например брать это:

              В 1974 году Лисков и Зиллес (англ. Liskov and Zilles) назвали сильно типизированными те языки, в которых «при передаче объекта из вызывающей функции в вызываемую тип этого объекта должен быть совместим с типом, определённым в вызываемой функции».


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

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

                Тот факт, что это проверяется в рантайме (динамически) а не в момент постраения AST (статически) говорит о том, что типизация динамическя

                >методы принимают значения любых типов,
                нет, не принимают. Вот метод, который не принимает значение любого типа

                def ptiuh(a):
                return a - 12

                Этот метод принимает число

                Еще раз:
                В языках со строгой типизацией нельзя неявно кастить типы: это ошибка. Такой код работать не будет.
                В языках со слабой типизацией -- можно.

                Чем больше неявных кастов -- тем слабее типизация

                В языках со статической типизацией это проверяется в момент парсинга (без запуска программы)
                В языках с динамической -- в рантайме

                Например в питоне более строгая типизация, чем в JS: тут вычесть число из строки нельзя.

                В java еще более строгая: тут нельзя даже while (1).

                В си довольно слабая типизация, тут можно кастить интеджеры к поинтерам

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

                  > Вот метод, который не принимает значение любого типа
                  Ага, я передам туды объект, у которого определён __sub__ и твоя "сильная" тупизация пропадёт.
                  Ответить
                  • Даже из приведенного тобой определения следует, что питон имеет строгую типизацию.

                    42 имеет тип int, который совместим с типом, поддерживающим вычитание инта, который и ожидает функция.

                    >, у которого определён __sub__
                    тип с __sub__ так же поддерживает вычитание инта
                    Ответить
                    • > тип с __sub__ так же поддерживает вычитание инта
                      А тип с __add__ поддерживает сложение целых чисел? Там, и вообще везде может быть что угодно. Такое во встроенных классах есть, а что уж говорить о пользовательском коде.

                      Ты можешь с уверенностью утверждать, значения каких типов принимает эта функция, что она делает, и что она не будет выполнять того, что от неё не ожидали:
                      def f(a, b, c):
                          return [(a + b) % c for i in a]
                      ?

                      Типобезопасно! А главное ошибки легко искать!
                      Ответить
              • > То я вообще не уверен можно ли считать что у каких-либо динамически типизируемых языков есть сильная тупизация, ведь тогда потребуется проверка типов при каждом вызове, а это накладно, и вряд ли кто-то так делает.
                Но ведь для утиной типизации «проверкой типов» можно считать обращения к полям переданного объекта. Грубо говоря, вот в такой функции:
                def wake_up(obj):
                    obj.wake_up()

                Для объекта obj проверяется соответствие некоему «утиному интерфейсу», в котором определён метод «wake_up». Если obj ему не соответствует — вылетит AttributeError.
                Ответить
                • str соотведствует некоему «утиному интерфейсу» в котором определён метод __mod__ и int ему соответствует, соответственно эти классы совместимы.
                  Ответить
                  • > соответственно эти классы совместимы
                    Если функция, принимающая объект, требует от него только наличия метода __mod__ — то да, в контексте этой функции типы «str» и «int» совместимы.
                    Проблема в том, что приведённая тобой цитата была написана за пару десятилетий до, собственно, изобретения термина «утиная типизация», а потому несколько устарела.
                    Ответить
    • Заморозку накопительной части пенсии продлят еще на год



      Мораторий на формирование накопительной части пенсии продлится еще на год — до 2022 года включительно, пишет 15 июля "Интерфакс" со ссылкой на материалы Минтруда об основных характеристиках бюджета ПФР на 2020 год и плановый период 2021–2022 гг.

      "При формировании доходной части бюджета ПФР учтено сохранение на весь период "моратория" на направление страховых взносов на финансирование накопительной пенсии", — говорится документах.

      Мораторий был введен в 2016 году и должен был закончиться в 2020 году.

      В сентябре 2018 года глава Минтруда России Максим Топилин заявил, что рассматривается вопрос о продлении "заморозки" пенсионных накоплений еще на год — до 2021 года включительно. В декабре 2018 года Владимир Путин продлил его до 2021 года включительно.

      Накопительную часть пенсий заморозили в 2014 году. Все взносы, которые работодатель переводит за сотрудника в Пенсионный фонд, пошли в страховую часть. Мера позиционировалась как временная, но после этого "заморозку" продлевали несколько раз.
      Ответить
      • иди нахуй
        Ответить
      • Сёма, смотри

        Президент Украины пообещал носить браслеты с именами задержанных в России моряков.
        Владимир Зеленский написал в Фейсбуке, что снимет их, когда украинцы вернутся домой.


        Теперь путину точно пиздец!!
        Ответить
        • https://static.themoscowtimes.com/image/1360/e4/b34915f4297f40d3b07b7c118d0c932d.jpeg
          Ответить
          • Это Чарли эбдо?
            Ответить
            • Это Лемонд
              https://cs4.pikabu.ru/post_img/2014/03/20/5/1395297332_1551142991.jpg
              Ответить
              • Пока что в активной позиции можно нарисовать пу: он угандошил боинг, а за это его вернули в ПАСЕ и немцы подписали с ним новые договоры о сотрудничестве
                Ответить
                • Ну так нарисуй, если можно, ватник. Но, увы, рабсеянам нельзя.
                  Ответить
                • Лол, дятел, вообще-то после боинга запад влез в российско-украинские разборки. Дали обезьянам СОУ Бука, не подумав, что в небе летают пассажирские самолеты и что она сама по себе их отличить не успевает - получите результат.
                  Ответить
                  • > Дали обезьянам
                    Вместе с обезьянами-персоналом.
                    Ответить
                    • Персонал там особо ничего не мог сделать. http://buran.ru/htm/mh17_4.htm "Анатомия ошибки, погубившей МН17"
                      Ответить
                      • Ты ошибка анатомии, проверь.
                        Ответить
                      • Это гагарин ничего не мог бы сделать и был бы очередной собачкой, если бы инцидент 12 апреля не был постановкой.
                        Ответить
      • А тебе-то что? Надеешься до пенсии дожить, что ли?
        Ответить
    • Почему все текут от "горутин"?
      Ответить
      • Может быть, они просто постоянно текут, а «горутины» –— это всего лишь отмазка?
        Ответить

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