Это требует некоторых пояснений.
Для начала:
GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub
На самом деле Discourse в основном написан на Ruby on Rails, и (согласно данным GitHub) только четверть его кода — это JavaScript, хотя это критически важная четверть, которая доминирует на стороне клиента.
Причины, по которым Discourse и другие современные веб-сайты (веб-приложения) используют JavaScript, следующие:
- Нагрузка на сервер: JavaScript снимает с сервера значительную часть работы, что помогает сайту лучше масштабироваться (эй, почему бы не заставить компьютер пользователя разделить часть нагрузки?)
- Пропускная способность: хотя первоначальная загрузка может занять немного больше времени из-за необходимости загрузить JavaScript, последующая подгрузка данных происходит ГОРАЗДО быстрее и требует НАМНОГО меньше пропускной способности (если бы завтра во всём мире исчез JavaScript, интернет, возможно, остановился бы?), поскольку передаются только данные, а не вся разметка и макет всех элементов интерфейса. Таким образом, всё выполняется в сети гораздо быстрее, что позволяет работать даже при низкоскоростных соединениях, например, при плохом мобильном интернете.
- Интерфейс: улучшает динамичность пользовательского интерфейса, делая опыт использования лучше (например, при нажатии кнопки обновляется только часть экрана — без полной перерисовки всего браузера).
- Это стандарт: JavaScript является стандартом во всех современных браузерах, включая мобильные, поэтому достаточно написать код один раз, и он приобретёт качества нативного приложения на большинстве устройств.
- Разделение ответственности: позволяет отделить процессы сервера от необходимости рендеринга интерфейса (обычно), что упрощает миграцию или поддержку других фронтендов, которые могут не быть основаны на JavaScript (или даже HTML). Приложение для iOS, кто-нибудь?
Я уверен, что есть множество других преимуществ, но это основные из них.
