Как стать автором
Обновить
2
Карма
0.1
Рейтинг
Վիտալի Լագունով @vitaliy2

Пользователь

Js, трюки, наблюдения, бенчмарки и как Лиса уничтожает Хром. Я протестировал всё, что вам было лень

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

Js, трюки, наблюдения, бенчмарки и как Лиса уничтожает Хром. Я протестировал всё, что вам было лень

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

Начнём с начала:

Есть ли у переменной оверхед?

  1. Во-первых, код, хоть и даёт одинаковый результат, но код неидентичен, т.к. в первом варианте мы проходимся по новым массивам, а в остальных по исходному.

  2. Большинство времени в этом тесте тратится на создание массива, его заполнение и проход по нему, т.к. в нём аж 65 тыс элементов, а переменная всего лишь одна. Из-за этого отличия должны быть в пределах погрешности. Если у вас есть отличия, должна быть разгадка. Дело явно не в просто "создании переменной". Найдите эту разгадку и расскажите читателям, но не вводите читателей в заблуждение. Скорее всего разгадка в первом пункте, т.к. мы проходимся по разным массивам.

Есть ли разница между var, let, const или их отсутствием?

  1. Во-первых, переменная "g" является частью потенциального замыкания. Т.е. мы тестируем не разницу между const, let и var, а разницу между ними в сочетании с потенциальным замыканием. Потенциальные замыкания — очень сложная тема в Javascript, и здесь крайне желательно очень глубокое понимание языка, а также таких общих вещей, как организация стека вызовов функций, регистры процессора, принципы работы компиляторов, принципы компиляции и оптимизации переменных и т.д.

  2. Такие вещи нужно тестировать в цикле, особенно если код у вас действительно в каждом тесте компилировался заново (в чём я сомневаюсь). В противном случае Вы рискуете получить просто время компиляции. Если цель была показать именно это, то нужно было явно это указать. Но нам в первую очередь важно не время компиляции кода, а время исполнения тех строк кода, которые могут быть вызваны многократно, т.к. чем больше они вызываются, тем больше они влияют на производительность. Основное влияние оказывают многократно вызывающиеся строки. В Вашем же тесте строка вызывалась только один раз, из-за чего она не получила должные оптимизации, которые были бы при многократном вызове. Вы должны знать, что количество вызовов влияет на оптимизацию в Javascript.

  3. Если мы используем const, с большой вероятностью мы создадим переменную один раз, а читать её будем много раз. В Вашем тесте такой сценарий не учитывается.

Bounce pattern, Switch case, длинная тернарка

  1. У Вас вышло, что Chrome позволяет вызвать функцию bounce 15 млрд раз в секунду. Если Вы смогли на каком-то из тестов получить более 5 млрд операций в секунду на частоте 5 ГГц, то Вы должны отдельно объяснить это, т.к. обычно это невозможно. Например, Вы можете сказать, что это благодаря векторным инструкциям, которые позволяют делать сразу много операций за такт. Но скорее всего Ваши тесты просто некорректны, и, поскольку Вы вычисляете одно и тоже, да ещё и игнорируете результат, Ваши вычисления опускаются или сокращаются. В итоге Вы хотели потестить switch case vs if, а в реальности потестили совсем другое. К switch case это никакого отношения не имеет.

  2. Там, где Вы запускали один раз, таких гигантских значений нет. Но Ваша проблема опять же в том, что Вы тестируете на одинаковых значениях, что позволяет убрать лишние вычисления. Такие тесты не дают представления о скорости работы if / switch case. +Как я говорил выше, запускать один раз — не лучшая идея.

Инициализация массива

  1. Ужасный тест. Здесь в двух вариантах Вы делаете чтение пропущенных элементов массива. Это абсолютно отдельная тема. Другими словами, Вы тестировали абсолютно не то, что указано в заголовке, вводя читателей в заблуждение. Кроме того, это является антипаттерном — обычно мы не читаем отсутствующие элементы массива, а вначале инициализируем массив. Другими словами, такого кода нужно избегать. Глупо тестировать код, которого не должно быть в продакшене.

