LINUX.ORG.RU

Дискуссия: нужны ли скрипты на стороне клиента?

 , , ,


0

1

Часто сползаем в этот разговор, поэтому создаю отдельную тему.

Предполагаю проведении дискуссии. Для тех кто не в курсе (спасибо Википедии) Дискуссия – это обсуждение спорного вопроса, проблемы; разновидность спора, направленного на достижение истины и использующего только корректные приёмы ведения спора. Т.е. сообщения не аргументированные – это просто флуд.

В связи с чем этот вопрос назрел? Многих людей (включая меня), так или иначе связанных с веб-разработкой, раздражает тот факт, что WWW используется не по назначению, в частности многие современные «сайты» не могут отобразить вообще ничего без JS/WASM, потому что как таковыми сайтами они не являются. Это ужасно медленные веб-приложения, которые максимально неэффективно используются для того, чтобы отобразить тот же самый HTML / XHTML, либо решать что-либо такое для чего веб не предназначен, решать то, что по хорошему надо бы запускать непосредственно в ОС.

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

Интересно узнать ваше мнение, конструктивную критику, поддержку.

UDP: Дискуссия не удалась, можно сказать. У всех в корне разная точка зрения. Компромисс не найден.

UDP: Вернее найден: каждый волен поступать как хочет. Кто-то может писать скрипты, а кто-то может их исполнять / не исполнять по своему желанию. Большего добиться не удалось.

★★★

Последнее исправление: zx_gamer (всего исправлений: 2)

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

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от wandrien

Я вкладываю в это понятие следующие: набор файлов и гипертекстовых страниц на различных веб-серверах, составляющих связанный между собой набор информации, изучение которой возможно посредством перехода между документами по гиперссылкам.

zx_gamer ★★★
() автор топика

так или иначе связанных с веб-разработкой, раздражает тот факт, что WWW используется не по назначению

Ну так-то, пока вы связывались с веб-разработкой, тренды этой самой разработки изменились. И ваше к ней отношение особого смысла уже не имеет, ибо рендер на стороне клиента - свершившийся факт.

vvn_black ★★★★★
()
Ответ на: комментарий от zx_gamer

Ну для документов JS может и не нужен. (Если не стоит задачи интерактивный график внутри документа рисовать.)

А для для сайтов, которые в современном мире являют собой полноценные приложения, нужен.

wandrien ★★
()
Ответ на: комментарий от vvn_black

И ваше к ней отношение особого смысла уже не имеет, ибо рендер на стороне клиента - свершившийся факт.

Не везде же. Форумы, вики и т.п. пока еще почти не используют JS.

zx_gamer ★★★
() автор топика
Ответ на: комментарий от wandrien

Ну для документов JS может и не нужен. (Если не стоит задачи интерактивный график внутри документа рисовать.)

Не понимаю почему график нельзя в SVG отрендерить, но да ладно.

А для для сайтов, которые в современном мире являют собой полноценные приложения, нужен.

А сайт ли это?

Википедия гласит: Сайт – одна или несколько логически связанных между собой веб-страниц; также место расположения контента сервера.

zx_gamer ★★★
() автор топика
Ответ на: комментарий от zx_gamer

Я вкладываю в это понятие следующие

Вот, кстати, кому такой веб сегодня нужен? Если только, как вы выше упомянули вики и т.п. (форумы уже мимо), т.е. только то, что не подразумевает взаимодействия с пользователем и «динамичного» контента.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от zx_gamer

Не понимаю почему график нельзя в SVG отрендерить, но да ладно.

Интерактивный SVG? Какой-то прорыв в айти.

А сайт ли это?

Мне всё равно, как это называется. Если не нравится слово сайт, можно называть бобрук-момрук. Бобрук-момрук, который представляет собой клиент-серверное приложение, доступное через интернет.

wandrien ★★
()
Ответ на: комментарий от LINUX-ORG-RU

Вообще звучит логично. Бизнес очень любит выворачивать первоначальные идеи наизнанку.

«RFC гуглу не писан».

Как часто вы встречаете сайты, которым можно на webmaster@domain.tld написать и вам реально ответят?

Или как часто вы встречаете сайты, которые если прогнать на validator.w3.org вы увидите «Valid *** document»?

zx_gamer ★★★
() автор топика

В прошлом топике вопросы был про примеры. Пример где требуется динамика это фильтры каталога с товаром. Когда надо выбрать размер, и оставить только доступный цвет в фильтре что бы дофильтровать. Поэтому не совсем понятно что такое тривиальный скрипт?

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

sv_warvar
()
Ответ на: комментарий от sv_warvar

Пример где требуется динамика это фильтры каталога с товаром.

Зачем это делать в браузере, а не условной 1Ске?

