Comments 61
+1. Да и причём тут вообще Javascript? Подобный трэш можно написать на любом языке(вспомним знаменитое #define true false
).
Трешовый код может быть в сторонних модулях, которые в большом количестве используются в проектах на JavaScript
Как и в других языках
И как вы от этого обезопаситесь? Проблема надумана полностью. Статью можно заменить одним предложением: "Чтобы говна не было, не испражняйтесь"
Я ответил в комментарии выше
Источник проблемы надуманный, по сути в статье мы сами создали источник проблем, и потом героически говорим так делать нельзя, можно было просто сразу источник не создавать. Источник проблемах в сторонних модулях, это уже гораздо интереснее. Но от всего не обезопасишься, по сути вам никто не мешает, выпустить модуль с "evil код", только будет ли кто им пользоваться.
Всегда нравилось как люди рассуждают с позиции своего Я :) Зачем учить людей программировать и писать о возможностях языка? Это же и так очевидно. Зачем маленький ребенок засунул гвоздь в розетку, а потом плачет, очевидно же что его ударит током :)
А если отвлечься от лирики, автор статьи с самого начала сообщил что он намеренно рассматривает «темные стороны языка» которые воспроизводятся и на других языках. Где вы тут увидели героизм и связь с реальными кейсами непонятно :)
А если отвлечься от лирики, автор статьи с самого начала сообщил что он намеренно рассматривает «темные стороны языка» которые воспроизводятся и на других языках. Где вы тут увидели героизм и связь с реальными кейсами непонятно :)
Вот же классика
Классика

Linux как воплощение зла
rm -rf /
Windows как воплощение зла
— Добро пожаловать в Windows Vista
Программист как воплощение зла
— Настрой мне, пожалуйста, принтер
Кукуруза как воплощение зла