Конкатенация массивов

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

  2. Если Вы увидели, что "reduce forEach push" быстрее, чем "forEach forEach push", стоило упомянуть, что, возможно, это связано с потенциальным замыканием.

  3. flat даже в Firefox работает значительно медленее. Либо эту функцию ещё просто не успели прооптимизировать, либо в её спецификацию входит что-то такое, что заставляет её работать медленнее. Нужно добавлять такие комментарии в статью, предварительно посмотрев доки flat().

Итерация по массиву

  1. Вы тестировали не итерацию по массиву, а именно создание массива. Это совсем разные вещи с разной производительностью. Не вводите читателей в заблуждение.

Содержит ли строка значение

  1. Простите, но в Вашем тесте Firefox выдал 32 млрд операций в секунду, при том что у Вас процессор на частоте 5 ГГц (хотя эти 32 млрд можно пооптимайзить). А разгадка как всегда в том, что Вы по факту запускаете одинаковый код, и Firefox просто тупо заменяет его на результат вычислений. Как только Вы начинаете добавлять вариативность или немного модифицируете код, производительность indexOf внезапно вместо 1 млрд запусков в секунду начинает быть такой же, как и у других методов, которые Вы привели. Никакой магии в реализации indexOf нет.

Такая же ошибка есть и практически во всех остальных тестах.

Преобразование строки в число

  1. Абсолютно такая же ошибка. Firefox в данном тесте убирает это преобразование и просто сразу подставляет ответ. Никакого 1 млрд преобразований в секунду нет.

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

Лисичка похорошела

Вы лишь показали, что Firefox иногда может вырезать лишний код, если одно и то же зачем-то запускается миллиард раз (т.е. в случаях, когда проводятся бесполезные вычисления). Это не идёт в плюс Firefox. У Firefox'а есть бесконечное количество других плюсов, которые делают его лучшим браузером, но Javascript-движок — не один из них.

JS сделан за неделю на коленке

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

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

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

Антирейтинг 2022

Комментарии в статьях по ссылкам.

