Хочу написать приложение примерно такого толка:
Слева - панель инструментов, из которой можно перетаскивать компоненты на рабочее поле.
В принципе из картинки должна быть примерно понятна общая идея: на поле можно создать много контейнеров, а в них поместить разный контент. Справа снизу - окно, которое изначально является невидимым, а появляется при нажатии на оранжевую кнопку со знаком вопроса.
Из неочевидного - структура контейнера заранее не известна. То есть у пользователя должна быть возможность разместить компоненты внутри например вот так:
В идеале эти текстовые блоки должны быть "плавающими" - например, чтобы можно было изменить размер мышкой и перенести нижний блок вбок, а текст сожмется\перенесется.
Помимо этого, желательно (но не обязательно) иметь возможность поместить текстовый блок над картинкой (блоки с надписями ТРЕУГ, КРУГ), чтобы добавлять какие-то подписи прямо в нужное место картинки без необходимости ее перерисовывать.
При этом еще необходимо будет реализовать сохранение всего текста и изображений в БД, чтобы бэкапить записи.
UPD. Забыл сразу написать, что очень желательна возможность приближения\отдаления.
Основная мотивация:
1) Избавиться от ограничений линейной структуры текстовых редакторов и размера их листа
2) Придание конспектам более наглядного вида - как будто перед вами детективная доска с подозреваемыми, уликами и красными ниточками, обозначающими связь между всеми этими вещами
3) Практика программирования. В итоге должен получиться этакий mindmap-редактор, в котором будет реализовыван функционал, отсутствующий в уже существующих редакторах
Из кандидатов на роль технологии приходит на ум только Wpf и Electron. Производительность и объем памяти не важен (хотя конечно если карта из 100 блоков займет 10Гб RAM и будет перемещаться с лагами в 5 секунд, то тогда важно). В Wpf знаю все рисуется весьма быстро и можно сделать модные кастомные контролы, но это несопоставимо сложнее, чем сделать аналогичные через html и css. В .Net удобные средства работы с БД и я неплохо знаю C#, но основная сложность реализации здесь лежит на интерфейсе, так что это не главный критерий, могу для этого и JS посмотреть, если интерфейсную часть так будет сделать ощутимо проще.
Так что вопрос получается таким: на чем такую задачу делать в целом проще и сподручнее?
Я могу попробовать написать Hello world на том и на том, но как бы первое впечатление не оказалось обманчивым. Поэтому интересно выслушать тех, кто имел опыт создания чего-то такого и может объективно посоветовать. Может даже какие-то другие технологии (кроме С++ и Qt, он платный).