Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

В чем плюсы JavaScript как языка программирования?

ПрограммированиеМатематика+3
Алена Каменецких
  ·   · 6,8 K
старший разработчик в pseven.io  · 22 февр 2022
Когда мне попался этот вопрос, я заложил его в список "ответить позже", после чего долго ходил вокруг, не зная, что написать. Характеристики навроде "популярный", "массовый", "есть в любом браузере" — всё это, конечно, правда. Но они ничего не сообщают о языке как таковом. Все они говорят лишь о том, какое место этот язык занимает в текущих реалиях.
Что же касается самого языка как инструмента программиста, то тут JS едва ли может чем-то похвастаться. Всё тот же сишный синтаксис, как и у многих других. Гремучая смесь слабой и динамической типизации, что скорее минус. Невнятная прототипная модель ООП. Универсальный? Пожалуй да, запишем в плюсы. Простой для новичков? Считается, что да, но эта простота опасно обманчива (подробнее об этом я писал тут). Стандартная библиотека довольно бедна, что приводит к необходимости подключать сторонние библиотеки даже для таких базовых вещей как работа с датой-временем или иммутабельность.
Впрочем, плюсы тоже есть:
  • Встроенная однопоточная асинхронность позволяет легко организовывать неблокирующий ввод-вывод. Однопоточность в данном случае это плюс, так как избавляет от необходимости синхронизировать данные в памяти (классический источник багов).
  • Объекты любой сложности можно задавать в виде литералов, это легко и удобно. Это же относится к спискам. Например, можно легко создать копию списка с добавленными элементами в одно действие через spread оператор (многоточие).
  • Объекты в JS представляют из себя универсальную структуру данных, подходящую для множества разных целей. Код для трансформации таких объектов тоже можно сделать универсальным. Чем-то это похоже на таблицы в Lua.
  • В отличие от того же Python, почти все примитивы в JS являются типами значений, что важно для быстродействия.
  • В JS с самых ранних версий есть модные нынче фичи: замыкания, функции как объекты первого класса. При этом функция действительно в полной мере является объектом, то есть может иметь свои поля и т.д.
  • JS сам по себе не склоняет к одной определённой парадигме. Преобразования данных возможны как императивно, так и декларативно (взять те же filter, map и reduce). Не нравятся как тут сделаны классы — можно сделать свои (см. OLOO). Не устраивают списки в виде ассоциативных массивов — можно сделать свои. Можно даже писать в почти ФП стиле без массивов, циклов и условий, производя композицию чистых функций и применяя их к связным спискам. Впрочем, это будет именно "почти ФП", так что тут и плюс и минус.
Подводя итог, современный JavaScript — это встраиваемый язык для программного доступа к объектам (далеко не только браузера). На нём можно делать мобильные, десктопные и серверные приложения. Для кого-то это станет сюрпризом, но JavaScript сейчас нередко используется во встраиваемых системах. Стандарты ECMAScript 2015 и 2019 годов существенно обогатили язык (основные аргументы противников JS относятся к версиям до 2015 года). Существующие реализации движков обладают сносным быстродействием, к тому же правильно написанный код на JS легко масштабируется. Язык конечно далёк от идеала, и никогда им не станет из-за жёстких требований обратной совместимости, но определённые плюсы у него есть.
Что-то осталось непонятно? Спроси в нашей группе в Телеграме!Перейти на t.me/jstsmentor
Школа программирования для детей "КИД КОД" Препода...  · 17 сент 2021  · kidkod.ru
У javascript есть встроенный интерпретатор в любой современный браузер (т.е. дополнительно не нужно ничего устанавливать, можно открыть консоль разработчика и попробовать в закладе console написать несколько команд). Также язык... Читать далее
Обучаем детей с 7 лет программированию и компьютерной грамотности.Перейти на kidkod.ru
3 эксперта согласны
За исключением "обладает довольно лёгким синтаксисом" всё верно сказано и по делу.
В дополнение я бы добавил ещё, что математика...  · 27 сент 2021
Совершенно согласен с предыдущими ответами и комментариями. Главное его преимущество - что это браузерный язык и его практическая ценность для разработки веб-страниц. Плюс относительно простой синтаксис.
Пишу код и т.п.  · 15 июл 2022  · itustinov.ru
Это небольшой (по размеру спецификации) и мощный функциональный язык с поддержкой юникода. JS — это в основном про функции, а не про ООП. Есть книга, посвящённая целиком теме вопроса — «JavaScript: сильные стороны» Дугласа... Читать далее
Диванный философ, по совместительству инженер  · 28 дек 2021
В том что его понимают все более-менее массово применяемые браузеры. И поэтому для определенных применений он если и не безальтернативен то критически важен. Его альтернатива - языки типа Coffee Script которые компилируются в... Читать далее
Мы, Российская компания интегратор и разработчик п...  · 8 дек 2021  · dta.agency
Здравствуйте! Это универсальный язык для фронтенд направления.
Его можно использовать на разных платформах, в пользовательском интерфейсе.
Это интерпретируемый язык программирования.
Разработка программного обеспечения. Автоматизация бизнес процессов. Дизайн.Перейти на dta.agency
1 эксперт не согласен
Ответ не совсем точный. JavaScipt является родным лишь для Web-FrontEnd. Соответственно фраза про его универсальнос... Читать дальше
Молодой человек, безработный; реалист, умник...  · 16 сент 2021
Здравствуйте!
Javascript – динамический скриптовый язык программирования высокого уровня.
Он отличается мультипарадигменностью, гибкостью событийно-орентированных стилей и не большим, но комфортным спектром применения.
2 эксперта согласны
Программист  · 16 июл 2022
Никаких плюсов! Язык как язык, ничего особенного. Вообще, для программиста не важно на каком языке писать. Выбор языка определяется не предпочтениями программиста(знаю - не знаю, нравится - не нравится, буду - не буду…), а... Читать далее
1 эксперт согласен
Здравствуйте! Да, согласен. Выбор языка не должен зависеть от предпочтений разработчика. Он должен решать задачу... Читать дальше
Программист с 5 летним опытом работы на Python...  · 17 сент 2021
Первый плюс - это можно не ставить точки с запятой в конце (если есть табуляция). Допустим C++ так не может - ему нужны точки с запятой даже при наличии табуляции. Второй плюс - код работает сразу в браузере - не нужно ждать... Читать далее
1 эксперт согласен