Re[11]: А на чем сейчас пишут GUI под Windows
От: Shtole  
Дата: 18.07.21 23:25
Оценка:
Здравствуйте, Marty, Вы писали:

S>>Мечтать конечно не запретишь. В реальности же я недавно публиковал некий текстовой контент через некую CMS в сотрудничестве с редактором (человеком, который причёсывает контент вместе с автором перед публикацией). Получил пошаговую инструкцию, в которой первым же пунктом шло: «отключите WYSIWYG в CMS». Вот что думают профессиональные редакторы об этой идее.


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


Мы же не первый день живём на свете и отлично помним, что из инструментов для нубов никогда ничего хорошего не получается. Если вы профессионально (за деньги) делаете UI, придётся разбираться, чтобы не вылететь с рынка.

Другое дело — идея дать инструментарий не программистам (сисадминам, очень продвинутым пользователям, всяким смежникам типа data scientist и т.п.). Но это же не «нубы», это другая категория. Для них есть т.н. no-code платформы. Над одной такой я сам сейчас работаю — но даже у меня на данный момент классического WYSIWYG'а не предполагается (layout'ов нет от слова совсем), просто не нужно писать код благодаря штукам наподобие property inspector'а.

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

Каждый из нас в чём-то нуб, я, например — в изощрённых алгоритмах, но я же не рассчитываю, что какой-нибудь чудо-конструктор поможет мне сгенерировать подходящую сортировку (да даже обычный LINQ-запрос). Нет, приходится или делегировать другому, или брать яйца в кулак и разбираться («в геометрии нет царских дорог»).

M>Если по поводу именно текстов — тут, как мне кажется, лучше отдельно — ввод, и отдельно — представление. В нижней части пишешь, например, на маркдауни, а сверху сразу видишь, во что оно превратится.


Ну так это не WYSIWYG. Это просто markup language — вещь очень хорошая и правильная. Просто я не понимаю, зачем брать такие странные ML как маркдаун (он же не для этого сделан, а чтобы вы могли из конференций копипастить куски и было автоформатирование) или QML (на котором сами кутеры не пишут). Есть нормальный HTML, который понимает каждая собака, который покрывает на 146% все потребности UI (если брать хороший движок), по которому и комьюнити, и документация, и где весь прогресс идёт.
Do you want to develop an app?
Re[12]: А на чем сейчас пишут GUI под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.07.21 23:34
Оценка:
Здравствуйте, Shtole, Вы писали:


S>>>Мечтать конечно не запретишь. В реальности же я недавно публиковал некий текстовой контент через некую CMS в сотрудничестве с редактором (человеком, который причёсывает контент вместе с автором перед публикацией). Получил пошаговую инструкцию, в которой первым же пунктом шло: «отключите WYSIWYG в CMS». Вот что думают профессиональные редакторы об этой идее.


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


S>Мы же не первый день живём на свете и отлично помним, что из инструментов для нубов никогда ничего хорошего не получается. Если вы профессионально (за деньги) делаете UI, придётся разбираться, чтобы не вылететь с рынка.


Ну, хз, профессионально или нет я делаю UI. Я роботов делаю, а для ПК делаю морду для управления.
Маньяк Робокряк колесит по городу
Re[11]: А на чем сейчас пишут GUI под Windows
От: Shtole  
Дата: 18.07.21 23:44
Оценка:
Здравствуйте, Marty, Вы писали:

M>ЗЫ А в винде стандартных контролов гораздо меньше, чем три десятка. Если писать на винапи — то выпиливать что-то нестандартное гораздо дольше.


Как это ни парадоксально, НЕТ. Любой шаг в сторону сделать в WM_PAINT/ON_NOTIFY гораздо проще, чем долго и мучительно настраивать BCL-компонент через «стандартные» свойства, особенно, если в конце выясняется, что сделать именно так, как надо — нельзя. Ну, а дальше известно что. «Сегодня в колбасе потребности нет!» — то есть, гнём юзерские хотелки в прокрустово ложе типовой реализации.

И это, кстати, я наблюдал именно с кучкой пользователей (ну, не 2-3, а два-три десятка). Наша команда писала внутренний софт для смежного отдела. Который назубок выучил все Delphi-компоненты и отучился «хотеть невозможного», в итоге.

M>ЗЗЫ А дельфи приложухи детектились быстро потому, что все новички любили ОК\Cancel делать с зелёной галочкой и красным стоп-знаком. Если без них, то уже и не отличишь, если у разраба руки не из жопы


Ну да, конечно. Там был, например, такой мега-таблиц, очень узнаваемый. (Делфю же проектировали, в основном, для CRUD — со всеми метафорами типа курсоров БД, торчащими наружу). Вот им, помнится, затыкали такие дыры в UI, что вспомнить страшно.

M>ЗЗЗЫ Ни понил, а что именно было Тьюринг полным языком?


Я пошутил. Смысл в том, что если перевести windows.h на Паскаль, то и на Делфи можно написать ровно то же самое, что на любом другом языке.
Do you want to develop an app?
Re[12]: А на чем сейчас пишут GUI под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 19.07.21 00:24
Оценка:
Здравствуйте, Shtole, Вы писали:

M>>ЗЫ А в винде стандартных контролов гораздо меньше, чем три десятка. Если писать на винапи — то выпиливать что-то нестандартное гораздо дольше.


S>Как это ни парадоксально, НЕТ. Любой шаг в сторону сделать в WM_PAINT/ON_NOTIFY гораздо проще, чем долго и мучительно настраивать BCL-компонент через «стандартные» свойства, особенно, если в конце выясняется, что сделать именно так, как надо — нельзя. Ну, а дальше известно что. «Сегодня в колбасе потребности нет!» — то есть, гнём юзерские хотелки в прокрустово ложе типовой реализации.


Зачем что-то долго и мучительно настраивать, когда там был механизм owner draw искаропки? Ну и нарисовать своё — это малая часть того, что надо делать для нормального контрола. Я как-то писал свой нестандартный контрол на винапи, для отображения среднеквадратического отклонения. Всё через SendMessage. Удовольствие ниже среднего, больше так не делал.

Ну и прокрустово ложе типовой реализации — чем плохо-то? В винде все контролы тоже в этом прокрустовом ложе лежат. И на самом деле, это правильно — поведение во всех прогах стандартное. А любителей кастомизации вообще надо убивать маленькими, пока не стали программистами.


M>>ЗЗЗЫ Ни понил, а что именно было Тьюринг полным языком?


S>Я пошутил. Смысл в том, что если перевести windows.h на Паскаль, то и на Делфи можно написать ровно то же самое, что на любом другом языке.


Ну, вообще-то windows.h в дельфях и был переведён на псакаль. Как и куча других апи
Маньяк Робокряк колесит по городу
Re[13]: А на чем сейчас пишут GUI под Windows
От: Shtole  
Дата: 19.07.21 00:55
Оценка:
Здравствуйте, Marty, Вы писали:

M>Зачем что-то долго и мучительно настраивать, когда там был механизм owner draw искаропки?


Как только программист начинал использовать owner draw, Delphi из волшебного чудо-инструмента «накидал контролов на форму и готово» мгновенно превращался в тыкву: всё то же самое, что если изначально использовать родной WinAPI, только между Windows и разработчиком оказывался ещё и Borland, в духе анекдотов про трёхспальную кровать «Ленин с нами». Конкретно, использование Delphi при этом обозначало дополнительный геморрой, связанный с тем, что ЯП разработки отличается от ЯП целевой платформы (забудьте про примеры в MSDN, сэмплы и библиотеки и т.п.) Но не надо думать, что использование плюсов давало иммунитет. У Builder'а, например, были свои тараканы типа __fastcall на каждый обработчик событий (я когда в первый раз увидел, как он генерирует обработчики, тихо прифигел).

Позвольте на этом замечательном примере и поставить точку в этой затянувшейся дискуссии. Те, кто изначально клюнул на сказки про WYSIWYG именно так и заканчивали — лицом к лицу с необходимостью заплатить изначальную цену в виде изучения WinAPI и набежавшие проценты в виде ненужной прослойки, дополнительного объёма кода, проблем с поддержкой и по всем кочкам.

M>Ну и прокрустово ложе типовой реализации — чем плохо-то? В винде все контролы тоже в этом прокрустовом ложе лежат. И на самом деле, это правильно — поведение во всех прогах стандартное. А любителей кастомизации вообще надо убивать маленькими, пока не стали программистами.


Вот вам маленький, но очень конкретный пример. Пользователь скажет вам, что не хочет, чтобы при изменении границ колонок в таблице мышиный курсор менялся на нестандартное нечто, нарисованное в Borland'е. У него, у пользователя, свой курсор для этого в винде настроен, с динозавриком. Что вы ему скажете? Я это всё проходил, «Not an issue/By design», фиксить не будем, гуляй юзер, жуй опилки. Потом, кажется, это починили (давно дело было, я могу путать детали). Ну, как починили — сделали системный курсор. Допустим, юзер хочет (а чего бы ему не хотеть конкретной кастомизации, если их, как вы пишете, 2-3 человека и ради них вся разработка?) наоборот — кастомный курсор. И вот тут уже вы НИ-ЧЕ-ГО не сможете сделать с готовым компонентом. Не в том дело, что под WinAPI тоже пришлось бы напрягаться и ловить... чёрт, название события забыл... WM_SETCURSOR, кажется?... а в том, что в инкапсулированном компоненте это сделать без исходников тупо нельзя.

M>>>ЗЗЗЫ Ни понил, а что именно было Тьюринг полным языком?

S>>Я пошутил. Смысл в том, что если перевести windows.h на Паскаль, то и на Делфи можно написать ровно то же самое, что на любом другом языке.
M>Ну, вообще-то windows.h в дельфях и был переведён на псакаль. Как и куча других апи

Вы, кажется, забыли, что мы говорим о визуальных редакторах.
Do you want to develop an app?
Re[8]: А на чем сейчас пишут GUI под Windows
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.07.21 04:00
Оценка:
Здравствуйте, Shtole, Вы писали:

N>>машинноизменяемый для визуального редактора,


S>Вы, вроде, взрослый, а в сказки верите. Какой ещё визуальный редактор? О чём вы?


Не сказки. В большинстве практически значимых случаев таки работает.
Вот надо разделить окно программы по вертикали впополам, а нижнюю часть горизонтально в соотношении 30/70. И да, заказчика устраивает полученное, он всё равно ничего лучше не придумает.
И таких примеров, навскидку, 90%.

А для оставшихся вполне нормально идёт, если в этом языке можно писать "а вот тут у нас будет кастомный контрол системы MyPervertedReflexiveTreeListView, в редакторе рисуй на его месте синий прямоугольник, а вот набор кастомных параметров", а остальное отрабатывается где-то внутри.

S>Я бы вообще рискнул сказать, что WYSIWYG, как концепция, с треском провалился, хотя его пихали лет тридцать — а уж про визуальные редакторы в интерфейсостроении точно лучше забудьте сразу. Если, конечно, делаете хоть что-то сложнее «Привет, мир!».


Так те самые 90% и есть "привет, мир!" в GUI варианте.
The God is real, unless declared integer.
Re[14]: А на чем сейчас пишут GUI под Windows
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.07.21 04:06
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Вот вам маленький, но очень конкретный пример. Пользователь скажет вам, что не хочет, чтобы при изменении границ колонок в таблице мышиный курсор менялся на нестандартное нечто, нарисованное в Borland'е. У него, у пользователя, свой курсор для этого в винде настроен, с динозавриком. Что вы ему скажете? Я это всё проходил, «Not an issue/By design», фиксить не будем, гуляй юзер, жуй опилки. Потом, кажется, это починили (давно дело было, я могу путать детали). Ну, как починили — сделали системный курсор. Допустим, юзер хочет (а чего бы ему не хотеть конкретной кастомизации, если их, как вы пишете, 2-3 человека и ради них вся разработка?) наоборот — кастомный курсор. И вот тут уже вы НИ-ЧЕ-ГО не сможете сделать с готовым компонентом. Не в том дело, что под WinAPI тоже пришлось бы напрягаться и ловить... чёрт, название события забыл... WM_SETCURSOR, кажется?... а в том, что в инкапсулированном компоненте это сделать без исходников тупо нельзя.