Поэтому не совсем понятно что такое тривиальный скрипт?

Предлагаю остановиться на этом описании (требования GNU LibreJS к скриптам без лицензии):

В настоящее время мы пользуемся правилом, согласно которому программа на JavaScript нетривиальна, если выполняется любое из условий:

  • на нее ссылаются как на внешний сценарий (с другой страницы);
  • в ней объявляется массив длиной более 50 элементов;
  • в ней определяется именованный объект (функция или метод), который вызывает что-либо кроме примитива;
  • в ней определяется именованный объект с более чем тремя условными конструкциями или циклами;
  • программы вне именованных определений вызывают что-либо кроме примитивов и функций, определенных далее на этой странице;
  • программы вне именованных определений содержат более чем три условных конструкции и цикла (всего);
  • в ней вызывается eval;
  • в ней делаются вызовы Ajax;
  • в ней применяется нотация квадратных скобок для доступа к свойствам динамического объекта, что выглядит как объект[свойство].
  • в ней изменяется DOM;
  • она применяет динамические конструкции, которые трудно анализировать без интерпретации программы или загружается с программами, которые применяют такие конструкции. А именно, применение любых конструкций, кроме литерала строки с определенными методами (Obj.write, Obj.createElement и другие).
zx_gamer ★★★
() автор топика
Ответ на: комментарий от wandrien

Чтобы программа для просмотра гипертекста не была сложнее компилятора С++ и ядра ОС? Чтобы JSVM не выжирала очень большое количество ОЗУ просто так? Чтобы двухядерного x32 процессора хватало за голову? Чтобы неосведомленный пользователь (а большинство пользователей даже не в курсе что у них браузер исполняет программу) не подвергался лишним рискам и потенциальному шпионажу?

zx_gamer ★★★
() автор топика
Ответ на: комментарий от zx_gamer

Зачем это делать в браузере, а не условной 1Ске?

Я думаю банально нет таких технологий как в вебе. Да технически можно сделать каталог на QT и коннектить интерфейс к серверу с БД. Но на этом всё. Сравните вбить простой адрес и через 2 секунды получить полноценный каталог, добавить в закладки отправить ссылку, закрепить окно. С тем что надо найти приложение, поставить, ждать его загрузки, запуска.. а в деньгах и сложности разработки вообще пропасть

sv_warvar
()
Последнее исправление: sv_warvar (всего исправлений: 3)
Ответ на: комментарий от zx_gamer

Это не программа для просмотра гипертекста.

Это платформа-интерпретатор для запуска переносимых приложений. Доступная практически на всём классе потребительских устройств, что позволяет создавать действительно универсальные приложения.

wandrien ★★
()
Ответ на: комментарий от zx_gamer

Чтобы JSVM не выжирала очень большое количество ОЗУ просто так?

Выжирает память не VM, а запущенный в ней код. Писать оптимизированный код не выгодно для бизнеса, пока неоптимизированный работает удовлетворительно.

Чтобы двухядерного x32 процессора хватало за голову?

А зачем? Их уже даже не производят. Мы же не требуем запуска линукс на 16-битном 80286.

Чтобы неосведомленный пользователь (а большинство пользователей даже не в курсе что у них браузер исполняет программу) не подвергался лишним рискам и потенциальному шпионажу?

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

Пример платформы Андроид с рассадником разной заразы в маркете это подтверждает.

wandrien ★★
()

Когда по 8 ядер в телефоне, пусть в браузер хоть слона выгружают, только чтобы визуально не тормозило.

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

yu-boot ★★★★★
()

либо решать что-либо такое для чего веб не предназначен,

Потому что браузер превратился в кросс платформенный runtime для запуска приложений.
Раньше на этом поле были JVM, Flash, ActiveX, теперь браузер вытеснил их всех. Кстати я не знаю, сейчас можно через api браузера пользоваться токеном для подписи документов? Если да, то вообще супер.

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

Пользуйся Vanilla JS, никто не запрещает. Я тоже не люблю тривиальные вещи, если и писал фронт то там собиралось в дистрибутированный бандл только то что очень нужно.

Aber ★★★★★
()
Ответ на: комментарий от wandrien

Выжирает память не VM, а запущенный в ней код.

Да? А почему тогда современный огнелис / хромиум выжирает столько памяти, хотя простенькие скрипты и четвёртом нетшкафе работали? (Даже если сравнивать на одинаковых скриптах и оба x32)

Писать оптимизированный код не выгодно для бизнеса, пока неоптимизированный работает удовлетворительно.

И это хорошо? А не нужно ли простым пользователям делать лучше, чем у бизнеса?

А зачем? Их уже даже не производят. Мы же не требуем запуска линукс на 16-битном 80286.

Чтоб не дать капиталюгам из Intel и AMD вечно зарабатывать на железках, которые реально пользователю не нужны. (Давать разграблять себя как-то глупо, неправда?) Есть даже версии, согласно которым Intel и AMD договариваются с софтописатилями, чтобы они пораждали говнокод, питоны там всякие спонсировали, Rust’ы (с их псевдо zero runtime) и т.п.

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

Ничего она не даёт. Вспомните MeltDown через JS как работал.

Запуск софта в FireJail и то безопаснее будет.

zx_gamer ★★★
() автор топика
Ответ на: комментарий от zx_gamer

Пользуйся Vanilla JS, никто не запрещает. Я тоже не люблю тривиальные вещи, если и писал фронт то там собиралось в дистрибутированный бандл только то что очень нужно.

Опечаток не нашел, но я похоже не о том говорил.

применение «тривиальных скриптов»

Я тебя не правильно понял, я подумал ты про зависимости на тривиальные скрипты.
А ты оказывается говорил про то что на простой странице, без всякой надобности, используется JS, хуже всего что без его исполнения страница не отобразится. Если ты про это, то я с тобой полностью согласен, я не люблю такие сайты.

Я и не пишу такие сайты, если я делаю что-то на фронт, то это сложные приложения, и мне нравится что браузер позволяет делать такие вещи, как я уже сказал браузер это удобный, кроссплатформенный runtime.

Конечно такие приложения потребляют память, потому как эти «странички» хранят не текущее состояние, а зачастую полное состояние исполняемого приложения, т.е. там хранится модель данных приложения, оно отображается через манипуляции DOM, т.е модель данных отображения.
Плюс для скорости теперь JS не интерпретируется, а компилируется Just-in-Time, все JIT потребляют много памяти.

Короче, браузер крут как runtime, жаль что этой мощью пользуется там где нужно и где не нужно.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)

ужасно медленные веб-приложения

Нет, у них просто всё лочится, пока ответ от подвисшего cdn не придёт. При прочих равных SPA офигеть на сколько быстрее традиционного сайта.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от zx_gamer

Да? А почему тогда современный огнелис / хромиум выжирает столько памяти, хотя простенькие скрипты и четвёртом нетшкафе работали? (Даже если сравнивать на одинаковых скриптах и оба x32)

Потому что огнелис / хромиум предназначены для сложных приложений, а не только для «простеньких скриптов». Всё равно что сравнить Linux и CP/M.

И это хорошо? А не нужно ли простым пользователям делать лучше, чем у бизнеса?

Это факт.

Делайте, вам разве запрещает кто.

Чтоб не дать капиталюгам из Intel и AMD вечно зарабатывать на железках, которые реально пользователю не нужны.

Если Intel и AMD не будут зарабатывать, мы останемся без железа.

Есть даже версии, согласно которым Intel и AMD договариваются с софтописатилями, чтобы они пораждали говнокод, питоны там всякие спонсировали, Rust’ы (с их псевдо zero runtime) и т.п.

Топик посвящен теориям заговора. Ясно…

Ничего она не даёт. Вспомните MeltDown через JS как работал. Запуск софта в FireJail и то безопаснее будет.

«Дискуссия – это обсуждение спорного вопроса, проблемы; разновидность спора, направленного на достижение истины и использующего только корректные приёмы ведения спора.» (c)

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от zx_gamer

А почему тогда современный огнелис / хромиум выжирает столько памяти

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

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

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

wandrien ★★
()

Т.е. сообщения не аргументированные – это просто флуд.

Назвался груздем, …

Многих людей (включая меня), так или иначе связанных с веб-разработкой, раздражает тот факт, что WWW используется не по назначению, в частности многие современные «сайты» не могут отобразить вообще ничего без JS/WASM

Многие, малые, цифры в студию. Сколько конкретно сайтов не работают без JS? А пока что это наброс без аргументов, по вашим же критериям дискуссии.

Интересно узнать ваше мнение, конструктивную критику, поддержку.

Не пользуйтесь тяжелыми браузерами, отключайте в браузере JS (пока еще можно), то есть ответ уже заключён в вашем вопросе: если лично вам скрипты не нужны, просто… не используйте их. А если вам нужно зайти на сайт с JS, то просто представьте что вы скачали клиент для этого сайта написанный на Яве (хотя на самом деле скачали браузер) и это удовлетворит ваше желание иметь по приложению на каждый сайт.

mydibyje ★★★★
()

раздражает тот факт, что используется не по назначению

Тебя раздражает то, что ты выдумал себе какое-то метафизическое предназначение всего вокруг тебя, которого на самом деле у него нет и никогда не было.

Ты пользуешься зонтом во время дождя? Понимаешь, что он не был предназначен для защиты от осадков?

Кока-кола - это не лимонад, а лекарство.

Колесо - это не деталь, а идол солнца.

Компьютер и Интернет - были созданы не для того, чтобы ты постил на Лоре.

javascript
()
Последнее исправление: javascript (всего исправлений: 1)

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

Впрочем, это все флеймогонное. Реальность же состоит в том, что писать кроссплатформенные приложения объективно сложно, если это не что-то примитивное. Например, я собственноручно пропихнул поддержку H.264 в стандарт RFB, и потом мы с коллегой пошли делать его эталонную реализацию в клиент TigerVNC. Это нативная аппа на плюсах и FLTK. Так вот, даже такие вещи, как захват клавиатуры на каждой ОС делаются по-разному. А декодирование H.264 аппаратным способом (точнее, способом, который предоставляет ОС) - натуральная катастрофа. Даже в рамках одной ОС разных версий эти API имеют уникальные наборы глюков.

Увы, яжхудожники, проектирующие ОС, клали большой и толстый болт на совместимость, особенно в свежих ОС. Из-за этого стоимость разработки и поддержки десктопного софта растет экспоненциально от его сложности при увеличении количества поддерживаемых платформ.

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

Мой личный пример: https://github.com/pikvm/pikvm

Очень интерактивная веб-морда отдается с устройства. Она могла бы быть десктопным приложением, но мне пришлось бы писать под разные ОС, а юзеру - скачивать эти самые приложения. А браузер есть у всех. Зашел - и всё работает из коробки. Это буквально мое коммерческое преимущество, потому что остальные КВМы в основном используют всякие плагины, апплеты и десктопный жава-хлам. Мои клиенты вздохнули с облегчением, и то, что оно работает прямо в браузере, для многих из них стало мотиватором выкинуть на свалку свои старые железки и заменить их моими.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 5)
Ответ на: комментарий от liksys

Резюмируя вышесказанное, получаем что веб-приложения неизбежное зло, которое позволяет хоть как-то стандартизировать API всех платформ и экономить деньги бизнесу.

zx_gamer ★★★
() автор топика
Ответ на: комментарий от vvn_black

Вот, кстати, кому такой веб сегодня нужен?

Вот именно такой и нужен. Который не будет сжирать все ресурсы у смартфона/пк и требовать новейший девайс.

А то что есть сейчас - это результат принудительного увеличения одной из форм платежеспособного спроса. Кроме этого хитрожопая орава менеджеров/дижайнеров/веб разрабов яро показывает свою значимость по тысячу раз переписывая/перерисовывая одно и тоже.

rumgot ★★★★★
()

Абсолютно с вами согласен. Тьюринг полные системы не должны использоваться в программе для просмотра гипертекста. К тому же более половины всех скриптов, которые скачивает ваш браузер вредоносны (привет, google, yandex, vk).

Все умные сайты, залитые джсом на много порядков медленнее обычных standalone программ.

Обслуживание разработчиками браузеров виртуальной машины js очень трудоемко. Это место в браузере всегда будет дыркой для уязвимостей, которую очень сложно закрыть.

Почему ютуб такой медленный по сравнению с MPV, который просто mp4 качает без tsов и m3u???

Зачем нужны гугл документы, если они супер медленные, даже по сравнению ms office?

Закопаем же JavaScript вместе! Урааа!

realbarmaley ★★
()
Ответ на: комментарий от liksys

но мне пришлось бы писать под разные ОС

А отдать всё это на откуп электрону не получится? По идее будет тот же браузер, только сайт у него с собой, а сервер предоставляет только API.

Radjah ★★★★★
()
Ответ на: комментарий от wandrien

Чтобы двухядерного x32 процессора хватало за голову?

А зачем? Их уже даже не производят.

Производят. Не производят потребительских компьютеров на их основе. Кстати, по тем же причинам, по которым современный веб не пользуется изначальной концепцией.

master_0K
()

Нужен ли web2.0, т.е. должны ли мы иметь возможность не только просматривать инфо, но и вводить новую удобно и с проверками? Риторический вопрос, поэтому скрипты нужны.

web давно не просто гипертекст.

cylon17
()
Ответ на: комментарий от wandrien

Ага хорошая попытка. Вот мой старый смарт samsung galaxy j1 2016 как по твоему? А вот тормозит сцуко почему то. А мой ноут прошлогодний с i7 11565G7? Почему то при параллельно запущенной компиляции некоторые сайты умудряются тормозить при том что остальные приложения нет.

rumgot ★★★★★
()

Всё просто, там где нужно использовать скрипты нужно использовать скрипты, там где не нужно использовать скрипты не нужно использовать скрипты.

ya-betmen ★★★★★
()