Как стать автором
Обновить

Комментарии 24

Пишу веб-приложения, стараясь не трогать react, npm, webpack и вот это всё :) Dash/ReactPy спасают. А так да, я ума не приложу, как это раньше в Делфи я мог нащелкать за пять минут интерфейс, который сейчас делается чуть ли не месяцами в Вебах. Отказ от визуального программирования интерфейса – ну это же глупость какая-то. А из-за врождённой уродливости всего подхода нормальных визуальных средств, которые хотя бы поверх react работали – нет! И, извините конечно, но в VCL было абсолютно всё, что есть в мире react, и гораздо больше.

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

Как думаете, а подход WebUI взлетит?
Браузер в качестве View в десктопных проектах (WebUI)


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

Этот подход летает уже давно. Для разных языков есть т.н. шаблонизаторы, позволяющие в HTML-разметку с помощью специального синтаксиса внедрять объекты языка. Бэк считает состояние объекта, а шаблонизатор рендерит его в HTML. Это позволяет вэб-программистам делать в т.ч. и квази-десктоп приложения. Почему квази - а потому что в комплекте полагается иметь web-сервер (обычно запускается вместе в бэком).

Это работает, но обычно только для маленьких приложений. Современные интерфейсы сложны и всегда есть желание поручить их отдельному человеку. Ну а у него есть React и зачем ему что-то другое? :)

Отказ от визуального программирования интерфейса – ну это же глупость какая-то.

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

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

На мой взгляд, были и клиенты, и серверы, и всё делали в Delphi. Очень продвинутые писали истории, и толстые клиенты, и тонкие. У меня ощущение такое, что пришли "детки", имеющие перед глазами только Web как он есть, и наконструировали всё то что сейчас имеем.

А можете подсказать, какие проекты были/есть по этой теме? Мне тоже кажется, что ВПИ для веба - тема интересная и перспективная. И даже есть некоторое недоумение насчёт: "а почему этого до сих нет". Представление о сложностях есть, но хотелось бы в живую посмотреть, где такое не взлетело

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

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

Там имхо надо всё снести и заново построить, чтобы удовлетворить сложность требований нормальным дизайном, а не тем что наворотили за последние 15 лет. (Ну подумайте сами: shadow dom – это вообще как? Нормально с точки зрения дизайна систем? Или давайте может быть ещё одну абстакцию поверх этих запилим?). Делать такой инструмент поверх того что уже есть – всю жизнь положить, а выхлоп не гарантирован.

Поверх реакта не надо. Можно просто поверх html+javascript, что бы в браузере работало.

И опять придётся дом поверх дома. Дом-3 блин.

Что ж, можно написать свой антибраузер.

Если брать уже упомянутую Delphi, то она предлагает как минимум две библиотеки для этого:


  1. Наиболее, вероятно, подходящая под Ваш запрос — TMS WEB Core, где разработка ведётся полностью на языке Delphi, после чего транспилятор Pas2js преобразует весь код в JS, который уже и будет исполняться браузером.
  2. uniGUI — интерфейс тоже создаётся визуально в среде Delphi, однако в браузере за него отвечает Sencha Ext JS, к тому же получающийся сайт не автономен, а требует постоянного взаимодействия с веб-сервером.

Там есть такое. Но оно всё... ну такое. Альтернативное. :)

Звучит конспирологически :) Но с другой стороны - ситуация действительно странная... Даже с позиции фронтенда - это многолетнее жевание разномастных кактусов фреймворков, которые полноценно в этом отношении мало кого устраивают. А на вопрос "почему так?" - вопрос встречный: "А какая альтернатива?". Темы кроссбраузерности, адаптивности вёрстки и кастомной вариативности контролов действительно непростые, но фундаментально разрешимые. Я и сам подумывал в эту сторону, вот и хотелось бы взглянуть на чьи-то попытки/результаты в этом направлении ) Ведь наверняка были же

Начать можно буквально с ms word, у которого было/есть сохранение в html, но хорошо работающим оно никогда не было.

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

Касаемо сложности. Я начинал со смеси Borland C и ассемблера, но сейчас с огромным удовольствием работаю в экосистеме Питона. Кажется, это ближе всего к тому, о чём мечтали. Где нужно присыпаем нативным кодом конечно. Но весь "клей" – только питон.

Веб-разработка: мое личное мнение – не туда (сам начинал с Ajax в IE-5...). Оно всё не предназначалось для этого. Экосистема компилируемого в вебпаки тайпскрипта или того хуже реактскрипта туда через тайпскрипт – это худшее что можно было придумать. Разработка для веба стала ригиднее нативной. Грубо говоря, от изменения в коде до результата на экране максимальное время сейчас в вебе, пока всё это богомерзие, подумать только! – скомпилируется. Это дичь. Притом что компилятор-то ненастоящий! Это всё бездны, бездны node_modules.

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

Куда должен был пойти web кроме как в браузер как единый клиент и плюс-минус типовые UI?

Что касается бесконечных уровней абстракции, то спорить я не буду т.к. не спец, но вот пару приложений бэк+фронт делать приходилось. И на React, и на Angular. Да, когда создаёшь новый проект, в него накачивается бесчисленно модулей: пустой проект и уже 300 Мб. И дев-сервер подтормаживает (зато удобно: починил - посмотрел). Но потом-то я собираю проект и получаю всего несколько файлов HTLM-CSS-JS общим объёмом уже 300 кб, что неплохо для приложения на несколько экранов и кое-какой логикой. И какие там уровни абстракции? Исполняется единый JS под виртуалкой внутри браузера? Подключены только нужные модули, код получается относительно плоским: ну т.е. вряд ли программист написал был лучше без огромных усилий по оптимизации. Работает интерфейс достаточно быстро. Что ещё надо?

Не, иногда надо - работа с железом (RS-232 и пр.), а браузер совершенно справедливо огорожен от аппаратуры клиента. Ну тут уж либо писать десктоп, либо разворачивать клиент-сервер у себя - кто как умеет :)

Я согласен что в конце получается вроде как "тонкая штучка". Но вот сам процесс разработки. Очень тяжело, буквально чувство ожирения. У меня вроде как все среды, IDE для этих дел организованы, но всё равно по итогу у меня "время до результата" сильно лучше с С++ чем с вебом, изо всей этой webpack-канители. Это очень странная ситуация.

Имеется в виду трудность переключения между языками: бэк - фронт - вёрстка? Да, это трудно, а главное результат не очень в тех местах где ты не специалист :)

Но справедливости ради, кодом описать UI тоже непросто, я пробовал на пример Java - тоже простыня текста и полная безнадёга :)

Я вот именно про описание UI кодом. Это очень тяжело, как по мне.

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

Языки — это okay, но всё же в плане сохранения энергии, лучше если языков меньше.

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

Прикольно! В целом, с питоном последние годы повеселее. Dash (+ любые существующие react-компоненты) очень неплох, абстрагирование противного web-слоя очень приятно. Dash очень важен тем, что его много, "не пропадёт". Также появилась возможность генерировать интерфейс в первом приближении в ChatGPT, который о нём в силу широкого распространения он хорошо знает. Это чрезвычайно удобно. Есть также ReactPy. Но всё это всё равно про декларативное определение интерфейса кодом...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории