Создатель PHP Расмус Лердорф — об анархии и демократии в разработке языка, PHP 5.6 и жалующихся программистах

    Несмотря на то, что прошло уже полтора месяца после IDCEE 2013, новые тексты о ней и по её мотивам всё ещё выходят. Сегодня, например, на DOU.ua опубликовали длинное и развесистое интервью с Расмусом Лердорфом, который создал PHP, но из принципиальных соображений не хочет заниматься им в качестве основной работы. Ниже — несколько интересных цитат и дополнительные видеоматериалы.

    Вместо эпиграфа можно использвать парафраз Отто фон Бисмарка из внутриредакционного обсуждения текста: «Колбаса, политика и PHP: если хотите наслаждаться ими — не смотрите, как они делаются».



    PHP — просто инструмент, с помощью которого можно сколотить классные штуки. И мне нравится именно это — то, что создано с помощью PHP. Я никогда не работал в компании, производящей инструменты; много лет я проработал в Yahoo, потом в WePay, сейчас — в Etsy. Это компании, которые работают для нормальных, обычных людей, и PHP — их неотъемлемая часть. Это инструмент, которым мы пользуемся, чтобы делать вещи для реальных людей.

    А компании, которые делают инструменты, работают не для людей, а для программистов — как Mongo, как MySQL и т.п. Если выйти на улицу и спросить обычных людей, слышали ли они о Mongo или MySQL, никто не ответит утвердительно. И про PHP никто из них не слышал, и это хорошо.

    С другой стороны, если выйти на улицу и спросить людей, слышали ли они о Facebook, что они ответят? Все скажут, что слышали. Меня интересуют именно такие продукты, я хочу делать вещи для реальных людей. Вы спрашиваете, почему я не хочу основать компанию для разработки PHP? Он не касается реальных людей, только придурков типа меня; к тому же делать что-то для программистов — очень раздражающее занятие.

    — Означает ли это, что в какой-то момент вы забросите PHP или станете уделять ему меньше времени?

    — Единственная причина существования PHP состоит в том, что это инструмент для создания продуктов для реальных людей. И мне нужен этот инструмент, без него я не могу этого делать; это же относится и ко многим компаниям. Мне нравится заниматься PHP, но мне нужно видеть эффект для реальных людей: если я его не вижу, мне нет смысла продолжать это делать.

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

    Главная причина сложности — то, что баг-репорты обычно написаны плохо. Они не объясняют поледовательность действий, там просто написано «Всё сломалось», и приходится долго задавать наводящие вопросы, чтобы понять, что же именно случилось. Это огромное количество работы, особенно когда на другом конце — человек, не очень хорошо объясняющий баги; а надо сказать, что, в общем, никто не объясняет баги хорошо. Одна такая задача может занять три дня.

    Поскольку разработка новых возможностей движется довольно быстро — скажем, временной разрыв между PHP 5.4 и 5.5 был небольшим, плюс в PHP 5.6 тоже будет много новых фич, — я переживаю за надежность всех этих нововведений. Проверка всех «крайних случаев» с их использованием занимает некоторое время, и часто разработчики стремятся скорее двигаться дальше, к новым задачам.

    Одно из предложений для PHP 5.6 — сделать то же самое для шифрования. При создании SSL-соединения нужно проверять сертификат второй стороны и то, что вы используете актуальную базу сертификатов. Это несложно сделать, но многие разработчики этим не заморачиваются. Потом они переиспользуют тот же самый код на других проектах, и оказывается, что они уязвимы к атакам типа «незаконный посредник» (man-in-the-middle). Так что в PHP 5.6 вся эта работа с шифрованием может быть встроена по умолчанию.

    — А кто принимает окончательное решение [по нововведениям в PHP]? Вы?

    — Нет. Решение принимаем мы все, я отказываюсь становиться узким местом в этом процессе.

    — То есть, в PHP демократия?

    — Да, мы голосуем за предложенные возможности. Иногда, правда, случается, что большинство голосует «за», но впоследствии оказывается, что внедрение невозможно по техническим причинам. Но 95% одобренных фич попадают в проект.

    — Есть ли другие языки программирования с аналогичным процессом разработки?

    — Я думаю, в большинстве случаев всё же есть один человек, который принимает окончательные решения, и задача остальных — убедить этого человека. Так же происходит, например с Linux: если Линус Торвальдс говорит «нет», то это обжалованию не подлежит. Это тоже нормально, но для меня PHP — не основная работа, к тому же мне не нравится принимать решения такго уровня.

    PHP — очень широкий проект с поддержкой самых разных вещей, и совершенно не факт, что я разбираюсь в них всех. Например, я не понимаю Sybase, я никогда им не пользовался, и когда один человек предлагает сделать что-то в этой области, а трое других говорят «нет», мы этого не делаем. Эти ребята разбираются в Sybase, а я не хочу вмешиваться, у меня нет необходимых знаний.

    Я уверен, что у Линуса тоже случаются такие ситуации, но он действительно глубоко вникает во все вопросы, разбирается и старается принять правильное решение, что достойно уважения. Но это его основная работа, он получает деньги за то, чтобы заниматься именно этим. А для меня PHP никогда не был основной работой.

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

    Я обожаю слушать пользователей, особенно на User Groups и конференциях. Они говорят о том, как PHP помог им решить какие-то задачи — или, наоборот, не смог помочь по каким-то определенным причинам. Иногда они рассказывают, как PHP изменил их жизнь, или как изменилась жизнь людей где-то в маленьком городке в Южной Америке благодаря написанному на этом языке проекту.


    Дополнительные материалы



    Небольшое видеоинтервью:



    Доклад Расмуса Лердорфа о производительности и возможностях PHP 5.4 и 5.5:

    IDCEE 2014
    Company
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 29

      +5
      Апплодирую стоя этому человеку.
        +9
        Он не сторонник тирании, которая наблюдается в том же линуксе или питоне. Его слово — не последнее.
        Вы бы сделали так? Сомневаюсь — был бы я разработчиком мало-мальски известного ЯП или технологии, под моей диктатурой этот проект бы и развалился [trollface]
        А то заминусовали мой лаконичный комментарий ))
          +5
          Как мне кажется, ваша лаконичность показалась другим подхалимством.
            +2
            Тирания в разработке языков — это палка о двух концах. Наличие здоровой тирании позволяет создавать более последовательный язык, без кусков, которые выбиваются из общей идеологии.
          +2
          Больше всего понравилось — «Иногда они рассказывают, как PHP изменил их жизнь» =)
            +15
            Сразу вспомнился парень который «попробовал пхп»?
              –16
              да, поговаривают что от геммора не так просто избавится
                0
                категоричность пройдёт с опытом
              +6
              а не слушать жалобы разработчиков на всякую фигню снова и снова

              [sarcasm] Молодец, так держать! [/sarcasm]
                +2
                Забавно, но довольно странный момент.

                1. Допустим я сделал что-то для себя, для решения моих бизнес-задач.
                2. Это публично доступно.
                3. Кто-то другой начинает этим пользоваться и начинает жаловаться что мой инструмент не решает каких-то его задач или решает с ошибками.

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

                Прошу отнестись к моему комментарию безотносительно Расмуса и РНР.
                +17
                О и срачик уже потихоньку начинается, PHP прям красная тряпка.
                  –14
                  ну, поехали…
                  не красная, а коричневая
                    –12
                    Судя по минусам, без тут сложно быть понятным.
                      –9
                      тьфу, без irony
                      +4
                      То ли тонко, то ли толсто, не могу понять.
                        0
                        Судя по нытью — толсто.
                    –1
                    > я хочу делать вещи для реальных людей
                    > Это огромное количество работы, особенно когда на другом конце — человек, не очень хорошо объясняющий баги; а надо сказать, что, в общем, никто не объясняет баги хорошо.

                    Ну так если делать язык программирования не для программистов, а для «обычных людей»… вполне ожидаемый эффект.
                      –5
                      Как то не очень от сознания что меня и кучу народа записали в придурки и вычеркнули из реальных людей. Хотя, для себя, списываю это на чудоковатость этого таланта. Явление, надо признать частое, и в основном безобидное. Это его жизнь.
                      • UFO just landed and posted this here
                          +7
                          Как РНР разработчик отвечу — вброс не засчитан
                            0
                            Это вы с эвереста вашего опыта говорите?
                              +3
                              «Только ситхи возводят всё в абсолют». ©
                                +1
                                … и «на чем» пишут эти индусы — дело десятое, главное — «как».
                                • UFO just landed and posted this here
                                    0
                                    Я всего лишь упомянул, что качество индусского кода стало настолько нарицательной вещью, что инструмент, который для него использовался, уже не особенно важен.

                                    В ответ жа на ваш комментарий приведу ссылку на Головача — ddd.exmachina.ru/tool/word_vs_framemaker/, и процитирую оттуда поговорку: «Настоящий летчик способен с легкостью летать на всем, что летает, и способен летать с некоторым трудом на том, что, вообще говоря, летать не может.»
                                    • UFO just landed and posted this here
                                        0
                                        Черт, а ведь дельное замечание!
                                          0
                                          Что конкретно вам не хватает в языке PHP, чтобы пользоваться им?
                                          0
                                          Пойду дальше программировать на сковородке.

                                Only users with full accounts can post comments. Log in, please.