RuVDS как воплощение зла
Красиво расписать бесполезную статью в качестве пиара
У любой технологии есть свои хейтеры, например многие незаслуженно ненавидят PHP.
Настолько ли незаслуженно?
И что вы хотите сказать этой ссылкой? Автор недвусмысленно пишет
Даже человек, который осознает преимущества этого языка, все равно пишет о том, что у него куча проблем. Так что ничего эта ссылка не опровергла, а наоборот, лишний раз подтвердила тезис о том, что не очень хорошая репутация у РНР вполне по делу.
На самом деле с большинством написанного я соглашусь. PHP – противоречив. Многословен. Там действительно есть примеры неадекватного поведения. У него есть много проблем. Порой он уродлив. Иногда он неуклюж в обиходе. Многое оставляет желать лучшего.
Даже человек, который осознает преимущества этого языка, все равно пишет о том, что у него куча проблем. Так что ничего эта ссылка не опровергла, а наоборот, лишний раз подтвердила тезис о том, что не очень хорошая репутация у РНР вполне по делу.
У любого языка куча проблем. Но это не значит, что их надо ненавидеть и рассказывать об этой своей ненависти всем вокруг.
Мне вот органически неприятно писать на JS, например, но я же не пытаюсь навязать свое мнения тем, кому он нравится. Тогда почему те, кому не нравится PHP, pascal, Java, C#, любой другой язык, позволяют себе выливать на окружающих тонны своей ненависти?
Мне вот органически неприятно писать на JS, например, но я же не пытаюсь навязать свое мнения тем, кому он нравится. Тогда почему те, кому не нравится PHP, pascal, Java, C#, любой другой язык, позволяют себе выливать на окружающих тонны своей ненависти?
А что плохого в обсуждении недостатков технологий? Я такие статьи люблю уже хотя бы за то, что они обнажают грабли малознакомых технологий, с которыми может быть случится столкнуться.
Обижаться на то, что какой-то негодяй ругает твою любимую технологию — это же бестолково и иррационально)
Обижаться на то, что какой-то негодяй ругает твою любимую технологию — это же бестолково и иррационально)
Пафосное и, зачастую безосновательное, клеймение позором и обсуждение недостатков — это несколько разные вещи.
Второе, в большинстве случаев, интересно и конструктивно.
Первое — «бестолково и иррационально» и вызывает чувство, что вляпался во что-то мерзкое.
Второе, в большинстве случаев, интересно и конструктивно.
Первое — «бестолково и иррационально» и вызывает чувство, что вляпался во что-то мерзкое.
Одно дело, если вас называют «бестолковым %LANG%шником», совсем другое — если "%LANG% — ни на что не годный микроскоп с интегрированным гвоздодёром". Статейка про «фрактал плохого дизайна» относится как раз ко второй группе, как можно ее считать «клеймением позором» тех, кто этот язык использует — это для меня вопрос. Стыд возникает тогда, когда человек не в силах изменить обстоятельства. Вы ведь, по вашим словам, принимаете критику, но продолжаете использовать язык. Значит на это есть достаточно весомые причины.
Вот вам прямая цитата
Третий абзац сверху
Если вы считаете, что это конструктивная критика не переходящая на личности, то могу ответить только еще одной цитатой из той же нетленки:
И я никогда не встречал PHP-разработчика, который может сделать тоже самое на PHP. Но я натыкался на достаточное количество тех, кто сразу начинает извинятся за что-то и всё, что делает PHP. Такое мышление ужасает.
как можно ее считать «клеймением позором» тех, кто этот язык использует — это для меня вопрос
Третий абзац сверху
PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Если вы считаете, что это конструктивная критика не переходящая на личности, то могу ответить только еще одной цитатой из той же нетленки:
честно, я не могу представить, как мы с вами в чём-либо можем достигнуть согласия.
Если вы считаете, что это конструктивная критика не переходящая на личности
Я считаю, что это личное оценочное суждение о технологии и немного бугурт в сторону фанбоев. Да, конструктива здесь не много, но и поливания грязью огульно всего PHP-сообщества я здесь не вижу.
Кстати, я действительно неоднократно сталкивался с людьми, которые дальше прикладного программирования веб-стека не особо ориентируются, но уже вполне считают себя достаточно видавшими виды, чтобы судить о глобальных тенденциях рынка и конечно же свято уверены, что круче их инструментов нет ничего и быть не может.
Если же вы этим не болеете, тогда я более, чем уверен, что эти «лучи добра» направлены мимо вас.
Значит у нас с вами несколько разные представления о границах допустимого в цивилизованной дискуссии. Бывает.
Мне сейчас можно оскорбиться?)
Мы с вами говорим о разных вещах.
Вот представьте, сидит человек в ресторане, ест стейк. И тут из-за соседнего столика подходит фанатичный веган и начинает размахивать своими лозунгами. (ничего не имею против веганов, пока они не начинают агрессивно навязывать свое мировоззрение).
В такой ситуации наш подопытный скорее не оскорбится, а удивится и попытается объяснить, что на вкус и цвет товарищей нет, что он прекрасно знает про мучения животных и несомненный вред жареного, но, черт возьми, он хочет есть стейк, а не отбиваться от фанатика, который пытается втирать ему какую-то дичь.
Вот представьте, сидит человек в ресторане, ест стейк. И тут из-за соседнего столика подходит фанатичный веган и начинает размахивать своими лозунгами. (ничего не имею против веганов, пока они не начинают агрессивно навязывать свое мировоззрение).
В такой ситуации наш подопытный скорее не оскорбится, а удивится и попытается объяснить, что на вкус и цвет товарищей нет, что он прекрасно знает про мучения животных и несомненный вред жареного, но, черт возьми, он хочет есть стейк, а не отбиваться от фанатика, который пытается втирать ему какую-то дичь.
Фактически вы приходите на кулинарный форум, где на одном из стендов рядом новоиспеченный веган вещает о том, что он жил в обмане всю жизнь и возмущается, что эти «мясоеды» мясо любят лишь потому, что ленятся подобрать себе сбалансированный растительный рацион. И… говорите, что вам неприятно это слышать.
Но что же вам мешает пройти мимо стенда и не обращать на чудака внимание, как наверняка поступили бы в реальной жизни? Или тут дело во внутреннем конфликте?
Но что же вам мешает пройти мимо стенда и не обращать на чудака внимание, как наверняка поступили бы в реальной жизни? Или тут дело во внутреннем конфликте?
Nope :)
Если проследить ветку с самого начала, то в разговоре за способы готовки, кто-то сказал «кто-то вообще стейки на сковороде жарит и ничего!» И тут появляется веган.
Если проследить ветку с самого начала, то в разговоре за способы готовки, кто-то сказал «кто-то вообще стейки на сковороде жарит и ничего!» И тут появляется веган.
Если проследить ветку с самого начала, то в разговоре за способы приготовления стейков
Хм. Эта ветка начинается с троллинга о том, что PHP-могет, а кто считает иначе — не прав. Хотя статья вообще не про PHP. Но о своей любви заявить было нужно. Очевидно, это был вызов на дуэль, который мигом приняли.
попытается объяснить, что на вкус и цвет товарищей нет
На вкус и цвет — это ставить "$" перед переменными или табы с пробелами. Но ведь бывают дыры в дизайне, которые бывают вполне объективно хуже реализованы, в сравнении с другими языками. Популярные языки прошли длинный путь развития, они неизбежно будут содержать в себе тонны устаревших конструкций и поддерживать весь ужас, написанный за годы развития.
Дженерики в Java, макросы в Си, выделение блоков отступами в Python, TMTOWTDI в Perl, в целом JS ;) — для любого языка можно найти спорные реализации/решения.
И тянутся они от версии к версии, где-то как груз обратной совместимости, где-то как «фишка языка», оправдываемая только любящими писать на них.
Да, изначальный дизайн PHP не то, чтоб хорош, но к его чести можно сказать, что он активно развивается и улучшается. Начиная с 5.6 на нем можно писать хорошо, удобно и быстро, не сталкиваясь в повседневной жизни с 90% того, что описано в хейтерской статье — было бы желание.
И тянутся они от версии к версии, где-то как груз обратной совместимости, где-то как «фишка языка», оправдываемая только любящими писать на них.
Да, изначальный дизайн PHP не то, чтоб хорош, но к его чести можно сказать, что он активно развивается и улучшается. Начиная с 5.6 на нем можно писать хорошо, удобно и быстро, не сталкиваясь в повседневной жизни с 90% того, что описано в хейтерской статье — было бы желание.
Ну вот те же дженерики джавы и сишарпа — это вкусовщина или все же объективный недостаток дизайна первой? Лучшее, что вам ответит на это джавист: «Потому что это не нужно».
Бинго!
(сарказм) А еще она многословна, глючна, тормозна, ничего нормально не напишешь без многомегабайтных спрингов и вообще не компилится в нативный код — приходится JVM повсюду таскать.
Собственно единственное, что я пытался донести — это то, что статьи в стиле «Говно! Говно! Роза! Роза? Наверное пахнет как говно! Чтоб вы все сгорели!» — в принципе не могут нести никакого конструктива. И, так долго обсуждаемый нами, текст относится именно к такому типу, к сожалению.
(сарказм) А еще она многословна, глючна, тормозна, ничего нормально не напишешь без многомегабайтных спрингов и вообще не компилится в нативный код — приходится JVM повсюду таскать.
Собственно единственное, что я пытался донести — это то, что статьи в стиле «Говно! Говно! Роза! Роза? Наверное пахнет как говно! Чтоб вы все сгорели!» — в принципе не могут нести никакого конструктива. И, так долго обсуждаемый нами, текст относится именно к такому типу, к сожалению.
Вместо того, чтобы смотреть на говно с розами, можно было бы черпать новую информацию об интересующих технологиях)
Люди делятся опытом насчет тонких мест и краевых условий, пишут бенчмарки, кидаются пруфами, лезут в исходники библиотек… Это все абсолютно бесплатно и скорейшим образом, чтобы максимально доходчиво показать, насколько же выебобонекомпетентны. Это же прекрасно и одна из главных целей существования хабра.
А разводить холивары с упоротыми противниками, которые по сути дела ничего сказать не могут — это уже вопрос к себе: «Что ты тут забыл?». Поэтому нет ничего глупее, чем ввязываться в холивары с единственной целью — восстановить справедливость.
Люди делятся опытом насчет тонких мест и краевых условий, пишут бенчмарки, кидаются пруфами, лезут в исходники библиотек… Это все абсолютно бесплатно и скорейшим образом, чтобы максимально доходчиво показать, насколько же вы
А разводить холивары с упоротыми противниками, которые по сути дела ничего сказать не могут — это уже вопрос к себе: «Что ты тут забыл?». Поэтому нет ничего глупее, чем ввязываться в холивары с единственной целью — восстановить справедливость.
почему те, кому не нравится PHP, pascal, Java, C#, любой другой язык, позволяют себе выливать на окружающих тонны своей ненависти?
Это уже вопросы к ним, а не ко мне :)
Речь была о том, имеются ли основания для плохого отношения к РНР или нет. Как выяснилось, вполне имеются. А уж как люди это отношение выражают и почему, это уже отдельная большая тема.
Изначально, таки, речь была про то, что
Вы блестяще подтвердили этот тезис.
А так-то возьми любой, абсолютно любой, ЯП и оснований для плохого отношения к нему можно придумать достаточное количество.
У любой технологии есть свои хейтеры
Вы блестяще подтвердили этот тезис.
А так-то возьми любой, абсолютно любой, ЯП и оснований для плохого отношения к нему можно придумать достаточное количество.
Изначально, таки, речь была про то, что у любой технологии есть свои хейтеры
Нет, я комментировал вторую часть того предложения, а именно
многие незаслуженно ненавидят PHP.
К «незаслуженности» у меня возникли вопросы.
А так-то возьми любой, абсолютно любой, ЯП и оснований для плохого отношения к нему можно придумать достаточное количество.
Если у человека есть неприязнь к инструменту и он её обосновал, то что тут не так?
Пацаны — вообще ребята! =) Оба привели статьи 2012 года выпуска, может давайте еще про PHP4 будем говорить, или лучше про то говнецо, что в те далекие года гордно несло название JavaScript? Вы вообще PHP7+ в глаза то хоть видели?
>>>> Кстати: я обожаю Python. И с удовольствием прожужжу тебе уши, ноя о нём
этим все сказано :( вечная борьба Python против PHP, ох уж эти питонисты, что им спокойно не живется, я вот никак не могу понять природу ненависти языка PHP у программистов на Python. P.S. использую оба этих языка в работе.
этим все сказано :( вечная борьба Python против PHP, ох уж эти питонисты, что им спокойно не живется, я вот никак не могу понять природу ненависти языка PHP у программистов на Python. P.S. использую оба этих языка в работе.
оо, статья шестилетней давности. Давайте ещё PHP 3 поругаем
О боже, RuVDS как вы могли перевести эту статью, после таких крутых статей?
Вы извините, конечно, но на разделе «Непростые имена» я уже не выдержал. Неужели вы найдете хоть одного разработчика, который в имя переменной будет подсовывать «какахи» и полноширинные символы вместо обычных, чтобы потом использовать эти имена? Про самоуничтожающиеся объекты через геттеры-сеттеры — это вообще какая извращенная фантазия должна быть?! Так можно дойти до того, что в конструкторах одного класса будем уничтожать произвольные объекты другого класса. Почему нет, Javascript же позволяет. Это нужно поместить в раздел «Ненормальное программирование» и поменять «желтый» заголовок.
К реальным минусам js отнёс бы отсутствие типобезопасности и const-корректности.
Ну для мелких проектов типобезопастность это не проблема — все держишь в памяти и легко находишь ошибку. Для крупных есть TS и Flowtype.
const-корректность — это вы про то, что свойства константного объекта можно менять? И правильно, константность не всегда означает иммутабельность.
ИМХО, отсутствие многопоточности и/или средств кооперативной многозадачности куда большая проблема.
const-корректность — это вы про то, что свойства константного объекта можно менять? И правильно, константность не всегда означает иммутабельность.
ИМХО, отсутствие многопоточности и/или средств кооперативной многозадачности куда большая проблема.
Методы не могут гарантировать неизменность объекта. Не знаю, может это я как адепт Си++ придираюсь. Но отсутствие явного типового соответствия в функциях напрягает, да и неявное приведение типов просто чумовое)
Методы не могут гарантировать неизменность объекта.Это уже к иммутабельности (которую мы можем обеспечить через заморозку и ко).
отсутствие явного типового соответствия в функцияхИдите в TS, он вам больше понравится
неявное приведение типовПравила приведения типов не нарушаются, просто это более свободная версия. Минусом это трудно назвать, равно как и плюсом. Скорее, подводный камень.
Конечно, треш можно написать на любом языке, но некоторые языки словно подталкивают к этому обилием всяких хитрых неочевидных конструкций. Например, раньше писал на Перле, так ведь этот язык просто все время нашептывает тебе на ухо: «Брось писать читабельный код, используй только знаки препинания!»
> Если вы пишете код, с которым нужно будет работать другим людям, JS даёт вам неисчерпаемое количество возможностей для того, чтобы этих людей раздражать, путать, всячески изводить и обманывать.
> let get = (obj, property, default) => {
Если бы вы писали определение функции со словом function, оно было бы читабельнее, понятнее (с первого слова понятно, что у нас функция, в случае с let это не так) и точно меньше бы раздражало:
Насколько это чище, аккуратнее, красивее!
> let get = (obj, property, default) => {
Если бы вы писали определение функции со словом function, оно было бы читабельнее, понятнее (с первого слова понятно, что у нас функция, в случае с let это не так) и точно меньше бы раздражало:
function get(obj, property, default) {
Насколько это чище, аккуратнее, красивее!
Sign up to leave a comment.
JavaScript как воплощение зла