Почему Starlink от Маска — это скам

  1. «Тарелки продают себе в убыток на $800» — при прибыли, сопоставимой со $100/мес, это приемлемо. К тому же тарелки дешевеют (вначале они стоили вообще $3000).

  2. «3% спутников в год выходят из строя досрочно» — 1) Получается, за указанные Вами 5 лет досрочно выходят из строя только 15% спутников, а остальные должны выйти из строя позже. Это противоречит указанному Вами сроку службы "5 лет" — вероятно, срок больше. 2) Со временем стоимость вывода спутников будет снижаться (см. Starship). Также, вероятно, будет снижаться стоимость и самих спутников (либо же будут улучшаться их характеристики). В итоге стоимость обслуживания может быть не $10 млрд в год, а значительно меньше.

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

  4. «550 км от Земли даёт теоретический пинг в 3.7 мс» — абсолютно неверно. Чтобы передать сигнал туда обратно, если упростить, нужно вначале передать сигнал на спутник, потом со спутника в датацентр на Земле, потом с датацентра снова на спутник, а потом со спутника клиенту. Между Землёй и спутниками получается 4 передачи сигнала вместо двух классических, что даёт минимальный пинг 7.3 мс. При этом в реальности скорее всего спутники будут висеть не прямо над головой, а наискосок, что даст теоретический пинг, добавляемый спутниками, не менее ~10 мс. Тем не менее, суммарный пинг может быть даже в разы ниже, чем у оптоволокна (см. ниже про лазерную связь).

  5. «Если спутник даёт 20 Гбит/с, то он может обслужить всего лишь 1000 клиентов, давая по 20 Мбит/с» — большинство клиентов не используют 20 Мбит/с круглосуточно, реальное потребление может быть около 1 Мбит/с. Более того, далеко не факт, что даже во времена активного использования они будут потреблять именно 20 Мбит/с. Например, Youtube в Full HD — это до 6 Мбит/с, в 4K — до 24 Мбит/с. Впрочем, среднее потребление трафика постоянно растёт. Даже если сегодня пользователи потребляют среднесуточно 1 Мбит/с, то через 3 года это уже может стать 2 Мбит/с, а через 10 лет и все 5 Мбит/с. Starling скорее всего не позволит людям шиковать, смотря видео в 4K и получая другие прелести. Впрочем не исключаю, что это немного может компенсироваться тем, что будут выводиться более высокотехнологичные спутники, дающие большую полосу пропускания.

  6. «42 000 спутников это по максимуму 42 млн людей» — как сказано выше, это скорее не 42 млн, а 800 млн.

  7. «95% спутников будет пролетать ни над чем, что превратит 42 млн в 2 млн» — 1) С учётом поправки выше скорее получится 40 млн. 2) Мне кажется, вы немного занизили цифру 5%. Одна только Северная Америка занимает 5%. Также я бы внимательнее посчитал страны за пределами Северной Америки и Европы. Мне сдаётся, что всё-таки охват ближе к 10%+, что даст нам 80 млн пользователей, которых можно обслужить (до $95 млрд выручки в год).

  8. «Уже сейчас пользователи в Лос-Анджелесе получают всего 36 Мбит/сек загрузки» — Вы так говорите, будто это мало. Да, это меньше, чем в проводном Интернете, но: 1) Итак понятно, что спутниковый должен быть хуже, 2) На самом деле у огромного числа людей нет даже близко хорошего проводного Интернета. Не судите по себе.

  9. «По факту, данные для передачи они берут у всё того же проводного интернета» — неправда. Начиная с определённой версии все спутники могут работать в режиме передачи от спутника к спутнику с помощью лазерной связи. Это позволяет значительно сократить суммарный пинг. Например, до пинг от Европы до Японии через оптоволокно составляет 300/150 мс, а вот Starlink теоретически может предложить порядка 75 мс. 10-20 мс будет тратиться на пинг от спутников до Земли и ещё 50+ мс на передачу сигнала от Европы до Японии. Улучшение происходит по следующим причинам: 1) В оптоволокне сигнал идёт в 1.5 раза медленнее, чем обычно, 2) Оптоволокно никогда не идёт напрямую, оно идёт по определённым маршрутам, которые обычно в 1.5–3 раза дольше прямого маршрута. 42 тыс спутников же вполне могут передавать сигнал практически по прямому маршруту. Тем не менее, я не знаю, сколько данных они могут передавать таким образом, а также по какому алгоритму они будут выбирать, передавать ли сигнал по Земле или по спутникам. В данный момент лазерная связь пока выключена.

  10. «Похожие проекты либо обанкротились, либо уменьшили количество спутников» — 1) Я не уверен, насколько они похожие. Мне кажется, они предоставляют значительно более плохое качество при значительно более высокой цене. 2) С того времени люди стали больше пользоваться Интернетом.

  11. «Starlink вредит астрономии» — астрономия делает жизнь людей лучше. Starlink делает жизнь людей лучше. Я думаю, что астрономы смогут убрать посторонние объекты из наблюдений. Если это не так, хочется исследований на эту тему, которые явно бы сказали, что это ставит крест на астрономии. Лично я в этом очень сильно сомневаюсь.

  12. «Стоит ли этого более низкий пинг для очень небольшой части населения?» — 1) А такая ли уж небольшая часть? Мне кажется, Вы столкнулись с ошибой выжившего: если у меня хороший Интернет, значит он у всех хороший. Проблема нормального доступа к Интернету — актуальная проблема для значительной части населения планеты. Не все живут в городах.

    2) Это даёт не только низкий пинг, но и значительно более высокую пропускную способность. Малое количество спутников, да ещё и к тому же на высокой орбите, не могут обслужить большое количество клиентов. Это как сравнивать wi-fi или 5G с мобильным Интернетом: одна вышка мобильной связи, установленная в городе, может давать большую пропускную способность, но она делится на миллион человек, в итоге на каждого остаются жалкие крохи. А вот wi-fi вполне может дать в 1000 раз большую полосу, причём бесплатно, за счёт того, что действует на маленькое расстояние, и таких точек много. Другими словами, чтобы увеличить пропускную способность, нам нужно сужать радиус действия и увеличивать количество точек/спутников. Без этого большой полосы на большое количество людей не будет. Это не только ради пинга.

    3) Даже если Вы правы, и Starlink не сможет набрать больше 10 млн пользователей, это всё-равно $12 млрд выручки в год (при стоимости обслуживания в зависимости от количества спутников, как я думаю, до $1–5 млрд/год).

  13. «У кого нет проводного Интернета могут использовать 5G/4G» — 5G обычно есть только в густонаселённых местах, в таких местах спутниковый Интернет итак работает плохо. А вот в остальных местах у нас до сих пор нет безлимитных мобильных тарифов. Даже более того: таких тарифов даже нет часто нет на проводном Интернете. 20 ГБ в месяц? Реально? Я выше считал, что средний пользователь Starlink может потреблять 1 Мбит/с среднесуточно. Это немного немало 300 ГБ/мес. Это всё же больше, чем даёт мобильный Интернет. И это при том, что мобильный Интернет может быть доступен, а может быть недоступен.