Вот за это Borland и пострадал (в значительной мере) — что он менял из стандартного системного хозяйства по максимуму всё под себя (как те же зелёно-красные ✅ ok ❌ Cancel).
И что его объектная модель при этом, наоборот, мало допускала кастомизации, где нужна.
MFC тут был гибче.

Зато сейчас кроссплатформенный Qt, который переопределяет и рисует сам чуть менее чем всё, вполне себе живёт.
The God is real, unless declared integer.
Re[6]: А на чем сейчас пишут GUI под Windows
От: Ватакуси Россия  
Дата: 19.07.21 06:49
Оценка:
N>Я одно время много на Делфи писал, а потом на Билдере. И меня раздражал этот визуальный стиль программирования, где надо заходить в кучу окошек и выставлять кучу пропертей. И очень на этом фоне зашли QWidget'ы, где всё описывается кодом, и всё в одном месте, и всё можно посмотреть глазами. Прямо таки бальзам на сердце.

Ну, нет.

Во-первых, как сказали уже в делфях можно было всё кодом прописывать — было бы желание. А можно было рисовать. Можно было даже писать расширения свои со своей логикой и мастерами.
Во-вторых, когда я увидел QT (лет 7 назад), это было как назад в 90-е, тонны настроек пишешь ручками (или некоторые таскали из проекта в проект и правили сотни строк этих), какие-то левые глюки с выравниванием, положением и т.п.

Единственно, что понравилось — возможность расширения существующих элементов (хочешь таблицу в списке — пожалуйста, хочень список в таблице — тоже левой пяткой).
Все будет Украина!
Re[7]: А на чем сейчас пишут GUI под Windows
От: Skorodum Россия  
Дата: 19.07.21 10:58
Оценка:
Здравствуйте, Marty, Вы писали:

M>ЗЫ Еще сборка в Qt Creator'е параллельная через какой-то jom идёт. И эта сцука не умеет в русские пути

Креатор умеет в qmake(jom при этом опционален), CMake и QBS.
Кирилицу в общем случае лучше вообще не использовать в путях, т.к. процесс сборки может включать вызов очень разных и древних тулзов.
Re[8]: А на чем сейчас пишут GUI под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 19.07.21 16:57
Оценка:
Здравствуйте, Skorodum, Вы писали:

M>>ЗЫ Еще сборка в Qt Creator'е параллельная через какой-то jom идёт. И эта сцука не умеет в русские пути

S>Креатор умеет в qmake(jom при этом опционален), CMake и QBS.

Спасибо, я в курсе


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


Да, но когда в конторе решался вопрос, какие будут логины — админы сказали — будут русские, и "у нас всё работает"
Маньяк Робокряк колесит по городу
Re[3]: А на чем сейчас пишут GUI под Windows
От: morgot  
Дата: 19.07.21 19:40
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, morgot, Вы писали:


M>>А почему все так не любят С++ билдер ? Для гуи под винду самое оно.

M>>И можно винапи использовать и СОМ, если где-то не подходит VCL..

bnk>Turbo Vision навсегда?


Есть современные версии же, проект развивается. Em.. Rad Studio или как то так
ну без шуток, чем он плох?
Re[9]: А на чем сейчас пишут GUI под Windows
От: Shtole  
Дата: 20.07.21 12:08
Оценка:
Здравствуйте, netch80, Вы писали:

N>>>машинноизменяемый для визуального редактора,

S>>Вы, вроде, взрослый, а в сказки верите. Какой ещё визуальный редактор? О чём вы?

N>Не сказки. В большинстве практически значимых случаев таки работает.

N>Вот надо разделить окно программы по вертикали впополам, а нижнюю часть горизонтально в соотношении 30/70. И да, заказчика устраивает полученное, он всё равно ничего лучше не придумает.
N>И таких примеров, навскидку, 90%.

А дальше? Заказчику отдаётся два пустых полуэкрана в пропорции 30/70? Ваша мысль остановилась на самом интересном моменте.

Я ещё могу согласиться, что кому-то проще в Object Inspector'е набить «30», чем написать руками «30%» в ML/CSS, но с каждым следующим шагом и с каждым следующим компонентом описание разметки текстом будет выигрывать у WYSIWYG'а всё сильнее.

Про императивный layout, понятно, речи нет — это что-то из эпохи до исторического материализма.
Do you want to develop an app?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.