metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-03-24 10:06 pm

Qt

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

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

Из условно-пригодного осталось Qt, но что будет с ним после того, как его купила нокиа, а затем продала дигии - неясно.
Но таки альтернативы все равно нет, решил попытаться сделать прототип софтины, аналогичной той, что ранее сделана на дельфи и на гопнете (более-менее универсальный опердень-клиент, использующий сгенерированные кодогенератором метаданные для GUI и взаимодействия с бэк-ендом в виде БД или RESTful апи к серверу приложений ).
Пока идет туговато, разные типичные вещи, типа "грид с данными", которые в дельфи сделаны идеально, в гопнете как-то "так", тут приходится пока мудрить вручную, изучая, как это сделано в стандартных классах и примерах.

[identity profile] metaclass.livejournal.com 2013-03-24 08:26 pm (UTC)(link)
Какое количество индусов на одну сущность предметной области?
Сколько до этого было вложено ресурсов в используемые инструменты?

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

Но даже в таком варианте: я беру дельфи и переопределяю поведение TDrawGrid руками за пару дней, делая устраивающую меня реализацию UI с MVC, моделями для данных и прочим.
Попытка такое же сделать на дотнете-qt-swing всегда выливается либо в реализацию всего с нуля, либо в какие-то попытки обойти индусятину во внутренностях, типа "вот этот метод мы вызвать/переопределить не можем, потому что авторы решили что он никому в таких целях не нужен".
То ли у меня руки кривые, то ли мозг дельфями поломан, но эта ситуация повторяется с 2006 года постоянно. "Два дня работы на дельфи и месяц мелких доработок для идеального юзабилити" vs "Месяц дрочева в ООП на дотнете и поделка, которая в лучшем случае работает".

[identity profile] sergiej.livejournal.com 2013-03-24 08:29 pm (UTC)(link)
То есть задача - менять поведение грида? Или просто заполнить грид данными с бекенда?

[identity profile] metaclass.livejournal.com 2013-03-24 08:51 pm (UTC)(link)
Показать данные с бек-енда, с редактированием и более-менее нормальным отображением.
Конкретно у меня три вариации гридов: обычный резальтсет с подгрузкой по мере скроллирования (или типа paging), затем кросс-отчеты, затем грид вида "MхN параметров фильтра вида "подпись+редактор поля"". Первое делается стандартными средствами хоть как-то везде, второе и третее - полная печаль.

[identity profile] gineer.livejournal.com 2013-03-25 09:46 am (UTC)(link)
Делал как-то свой грид-таблицу на wxWidgets
потому что там ничего такого вообще нет,
а то что есть, не расширяемо.
Правда никаких таких MVC не получилось, да и не особо нужно было.