Почему я считаю, что JavaScript плохой язык?



Вопросы о том, как я отношусь к разным языкам задают постоянно. В этот раз я постарался объяснить, почему я считаю Java Script плохим языком

Новый тренинг для новичков (Киев и онлайн): инструментарий Java http://bit.ly/2EDpf6D

Проверь, достаточно ли тебе знаний чтобы начать обучение на курсе Java менторинг в FoxmindEd? http://bit.ly/2X1kv1J

Advanced он-лайн курс Enterprise Patterns: http://bit.ly/2HMetf1

Сайт учебного центра: http://bit.ly/2M0HNn5
Учебный центр в ФБ: https://www.facebook.com/foxmindedco

Разработка: http://software.foxminded.com.ua
Web-разработка: https://foxminded.agency

Мой Telegram: https://t.me/nemchinskiyOnBusiness
Мой блог: www.nemchinsky.me
Мой ФБ: https://www.facebook.com/sergey.nemchinskiy

25 thoughts on “Почему я считаю, что JavaScript плохой язык?

  1. Ну в es6 классы появились, он стал похож на другие языки в этом плане.

    В браузерах классы поддерживаются.

    Но дальше если браузеры до сих пор поддерживали старый es5, то с бабелем все проблемы уходят. Мы пишем на самой последней версии js, es9 какой-нибудь с классами, async, await'ом, а наш код преобразуется в es5, и мы счастливы.

  2. Потешно смотриться, как на этом фоне Вы хвалите архитектурно плохой PHP. Потому что PHP не является конкурентом Java из-за низкого performance, а JS является?

  3. Хорошо, Вы правы, но какой скриптовой язык мне использовать, чтоб было быстро в продакшене, с С-like синтаксисом и не сложно, как C++?

    Python и Ruby? Они ужасно медленные, да и синтаксис очень отличается от С. RoR и Django вообще не подходят для современных SPA приложений
    Java и C#? Огромные тяжеловестные платформы на которых не попрототипировать.
    Go? Противоречия DRY и плохая стандартная либа.
    ФП-языки? Очень сложно и рынок их не любит.

    JS не идеален, как и все, но JS после es6 – это очень красивый и быстрый скриптовой язык, который позволяет разобраться сразу во всем WEB: бэкэнд и фронтенд. Почему нет?

  4. Вот что с людьми джава головного мозга делает. Я исключительно в хорошем смысле слова. Потому как аргументация непробиваемая, и продиктована она суровым энтэрпрайзом. И можно было бы тут и остановиться если бы не одно но…

    Вы Сергей вроде как по возрасту должны были застать те времена, когда не то что ИДЕ, редакторов человеческих не было. И вполне возможно держали в руках язык ассемблера. Что-то серьезное делали врядли, таких людей сразу издалека видно, но вполне возможно были с ним на ты. Так вот напомните мне где там хотя бы намек на типизацию? А я замечу, пока вы вспоминаете, что это был язык выступавший обязательной базой для таких решений как например управление самым затрапезным атомным реактором и был там не от прихоти, а потому что иначе было нельзя. И что самое интересное есть места где это ПО все так же выполняет свои задачи. Причем неплохо выполняет должен я вам сказать.

    Да и черт с ним с ассемблером, вот например когда программировали посадочный лунный модуль, там вообще проволочки наматывали. И подишь ты намотали и посадили. Без всякого энтерпрайза да почти с первого раза. Сейчас вон с третьего раза считается удачей.

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

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

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

    С глубоким уважением, без какой либо задней мысли.

  5. ЛОЛ ))) дед забыл выпить таблеток )) Когда последний раз на JS код видел? Небось до сих пор думает что JS это чтобы картинки по экрану двигать )

  6. Я из 2021. Серега говорит: "Вы можете выбирать джавускрипт как основной язык программирования … о, Господи, неужели я это говорю

  7. ну вообще JS реально начинает бесить когда на нем "операционки" целые пишут делая сайты тяжеленными для браузера.

  8. Равнодушен к JS. Но когда JSеры лезут из браузера куда-то ещё, то это плохо.

  9. Сергей, признайте наконец, что Вы просто не можете смириться, что у программистов на JavaScript и TypeScript есть деньги, есть женщины, а что осталось у Java и С# программистов? Только геморрой, простатит и шутки про Fortran и Cobol 😀

  10. Добрый день!

    Я не являюсь адвокатом JS, но большая часть аргументов, которые были приведены Вами в данном видео, не имеют никакого отношения к JavaScript, а меньшая часть не имеет никакого отношения к реальности. Более того, хотя Вы, в самом начале и говорите о вкусовщине, тем не менее подаете информацию в крайне императивном виде, и звучите так, будто иного мнения / взгляда по данным вопросам просто нельзя иметь.

    "Большой код на JavaScript не поддерживаемый" – это не правда, и есть масса примеров, которые это опровергают, и первый, который пришел мне в голову – это PayPal, который был переписан на JavaScript с Java. Если на проекте не используется TypeScript, то проблемы скейлинга кода действительно могут быть, но у этих проблем есть решения, в частности: functional composition на микро и макро уровнях, immutability, flow для типизации.

    "Проблема потерять ошибку в JavaScript – проще простого" – извините, но если Вы говорите об отсутствии статической типизации, то решения этой проблемы я привел выше. Если вы говорите о чем – то другом, то я этот аргумент не понял совсем.

    "JavaScript формировался как сорняк в огороде" – А приведенный Вами же PHP – нет? JavaScript в десятки раз более последователен и предсказуем, нежели PHP, в котором, к слову, долгое время не могли сделать типы(и, вроде бы, до сих пор не сделали, но тут утверждать не буду, т.к. не слежу), не говоря о том, что в упомянотом мною выше TypeScript типизация, хоть и структурная, но с точки зрения функциональности – достаточно широкая, с огромным количеством полезных штук, таких как Union Types, Intersection Types и т.д. и т.п. Ну и да, конечно же, дженерики, которые прекрасно работают.

    "Спасибо ЭКМА за то, что язык стандартизирован, и работает во всех браузерах одинаково, но он не подходит не для чего, и написать на нем ЛЕГКО можно только что – то достаточно примитивное" – Вообще не понял, о чем Вы тут говорите: начинаете со стандартов ЭКМА, а заканчиваете тем, что язык не подходит для написания чего – то сложного. В данном случае у вас нарушена связь в цепочке суждений: вы начинаете с одного, а заканчиваете совсем другим, и это "другое" никак не относится к тому, с чего Вы начали. "Я не пью кока-колу, и в целом, предпочитаю ездить не на метро, а на машине, но на ночь окно в комнате, все таки, открываю". Кроме этого, на JavaScript пишут достаточно много "взрослого" и "сложного" кода, а именно: нейронные сети, блокчейны, платежные и процессинговые системы, и многое, многое другое.

    "Красиво хорошо и здорово можно написать даже на PHP, а на JavaScript – нет" – Почему? Вы выдвигаете тезис, но ничем его не подкрепляете. Я, c таким же успехом, мог бы заявить, что человек, которому действительно нравится дизайн Java или PHP – плохой инженер, и тут остановиться, никак не разворачивая свою мысль. Информативности и полезности в таком высказывании – ровно ноль.

    "Не можете создавать собственные классы с собственным поведением" – Во – первых, даже эта формулировка требует корректировки, и не является верной, а во – вторых, правильно ли я понимаю, что Вы заявляете, что если язык не поддерживает ООП парадигму(а точнее будет сказать, что язык не имеет такую же реализацию ООП как в Java) – то этот язык плохой? Извините, но я не вижу никакой корреляции между ООП и хорошим языком программирования. Если таковую видите Вы, то хотелось бы услышать хоть сколько – нибудь инженерной аргументации, а не спам Ваших личных вкусовых предпочтений.

    "У JavaScript есть огромное количество фреймворков, которые изменяют код" – Так, и? Это, как минимум, можно трактовать с двух разных сторон, а именно: с той, которую описали вы, и с той, что язык достаточно гибок для того, чтобы создавать на нем свой DSL и высокоуровневые абстракции, которые, в свою очередь, делают работу с ним приятнее и более flexible для программиста. Почему я должен рассматривать это, как минус языка? Не говоря уже о том, что подобная ситуация прослеживается с другими фреймворками, в том числе со Spring в Java, где конструкции порой настолько сложные, что многие даже спустя годы работы с инструментом не понимают, как и что происходит "под капотом".

    Also, если Вы что – то критикуете, то, по – хорошему, Вам стоит, как минимум, разобраться в вопросе, а как максимум – провалидировать свои выводы, пообщавшись с людьми, которые с данной технологией работают профессионально. В JavaScript, как и в любом другом языке, есть масса проблем, но то, о чем говорили в данном видео Вы, – это не то, что не проблемы в JavaScript, – это вещи, которые, как я сказал в самом начале, вообще не имеющие к нему никакого отношения.

  11. мдааа, посмотрел несколько видео…потратил время…отписываюсь, чего и вам желаю

  12. А То-то Илон Маск интерфейс управления своими ракетами на JS решил делать… Дурак же! Не видел Серегиного видео!

Leave a Reply

Your email address will not be published. Required fields are marked *