[Опрос] Насколько вам наплевать на фичи последней версии языка?

    Многие на собеседованиях любят гонять по последним фичам языка. У меня это всегда вызывало недоумение, во всяком случае в сфере веб-разработки. На фронтенде ты смотришь CanIUse (или сношаешься с полифиллами), а на бэкенде ты смотришь на шаблоны vps/vds, которые предоставляют хостеры и прикидываешь когда же в них появятся нужные тебе версии языка. И я абсолютно не против развертывания среды выполнения нужной версии, которая будет отличаться от системной, но давайте будем честными с самими собой. Какой процент из вас ориентируется на последнюю доступную версию языка, а не на то что будет на в ближайшие пару лет дано в ощущениях, браузерах и датацентрах. Внимание опрос!

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Какие версии интерпретатор/cреды а я предпочитаю:

    • 11,5%[Все языки] Мне досталось легаси, которое разваливается от малейшего пука, использую любую версию языка какая работает, после меня хоть потоп.31
    • 15,2%[PHP] Использую ту версию php что есть у нашего хостера / ориентируюсь на версию PHP которая будет ближайшие год-два у большинства хостеров.41
    • 26,7%[PHP] Развертываю последнюю версию PHP, которая мне нужна и пишу используя ее фичи.72
    • 1,1%[Python] Использую python 2.* и буду использовать, даже если придется даунгрейдить систему и все собирать руками, а что поделаешь десу.3
    • 8,9%[Python ] Использую ту версию Python что есть у нашего хостера / ориентируюсь на версию Python которая будет ближайшие год-два у большинства хостеров.24
    • 27,8%[Python] Развертываю последнюю версию Python, которая мне нужна и пишу используя ее фичи.75
    • 3,3%[Perl] Использую ту версию Perl что есть у нашего хостера / ориентируюсь на версию Perl которая будет ближайшие год-два у большинства хостеров.9
    • 1,5%[Perl] Функионала 5.8 мне хватит до конца жизни, а работать на серверах это подмножество будет до тепловой смерти вселенной.4
    • 2,6%[Perl] Развертываю последнюю версию Perl, которая мне нужна и пишу используя ее фичи.7
    • 3,7%[Javascript-backend] Использую ту версию NodeJS что есть у нашего хостера / ориентируюсь на версию NodeJS которая будет ближайшие год-два у большинства хостеров.10
    • 27,8%[Javascript-backend] Развертываю последнюю версию NodeJS, которая мне нужна и пишу используя ее фичи.75
    • 24,1%[Javascript-frontend] Пытаюсь попасть в 90% распространенных браузеров согласно CanIUse65
    • 27,0%[Javascript-frontend] Пишу как хочу, использую транспиляцию и полифиллы, версия браузера — это социальный конструкт.73
    • 6,7%[Javascript-frontend] Переобуваюсь на лету, если нужно добавить в проект виджет который был нужен еще вчера, то сдела две параллельных системы сборки.18
    • 2,6%[Ruby] Использую ту версию Ruby что есть у нашего хостера / ориентируюсь на версию Ruby которая будет ближайшие год-два у большинства хостеров.7
    • 6,3%[Ruby] Развертываю последнюю версию Ruby, которая мне нужна и пишу используя ее фичи.17

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 9 172 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 53

      +2

      ты смотришь на шаблоны vps/vds, которые предоставляют хостеры

      Во-первых, любой нормальный хостер предоставляет возможность установить систему из собственного iso-образа

      Во-вторых, контейнеры же

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

          Ну значит контейнеры, это давно уже общепринятый стандарт, и совершенно неважно какой там шаблон у хостера

            –4
            Да, и тестирование стандарт. И много что еще стандарт, но это отнюдь не значит, что 100 % отрасли его использует.
              +2
              Про node.js вообще не понял что за стандартный шаблон. Если проект без ci\cd — nvm и nvm install любая.версия. Если проект с кучей инстансов, то нужны контейнеры и в них будет именно та версия которая нужна разработчику. Не обязательно прям последняя, но, как минимум, LTS.
                +1
                Ну вот, кто не использует, тот и пологается на мамантовое по всяких хостеров.
                  +1

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

                  Так что для меня более актуально версия языка поставляемая с базовым образом docker file

                    +2
                    А зачем вы работаете на такой галере, которая игнорирует стандартные отрасли? Мне кажется это просто вопрос профессионального самоуважения.
                      –2
                      Потому что могу себе это позволить.
                  +5
                  Эти «лишние действия» направлены на предсказуемость системы в целом вне зависимости от хостера и прочего. Не переписывать же код только из-за того, что решил сменить хостера.
                    0
                    Да, можно его изначально писать так, что при смене сервера ничего не придется переписывать. Причем без контейнеризации.
                      0
                      Можно писать под древнюю версию, но бывает, что некоторые фичи выкидывают в более новых. Под какую-то более конкретную версию всё равно надо ориентироваться.
                      И лучше когда это зависит от тебя, а не от хостера что бы не создавать vendor-lock для своего проекта.
                0

                Ну блин, спасибо за статью! Не думал, что такая проблема вобще имеет место быть. Пишу на сишарпе, проект крутится в докере с последней версией окружения, обновляю по выходу новой версии. У хостера центос 7, вобще без разницы

                  –1
                  Ничего не имею против докера(даже при всех его глюках), но когда я предложил его использовать на последнем месте работы, то мне намекнули, что не все горят желанием изучать эту технологию, особенно среди девопсов, от которых проект зависел куда больше чем от разработчиков. Это я опять к тому, что есть хорошие практики, а есть процент людей, которые их используют.
                    +14

                    Бывают девопсы без докера? Я вообще думал что второе породило первых

                      +5

                      После чего отдел эксплуатации назвал себя девопсами.

                        +12

                        Минутка абстрактных мыслей. Между прочим, огромное количество народу работает и сегодня без докера, просто ставя нужные им пакеты через условный apt. Они есть, они живые. Просто это давняя фишка Хабра, что есть тренд некого стека решений и считается, что он затронул поголовно всех и всюду, поскольку «остальные» либо боятся быть заминусованными, либо сидят в ридонли по принципу «будет время, посмотрю». Множество мелких разработчиков обслуживают своих клиентов вообще в одно лицо и годами сидят на устаревших стеках.

                        Возможно, это покажется странным, но толпы разрабов делают сайты и допиливают решения не используя IDE (тупо в редакторах кода), не пользуясь контролем версий (просто делая архивы рабочих папок), не используя докеров и композеров. И имя этой молчаливой массе — легион. Что в России, что за границей, огромное количество таких «легаси-разработчиков», которые годами поддерживают сайты с CRM-системы своих клиентов (в основном, малого бизнеса) по принципу «работает же».

                        Я не говорю, что это всё правильно, но большая ошибка думать, что все поголовно вышли вчера из команд Гугла или Яндекса.

                        • НЛО прилетело и опубликовало эту надпись здесь
                            +1
                            Третье дело — когда ваш проект подмножество другого проекта, которому уже много лет, где уже есть толпы разработчиков и рабочая версия языка, от которой отступать дюже дорого.

                            Просто я уже с 2016 года занимаюсь тем, что мигрирую с php 5 на php 7, а уже вышла 8 версия. И я хочу понять масштабы этой беды.
                              0

                              Глядя на наш код который работает на php 7.4 со строгой типизацией и strict_types=1 почти в каждом файле, переход для нашей компании будет не сильно болезненным. Тем более что для совместимости много чего оставили как есть и не ломали.

                                –1
                                Хорошо, что в мире существует только PHP и только ваша компания! Вы из какого отдела, коллега, что-то вас не припомню?
                            0
                            Я из такой толпы, могу добавить, что мы довольно разношерстные. Так чисто для статистики, использую Docker, git, различную автоматизацию на базе Chokidar и Puppeteer. Но при этом в Гуглах не работал и как-то обхожусь без IDE. В том смысле, что не настраиваю IDE вроде удаленной отладки, разных плагинов и т.д. Где-то не разобрался, где-то лень.
                              +1
                              Возможно, это покажется странным, но толпы разрабов делают сайты и допиливают решения не используя IDE (тупо в редакторах кода)

                              Если это VIM, то IDE не нужна, хехе :)


                              Между прочим, огромное количество народу работает и сегодня без докера

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

                                –1
                                Вот есть у меня один заказчик. Когда у него проекты стартую я, то добавляю и докер и ci/cd, использую нормальные фреймворки и IDE, пишу тесты, использую git и всё такое. Всё хорошо, но когда время от времени мне прилетает от него какой-нибудь легаси проект от другой команды у меня просто волосы дыбом встают. И это случается намного чаще, чем хотелось бы. Самое интересное, что они такие решения пихают из расчёта, что это быстрее, но моя личная практика показывает, что хорошие решения не замедляют разработку, это скорее вопрос привычки — ты привык писать хорошо, значит будешь плюс-минус писать так же по скорости как и тот, кто привык делать тяп-ляп. Но ты будешь выигрывать в долгую. Жаль, что множество людей всё ещё этого не понимают.
                                0
                                Бывают проекты без девопсов.
                                  +2

                                  Заблуждаетесь, куча народа и сегодня работает без докера, потому что не везде он нужен

                                    0

                                    Да ну много кто работает без девопсов по той же причине

                                      +1

                                      Не вижу четкой связи девопс/докер.

                                      Во многих компаниях совсем недавно смигрировали с Windows 7/8 на 10 и на Windows Server 2019 которые имеют возможность выполнять докер нативно.

                                      p.s. Если вы думаете что везде линукс, то он далеко не везде.

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

                                      p.p.p.s Помню во время работы в Job.ru мы успешно использовали Vagrant как простую замену докера на машинах разрабов

                                        0

                                        Под NET пишете? Кроме этого нигде не видел чтобы ставили винду если нет привязки к продуктам, к тому же сами МС переводят свои продукты на линуху.

                              +1

                              Как насчёт варианта: мне достался проект на не особо новых версиях, которые, в зависимости от критичности, наличия времени и требуемых усилий обновляются в рамках штатного процесса разработки?

                                –1
                                Думаю, это все же первый вариант.
                                  0

                                  Нет, существенная разница в том, что это не легаси, которое разваливается, а продукт с процессом управления сторонними зависимостями.

                                    –1
                                    Давайте мы вернемся к этому вопросу через 5 лет.
                                      +2

                                      Нашему проекту более 20 лет. Начали с java 1.2. Около 1М строк кода. Используем всё что даёт java 11. Проект постоянно рефакторится. С выходом 17 версии передём на неё.   Так что всё зависит от процесса.

                                        –1
                                        По некоторым причинам я не включил шарп и джаву в опросник. Но если вы в течение следующих 5 лет смените стэк на один из печеисленных в опроснике, то приходите, мы оба узнаем много нового, будет интересно.
                                +12
                                Это не опрос, а говно какое-то. Какой срез можно получить по таким вариантам ответов? Что они покажут?
                                  –1
                                  Ну вы распишите конкретно что не так.
                                  +2

                                  Я упомянутыми вами языками не очень пользуясь, но, если вам интересны данные из соседней комнаты:


                                  1. C++. Уволился из одной компании во многом потому, что в 2019-м они еле осилили перейти на C++14. Работу, где сегодня не было бы C++20, рассматривал бы с очень низким приоритетом (если бы искал работу на плюсах). Мой личный хобби-проект (но опенсорс) в лучшие свои годы никогда не оглядывался на версии компиляторов в популярных дистрах — в моём собранном из гита предрелизном clang есть, значит, можно пользоваться.
                                  2. Хаскель. Зависит — в своих библиотеках я на версии компилятора пятилетней давности не смотрю. Использую свежие фичи тоже относительно спокойно, но они тут нужны обычно меньше, чем свежие фичи в плюсах.
                                    0

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

                                    Да и всякий buildroot тоже не так просто заводится под кастомное железо с предрелизными версиями тулчейнов.

                                    Аналогично и с миграцие на clang, последний kernel и прочее.

                                    В теории всё должно работать, на практике - там пропатчить, там закомментировать, там пару строчек дописать.

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

                                      0
                                      Нам из комнаты рядом всё-таки надо собираться конкретной версией gcc, т.к. в новых бывают новые баги(особенно в stl, когда разработчики довольно расслабленно трактуют слово may и делают совершенно нелогично), а на старую уже костыли прикручены.

                                      Прикольно было бы прочитать это в том же 2019-м, когда мы сидели на DTS-4 с gcc 5.3, который крешился от достаточно простых generic lambdas. При всех редхатовских патчах и бекпортах.


                                      В теории всё должно работать, на практике — там пропатчить, там закомментировать, там пару строчек дописать.

                                      На кланг я в нескольких проектах мигрировал ровно для того, чтобы патчить и комментировать (мой код, не кланговский), когда он не соответствовал стандарту (gcc и clang оба делают ошибки, но разные).


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

                                      Бизнес-прожекты мне тоже разные известны. Знакомый чувак до сих пор фигачит под C++03, и ему норм, а некоторые другие люди в достаточно чувствительных к ошибке областях фигачат на C++20, и им тоже норм.

                                    +2
                                    А причём здесь вообще хостеры?) За вас что, хостер решает как вам делать проект?
                                    На хостингах шаблоны делают обычно админы которые не особо дружат с программированием, и тем более с последними фичами языков.

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

                                    Да и в чём вообще проблема? Сложно сделать docker create php:8-fpm?
                                      0
                                      А причём здесь вообще хостеры?) За вас что, хостер решает как вам делать проект?
                                      На хостингах шаблоны делают обычно админы которые не особо дружат с программированием, и тем более с последними фичами языков.


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

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


                                      О том, что человек пишет код с оглядкой на действующую инфраструктуру, и понимает, что в случае отсутствия девопса, девопсить будет он сам?
                                      +6

                                      Многие на собеседованиях любят гонять по последним фичам языка.

                                      Эта фраза задаёт дух остальной части статьи: на собеседованиях спрашивают чушь, ведь большая часть сидит на старых версиях.

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

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

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

                                        –1
                                        Эта фраза задаёт дух остальной части статьи: на собеседованиях спрашивают чушь, ведь большая часть сидит на старых версиях.


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

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


                                        У вас те версии что используются в большинстве дистров и под которые в текущий момент работает максимальное количество библиотек — допотопные?

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


                                        Опрос про мейнстрим и bleeding edge. А вы выдумали себе легаси монстра и лихо его забороли. Поздравляю с победой.
                                          0

                                          Благодарю за поздравления :)


                                          У вас те версии что используются в большинстве дистров и под которые в текущий момент работает максимальное количество библиотек — допотопные?

                                          Абстрактно отвечать не готов. Часто да, язык в дистрибутиве операционный системы не самый свежий.


                                          Опрос про мейнстрим и bleeding edge. А вы выдумали себе легаси монстра

                                          Судя по комментариям именно в легаси монстрах этот вопрос и возникает.

                                        0

                                        Во-первых спрашивать про какие-либо фичи на собеседовании (и новые, и старые) – это антипаттерн. Собеседование нужно для выяснения опыта кандидата, а не проверки знания наизусть методички языка.

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

                                          +3
                                          Есть компании которые ещё не успели мигрировать на более новые версии собеседований!
                                          0

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

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

                                          К тому же обновление до последних версий очень желательно. Это связано в первую очередь с поддержкой языка и обновлениями связаннвюыми с безопасностью (но это уже другая тема)

                                            –1
                                            А во что можно развить эту идею? При условии, что в каждом конкретном случае мы по-разному ограничены ресурсами, ситуацией, кадрами. Максимум можно попытаться понять что на самом деле творится в отрасли.
                                              0
                                              В описание личного опыта, например. Описать свой контекст, причины выбора того или иного инструмента, описать ситуацию и доступные ресурсы.

                                              А вот то что творится в отрасли, гораздо сложнее понять и разобраться.
                                            0
                                            Ну вот у нас семейство больших промышленных Embedded-Linux проектов с многолетней историей, перешли c С++11 на C++17 и всеми командами нарадоваться не можем, и да, мы реально используем много новых фич из новых стандартов. Разрабатывать стало приятнее, код стал гораздо читаемее и интуитивно понятнее. С интересом и надежной смотрим на C++20, когда его полностью будут поддерживать компиляторы.

                                            Некоторое время назад имел отношение к JS-разработке — там все еще веселее. Когда был переход от ES5 к ES6 с добавлением промисов, async/await, arrow functions, нормальных классов и очень многих других вкусностей, некоторые люди тоже бурчали, мол, «напридумывали всякого, вообще наплевать.» А если сейчас вы про всё это не знаете и не используете, вас просто посчитают профнепригодным разработчиком, и правильно сделают. Поэтому принцип простой: за новыми фичами языков стоит следить и стоит их понимать. Потому что это «новые фичи» в итоге станут мейнстримом.
                                              +1
                                              А как же безопасность? Обновления — это не только синтаксический сахар и новые фичи, это еще и фиксы уязвимостей. В том же PHP обновление — это одна из рекомендаций безопасности в официальной документации пруф
                                                0
                                                В поддерживаемых дистрибутивах тоже регулярно выпускаются обновления безопасности.

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое