LINUX.ORG.RU

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

 , , ,


0

1

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

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

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

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

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

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

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

★★★

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

Не, это диктует не программа, это диктует юридический договор с apple app store. Либо пилить натив под сраный айфон и подстраиваться под эти требования, либо делать сайт/веб приложение, либо безпроблемный запуск на айфоне невозможен - потерять дофига аудитории. jailbreak для особой аудитории, а не обычного бизнеса.

arturianec100
()

Конечно, ведь это самый удобный способ делать многие приложения.

WWW используется не по назначению

У тебя какая то зацикленность на назначении, циклы в лиспе нельзя, приложения в вебе нельзя, может и компьютер бесовская игрушка?

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

Концептуально идея платформы тонкого клиента со своим API, виртуальной машиной и песочницей очень хороша

Хороша только пока есть адекватная альтернатива от толстых клиентов. Если не будет альтернатив - закрутят гайки в плане свободы так, как и не снилось 90% государств.

WASM эту проблему худо-бедно решает, но он еще слишком сырой.

Исключения, многопоточность, simd’ы и прочие фундаментальные косяки васма не заметны в рядовой лапше. И Qt, и более современный flutter, и дохрелион тулкитов игровых движков (30-60-120fps) уже работают в браузере. Все со своими лайаутами. Плюс можно одновременно совмещать свой лайаут с dom элементами через громоздкие костыли, хотя так почти никто не делает.

Тут дело не в технических ограничениях, а в том, что готов предложить рынок труда.

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

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

Ничего более портабельного и универсального человечество на данный момент не изобрело.

Ты только что утверждал что браузерные приложения действительно портабельные и универсальные. А теперь, оказывается, это на безрыбье – то есть они нифига не портабельные и универсальные, на что я и указал

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

А что бьётся?

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

Сидеть на пальме и есть бананы?

Не следование интересам Бизнеса вслепую – это отсутствие прогресса?

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

А то детей учить не надо, больных лечить не надо, дома строить не надо. Работой никакой заниматься не надо. Сиди на пальме и соси палец. Удобно.

Ты чего? Как предложение не бежать радостно не думая в любую сторону в которую предложат корпорации ради ИХ (не твоей) выгоды навело тебя на мысли что я предлагаю не учить детей и сидеть на пальме? Разве без бизнеса детей учить нельзя?

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

У принципиальных борцов с системой всегда везде неподходящие инструменты, технологии, люди, место, время и т.п.

А в качестве альтернативы предлагается «подождать» и «потерпеть». Ну и повозмущаться еще.

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

Одно другому не противоречит.

Противоречит. Браузерные приложения могут быть либо универсальными, либо – нет. Закон исключенного третьего. Ты сказал что универсальные, тебе указали что – нет, ты согласился, но теперь утверждаешь что в том что они одновременно и универсальные и нет нет противоречия

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

У принципиальных борцов с системой всегда везде неподходящие инструменты, технологии, люди, место, время и т.п.

При чем здесь принципиальное борцунство с системой? Если я буду выступать против забивания микроскопом гвоздей – я буду делать это не из духа борьбы с системой.

Любой, кто утверждает что микроскоп – не подходящий инструмент для забивания гвоздей – прав.

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

А в качестве альтернативы предлагается «подождать» и «потерпеть». Ну и повозмущаться еще.

В качестве альтернативы браузерным приложениям я предлагаю приложения десктопные, а вовсе не подождать и потерпеть как ты мне приписываешь

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

Пусть сидят неучами, пока на ЛОРе новый веб не изобретут.

Ты завязывай эти домыслы свои непричастным приписывать: я такого нигде не говорил – это раз.

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

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

Неподходящий инструмент - это когда отвёрткой гвозди закручивают.

Вот выше приводили в пример гугл докс. Гугл докс это облачный офисный пакет. Человек открывает офисный пакет и использует его по назначению офисного пакета.

wandrien ★★
()

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

Нужны кому именно? Пока четко не определен круг этих лиц вопрос не имеет смысла. Те кому не нужны отключат, те кому нужны оставят. О чем спор? ТС в бан, всех понаписавших страницы тупняка туда же, тему закрыть.

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

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

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

Вот пример такого приложения https://www.photopea.com/
А вот еще https://vscode.dev/

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

Почитай историю создания js.

Тоже предлагаю тебе почитать историю создания js. Например статью представленную на последней HOPL (конференция, посвященная истории создания языков программирования, которая проходит раз в 10-15 лет), написанную Алленом Вирфс-Броком (одним из редакторов спецификации) и Бренданом Айком (создателем языка).

https://dl.acm.org/doi/pdf/10.1145/3386327

Еще можешь не стесняться, все создатели до сих пор живы и ведут очень активные дискуссии в сети. В частности, Брендан Айк очень активно общается в твиттере - там ты можешь найти множество ответов об истории создания и развитии js или задать свои вопросы.

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

Ничто не мешает сделать форму ( в HTML / XHTML) в которой бы отсылалась информация об оценке сообщения.

В вебе, о котором ты пишешь в стартовом посте, том самом у которого было какое-то мистическое предназначение, разработанном Тимом Бернс-Ли не было никаких форм. И картинок не было. Ничего не было, кроме структурированного гипертекста с оформлением по-умолчанию. Единственным интерактивным элементом была ссылка. Всё.

Так что никаких форм, в своем вебе с «назначением», ты сделать не можешь.

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

Откройте веб-приложение например

Открыл https://vscode.dev/
Достаточно приложеньисто для тебя? 4,5MB скачано при первом запросе. При всех последующих обращения по ссылке всё приложение достается из кэша с жесткого диска и работает без доступа к сети в том числе.

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

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

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

Я хз, в юности я увидел Дельфи и для меня не существует ui иного, чем визуальный редактор объектов с коллбэками

Так вот в чем твои сложности, выходит. Ну на, делюсь сакральными технологиями.

https://www.youtube.com/watch?v=NzXwBv5iL48

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

Именно потому что я прочитал, к чему ты это писал, я и задаю вопрос.

Во-первых это будет просто сайт, а не веб-приложение, а во-вторых да, это быстрее чем выплевывать 10 МБайт исполняемого JS кода клиенту, который потом еще должен будет выкачать мегабайт 20 и сам это все интерпретировать.

Ты считаешь размер уже выкачанного приложения, но веб-приложения по сети передаются в сжатом виде. Я спрашиваю, почему ты в полемике «сколько надо выкачать мегабайт» считаешь не размер ереданного по сети трафика, а размер распакованных ресурсов.

Чуть выше я тебе же привел пример vscode.dev, который в распакованном виде занимает 19MB, но по сети передается только 4,5MB.

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

Странно, что ты меня спрашиваешь. Это не мой тезис изначально. Я лишь подтвердил то, что там сказано.

И там что то про размер при передаче по сети?

почему ты в полемике «сколько надо выкачать мегабайт»

Ах вот оно что. Ну эту полемику ты сам придумал. Думаю там был вопрос именно к размеру интерпретируемого js кода. Т.е. к тому, что в нем банального много логики для выполнения.

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

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

Но! Если заранее скачать с марктеплейса пару сотен мегабайт уже откомпилированного кода, то проблем нет, всё нормально это правильный подход.

Ничего не пропустил?

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

В качестве альтернативы браузерным приложениям я предлагаю приложения десктопные, а вовсе не подождать и потерпеть как ты мне приписываешь

Что будешь использовать для UI? Qt, Gtk, wxWidgets, WinForms, WPF, …? На каком языке писать будешь? У выбранного языка годные биндинги к UI toolkit’ам есть? Если все выбрано то главное не застрять на какой-то херне, которые везде работает, а на какой-то конкретной платформе нет.

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

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

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

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

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

Js дает больше тормозов - да.

И вот еще продублирую свое же сообщение из другй темы:

  • Веб версия более задумчивая.
  • Кроме интерфейса приложения высота съедается интерфейсом браузера.
  • Клавиатурные сочетания, действия мыши частично выполняются именно браузерные, а не те, что могли бы принадлежать самому веб приложению. Например вот Google Docs, если ты хочешь изменить масштаб, зажмешь Ctrl и покрутишь колесом мыши, то изменится масштаб всей веб страницы, а не только листа документа (как в MS Office / LibreOffice). Или Alt+F4 закроет браузер, а не приложение (т.е. в данном случае вкладку). Или Alt+↓ не вызовет меню приложения, а вызоет меню браузера.
  • В веб версиях частенько отображаются полосы прокрутки, т.к. оно не влезает в окно браузера.
  • Опять же веб версия сильно зависит от скорости сети, например если тот же telegram (приложение) можно запустить при плохом интернете и отправить текстовое сообщение и оно отправится медленно или чуть позже, но отправится. А если при плохом интеренете нужно отправить сообщение из веб версии telegram, то пока вся web страница приложения не загрузится со всеми стилями, фиг, что отправишь.
  • На мобилках в браузере вкладки постоянно сами обновляются, если некоторое они не были активными (что раздражает: ну нахера мне обновлять постоянно какую-нибудь страницу с гайдом).

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

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

Веб версия более задумчивая.

Я 90% времени пользуюсь только веб-приложениями. Я бы сказал даже, что почти все gui-приложения, используемые мной - веб. Из не веба я использую только разве что консольные утилиты с командным интерфейсом. И в большей степени лишь потому, что что-то пока еще не портировали в веб версию (например чтобы конвертировать/склеивать/разрезать видео мне давно достаточно браузера, необходимости в консольном ffmpeg давно нет)

Никакой «большей задумчивости» я не наблюдаю Моя рабочая машина - двухядерный ноутбук с 12ГБ ОЗУ 2013 года. Любое веб-приложение работает отзывчивее, чем практически любое нативное.

Кроме интерфейса приложения высота съедается интерфейсом браузера.

Мой браузер выглядит так - Firefox 111 (комментарий)

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

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

Не имею таких проблем, смотри предыдущий абзац.

Например вот Google Docs, если ты хочешь изменить масштаб, зажмешь Ctrl и покрутишь колесом мыши, то изменится масштаб всей веб страницы, а не только листа документа (как в MS Office / LibreOffice).

А как в MS Office изменить масштаб интерфейса самого приложения, а не листа? В гугл докс, как известно можно сделать и то, и другое.

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

Удивительные вещи. Разрешение экрана моего ноутбука 1366x768 и я никогда не сталкиваюсь с тем, что что-то не влезает. Даже когда окно браузера развернуто не на весь экран. Дело в том, что веб - адаптивен и отзывчив.

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

Опять же веб версия сильно зависит от скорости сети, например если тот же telegram (приложение) можно запустить при плохом интернете и отправить текстовое сообщение и оно отправится медленно или чуть позже, но отправится. А если при плохом интеренете нужно отправить сообщение из веб версии telegram, то пока вся web страница приложения не загрузится со всеми стилями, фиг, что отправишь.

Веб-версия телеграмма - это PWA. Оно загружается один единственный раз и далее открывается даже без подключения к интернету. То, что ты пишешь просто неправда. Я 100% времени пользуюсь веб-версией телеграма и озвученных тобой проблем нет.

На мобилках в браузере вкладки постоянно сами обновляются, если некоторое они не были активными.

Круто. А нативные standalone-приложения так умеют?

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

Любое веб-приложение работает отзывчивее, чем практически любое нативное

Да ты чёёёёёё?! Кто бы сомневался. Я там выше уже писал про тормаза в галерее на js.

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

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

Веб-версия телеграмма - это PWA. Оно загружается один единственный раз и далее открывается даже без подключения к интернету. То, что ты пишешь просто неправда. Я 100% времени пользуюсь веб-версией телеграма и озвученных тобой проблем нет.

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

А как в MS Office изменить масштаб интерфейса самого приложения, а не листа? В гугл докс, как известно можно сделать и то, и другое.

В настройках возможно. Или через настройки система, там где про масштабирование. Не, не вариант?

Удивительные вещи. Разрешение экрана моего ноутбука 1366x768 и я никогда не сталкиваюсь с тем, что что-то не влезает. Даже когда окно браузера развернуто не на весь экран. Дело в том, что веб - адаптивен и отзывчив.

Ой, как мило, ты не окрываешь сайтов, где это проявляется.

Круто. А нативные standalone-приложения так умеют?

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

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

что-типа «сразу хотели на нем писать и бэкэнд и десктоп приложения». Ага.

Ну типа того, да. Если ты внимательно читал статью с HOPL, то там подробно расписано, что js одновременно пилился как язык встраиваемый и в клиент и в сервер. И релизнулся как клиентский так и серверный js одновременно.

Что до декстопа. Там же подробно описывается как Microsoft реализовали JScript и встроили его интерпретатор в свою операционную систему из коробки. Active Desktop/HTA/интерактивные папочки в windows explorer/каждое пятое интерактивное цветастое меню/программы в духе обучи меня пользоваться компьютером/автораны дисков 1000 и 1 программа для твоего пека/winhelp(chm)/ЭНЦИКЛОПЕДИЯ КИРИЛЛА И МЕФОДИЯ НА 12 CD ДИСКАХ/и прочее прочее прочее - все это были веб-приложения с js внезапно на десктопе, и внезапно с конца 1990х годов.

Ну и вот тебе еще воспоминания того же Айка.

https://twitter.com/BrendanEich/status/1009689246389555201

Mike McCue at Netscape in ’97 or so did prophesy that JS would be in hardware some day. All part of the plan :-P.

JS will bury Java. Already did on desktop. Ta!

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

Да. При чем технология HTA в винде появилась с релизом Internet Explorer 5.0 и поддерживается до сих пор. Я могу обычную HTML-страницу превратить в полноценное приложение с доступом к API винды просто переименовав файл.

wandrien ★★
()

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

А ставить всякие левые проги типа «гугл планета земля» я бы не хотел. Мне проще сайт открыть…

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

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

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

KillTheCat ★★★★★
()

Смотря где. Если это приложение (админка к примеру), то ок, если сайт для пользователей, то я тоже за то чтобы скриптов было как можно меньше, для придаче странице динамики, но не для генерации всего на свете.

neversleep ★★
()