Также как отметили другие комментаторы:

  1. Стоимость запусков для Starlink ниже, чем для сторонних клиентов.

  2. Стоимость запусков у SpaceX снижается.

  3. Стоимость оборудования будет снижаться благодаря массовому производству.

  4. Расходы на мобильную связь в пересчёте на мегабит, вероятно, значительно больше.

  5. Вы сильно недооцениваете количество людей, живущих вне мегаполисов.

Если подытожить, то мне скорее сдаётся, что охват этой штуки при 42 тыс спутниках — 80 млн пользователей по 1 Мбит/с, которые могут приносить $95 млрд/год дохода, при этом затраты будут составлять до $5 млрд в год. При этом в реальности пользователей будет меньше, т. е. доходность всё-таки будет ниже. При этом если будет очень нужно, можно также снизить количество спутников в несколько раз без значительного ухудшения характеристик. Вряд ли будут сильные отличия по пингу. Другими словами, мне проект всё-таки видится очень успешным.

С чем соглашусь:

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

  2. Возможно, что Вы говорите правду по поводу тепловыделения и помех от деревьев.

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

  4. Полностью соглашусь с бредовостью идеи туннелей для машин.

Частично соглашусь с:

  1. «Реальный смысл платить за Starlink есть только у людей, не имеющих проводного Интернета» — почти. 1) Во-первых, правильнее сказать «не имеющих нормального проводного Интернета». Причём я не соглашусь, что это «небольшой процент рынка» (хотя даже 1% от 1 млрд — это 10 млн человек). 2) Во-вторых, всё-таки могут быть и дополнительные варианты использования: снижение пинга, использование в качестве запасного Интернета, использование в поездках и т. д.

  2. «Каждые 5 лет вокруг Земли будет появляться 42 000 новых кусков металла» — как Вы сами и написали, спутники всё-же сами выводятся с орбиты после того, как перестают постоянно корректировать её, т. е. загрязнения быть не должно. Также я подметил выше, что с Ваших собственных слов, это всё же не 5 лет, а больше (Вы сообщаете противоречивую информацию). Но я соглашусь, что хочется видеть больше экспериментов с выводом спутников.

Переезд в Японию

Наоборот, в детских это норм. Но это почему-то часто встречается в произведениях, которые рассчитаны явно НЕ на детей. Злодеи если и есть в произведении, тогда должны быть не глупыми, а хоть с какой-то мотивацией. Это же не детский комикс. Потому что у меня такое чётко ассоциируется с детской продукцией.

Переезд в Японию

Уже семь:

  1. Несоблюдение собственных правил, например, 迷惑を掛けないように (не доставлять неудобств окружающим). Это правило нереально железно. Тем не менее можно часто встретить курение в некоторых заведениях, хотя это грубое нарушение этого правила.

  2. Вера в гороскопы, группы грови и т. д. Многие могут испугаться 幽霊 (это слово не переводится, может обозначать дух умершего, приведение, призрак и т. д.), хотя понятно, что их не существует. Разумеется мы говорим не про детей, а про взрослых.

  3. Запрет продажи порнографии без цензуры на территории Японии. Это нарушение прав как актёров, так и потребителей, что мега странно. А поскольку в Японии нарушение чьих-то прав — это табу, то это вдвойне странно.

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

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

  6. Иногда зарплата не зависит от твоих успехов, а зависит от возраста, времени работы в компании и т. д.

  7. Распространена дискриминация при приёме на работу по тому, являешься ли ты только выпустившимся из университета (она приводит к ужасным последствиям для всей Японии, объяснять почему — долго). Разумеется, рынок решает этот вопрос и проблема со временем становится слегка менее актуальной. Странность заключается в том, что скорость, с которой здесь «рынок решает», примерно в 10–20 раз ниже, чем мог бы предположить какой-нибудь экономический аналитик или здравомыслящий человек. PS. Это немного отличается от предыдущего пункта, т. к. в предыдущем пункте был сделан акцент именно на то, что в некоторых компаниях часто твои успехи не влияют на твою зарплату, а здесь акцент сделан на скорость решания рынком похожей и частично связанной проблемы. Другими словами странно как и наличие подобных проблем как таковых, так и скорость их уменьшения.

Странностей немало, но в других странах обычно счёт идёт на сотни, а где-то может и на тысячи.

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

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

Если не Вы, то значит Ваши соратники постоянно жалуются. Stanislavvv сейчас написал значит, он тоже отвечает мне.

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

Для тех же непрофессиональных задач 8 за глаза

Вы противоречите сами себе. То говорите, что программисты пишут слишком прожорливый софт, и 8 ГБ не хватает, то говорите, что 8 ГБ за глаза.


Определитесь, пожалуйста.

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

иногда память впаяна

На помойку сразу такой ноут.


А нахера это тому, кто не живёт в компе?

TreeStyleTab слышали?


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

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

Любой — не значит, что с помойки или мошенников надо брать, даже за 60к.

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

Но ведь он самый дешёвый, мне в 3к обошёлся.

Дешёвый не значит плохой. Измеряется же не по цене, а по характеристикам.


Пойду 4к рендерить ))

Имеется ввиду для непрофессиональных задач. Для профессиональных задач требования всегда отличаются. Выше мне уже пытались предъявить претензию, и я ответил: я говорю именно о непрофессиональных задачах.


Думаю, с 8ГБ сейчас самая продаваемая конфигурация.

Если вдруг так действительно есть, не надо покупать такие. Если кто-то купил, он сильно ошибся.

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

По Вашей логике нормальный смартфон — это со 128 МБ оперативки и 1 ГБ картой памяти.


Покупать ноут с 8 ГБ или меньше ни в коем случае нельзя. Если купили, доставить память. Это можно сделать в любой момент. Не хватает памяти — доставляешь. 16 ГБ стоят 4к.


покажите ноут, куда можно вставить 4 планки памяти и заодно сколько он стоит.

Любой. Яндекс-маркет откройте, там найдёте.


БОльшей части народу положить на объём памяти

Ну так значит проблемы с памятью нет, это очень хорошо. Просто есть много людей, которые жалуются, что программы много жрут и т. д. Сейчас уже даже браузеры, к счастью, перестали много жрать. Имея 64 ГБ можно открыть 600 активных вкладок, вполне нормально.

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

А мой с 8 так вообще ультралоуслабый?

Да, Ваш ультраслабый.


Ryzen 1200

Если не для игр, на самом деле нормальный проц. 4 ядра, 3.1 ГГц, современная архитектура. Мощным он не является, скорее слабый, но слабый по сравнению с другими процами, а в абсолютном значении более чем норм. Если не для игр, вполне норм.


комп может быть вполне новым

Чуваки, которые покупают новый комп с 8 ГБ? Ну это клиника.

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

В 2009-м году норм было 2Гб, 4Гб — таки топ.

Я говорю почти также: 4 ГБ на мощных компах, 2 ГБ на слабых.


А вообще — о каких компах речь?

Об обычных пользовательских. 32 ГБ для мощных, 16 ГБ для слабых.


И не решающего, за какой комп его посадят на работе.

Ну на слабом компе так и так должно быть 16 ГБ (4 тыс рублей). На крайний случай самому доставить, если комп старый, а начальство не хочет обновить память.


без возможности замены памяти

Если можно вставить меньше 4 плашек с возможностью замены, это сразу нужно обходить стороной.

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

