Как выбрать язык для программы типа Visio, Xmind и т.п.?
Слегка знаком с C++, C# и Java.
Хочу попробовать написать программу для создания блок-схем, mind-map'ов и подобной графики. Писать буду для наращивания опыта и курсовой работы по компьютерной графике, но если выйдет стоящее, то и продавать не грех.
О кроссплатформенности мне думать ещё рано, так что пока что планируется только Win10.
Нужно ли знать теорию графов из дискретной математики?
Писать для Win10 можно на любом языке или для такой задачи есть оптимальный?
Писать для кроссплатформы можно на любом языке или для такой задачи есть оптимальный?
любой язык из этих: С++, C#, Java, Phyton, HTML5 платформы кроссплатформы: Win7-10, Linux, MacOS X, Android 6+, iOS 11+, веб-версия
Всё зависит от вас. Но сконцентрироваться на написании программы только для Windows 10 - плохая идея. Слишком мало клиентов будет. Пусть будет минимальной версией считаться Windows 7. Поддержка Linux будет считаться огромным плюсом. Необязательно писать только на одном языке, можно на смешанном. Например, за интерфейс можно написать на языке C# или Java, а движок, занимающий графикой - на C/C++ для производительности и/или для получения доступа к аппаратному ускорению типа CUDA/DirectCompute/OpenGL.
Теория графов вам точно будет нужна. В любом раскладе.