4 ГБ было норм в 2009 году, очевидно, сейчас нужно примерно в 8 раз больше.


И если где-то и продаётся, не вижу смысла покупать, т. к. можно просто взять свой ноут или комп десятилетней давности и юзать его, нет смысла обновлять. Помню, у меня был такой ноут (сейчас я уже не помню, как он выглядел — давно это было).


По поводу ограниченного бюджета: я привёл две цифры — для продвинутого компа и для слабого компа как раз для пользователей с ограниченным бюджетом. В данный момент на слабом компе указана цифра 16 ГБ, это стоит около 4 тыс рублей — любой может позволить себе.

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

Слишком много контента

Прямо адская проблема :)
Если не надо, не смотри :)


Много подписок

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

Мне не нравится то, во что превращается PHP

Я не знаю PHP, но в других языках нельзя красиво использовать функциональное программирование без стрелочных функций. Наглядный пример на JS:


//Умножаем все элементы массива на 2:

//Со стрелочными функциями — всё норм:
a = a.map(v => v * 2);

//Без стрелочных функций выглядит просто ужасно, это не функциональное программирование, а уродливая фигня:
a = a.map(function(v) { return v * 2; });

Т. е. как минимум в JS без стрелочных функций никуда. В PHP не знаю как.

Мне не нравится то, во что превращается PHP

Стрелочные функции — это в первую очередь про возможность функционального программирования. Без них это практически нереально (код выглядит ужасно).

Переезд в Японию

Я давно знаком с культурой Японии, и один раз решил посчитать странности — смог насчитать 5 штук (мог что-то забыть). Это немало, но для сравнения, в России количество странностей бы измерялось сотнями.


Как по мне Япония — одна из самых менее странных стран мира.

Мне не нравится то, во что превращается PHP

Было много жалоб на увеличение количества фич, а соответственно усложнение порога входа. Вот моё мнение по этому вопросу:


  1. Если Вы пишите на языке (любом) одни, можно писать в старом стиле. В этом случае новый синтаксис не увеличивает порог входа, т. к. никто не заставляет Вас использовать его. Чужой код Вы не редактируете.
  2. Если Вы пишете в команде, значит, с большой вероятностью, Вы пишете профессионально, а значит, во-первых, Вы должны профессионально знать язык, а во-вторых, весь новый синтаксический сахар принесёт намного пользы, чем заберёт времени на изучение, т. к. раз Вы пишите профессионально, значит пишете много, и изучение с лихвой окупится. Как итог, в таких условиях синтаксический сахар — однозначная польза.
  3. Третий вариант — Вы пишете в команде, но при этом непрофессионально и очень мало. Например, Ваш основной язык совсем другой, но Вас попросили помочь на том языке, который Вы знаете плохо. Лично мне такая ситуация кажется странной — зачем просить помогать человека, у которого совсем другая специализация. Но если вдруг такая ситуация возникла, синтаксический сахар нанесёт вред Вам, т. к. увеличит время изучения языка.
  4. Четвёртый вариант — Вы просто играетесь с языком, например, нашли какой-то скрипт, и решили чуть подправить его или исправить баг. Язык при этом учить Вы не хотите, разве что поверхностно. Программировать на этом языке Вы тоже не собираетесь. Здесь обильное наличие возможностей также нанесёт Вам вред — Вы либо не сможете отредактировать чужой код, либо придётся потратить больше времени на изучение языка.
  5. Пятый вариант — Вы зачем-то хотите стать профессионалом в очень большом количестве языков, и Вас расстраивает их сложность.
  6. Шестой вариант — Вы учитель, и хотите как можно больше сократить свою работу.

В итоге во 2-м случае однозначная польза, в 3–6 — вред, в 1-м — нейтрально. Лично я считаю, что в среднем достоинства 2-го случая значительно перевешивают недостатки 3–6 случаев, а значит новые полезные возможности, позволяющие писать более читабельный или красивый код, либо упростить написание кода — это хорошо.

Информация

В рейтинге
3 159-й
Откуда
Yerevan, Yerevan, Армения
Зарегистрирован
Активность

Специализация

Fullstack Developer, Web Developer
Lead
JavaScript
Node.js
HTML
CSS
Web development