Вы собираетесь продавать коммерческое программное обеспечение Windows для бизнеса. Проверьте предприятия. Выясните, что еще они покупают, и проверьте информацию о рекомендуемой платформе. Это даст вам хорошее представление о том, что у них есть и к чему стремиться.
Вы, вероятно, хотите изучать .NET (эй, вам все равно придется изучать новый фреймворк), и C # не будет трудным в освоении, если вы хорошо разбираетесь в C ++. В настоящее время это стандартная среда разработки, вероятно, по уважительным причинам.
Если вы беспокоитесь о переносимости, напишите серверную часть на C ++ и изолируйте системные компоненты. Если вы собираетесь продавать программное обеспечение Windows для предприятий, оно должно выглядеть как программное обеспечение Windows. Это должно вести себя так, как они ожидают. Не ставьте под угрозу интерфейс для каких-либо преимуществ в кроссплатформенности; вместо этого отделите пользовательский интерфейс логически. Вы всегда можете переписать его позже для других платформ.
Аналогично, продолжайте и используйте Visual Studio. Это хорошая среда, хотя я иногда скучаю по gcc, gdb и make, но, скорее всего, вы будете лучше понимать, что пишете программу для Windows. Если вы используете Cygwin и gcc, вы, скорее всего, не будете думать, как программист Windows, что означает, что это не будет похоже на программу Windows, а это означает, что у ваших потенциальных клиентов будут проблемы с этим, что означает меньше денег и больше шансов на опоздавший захватить рынок.
Я обнаружил, что переход на программирование под Windows не представляет трудностей. Просто знайте, что вы изучаете что-то новое, и что некоторые вещи являются стандартными в Windows, а не в Unix. Если вы не боитесь изучать новые вещи, у вас все будет хорошо.
Еще одна вещь: Unix-приложения часто печально известны неуклюжими пользовательскими интерфейсами. Пользователи Unix, как правило, более технические люди, которые не уделяют столько внимания тому, как все выглядит, и гораздо более щадящие уродливые интерфейсы. В мире коммерческого программного обеспечения Windows внешний вид и простота использования имеют значение, и реальными пользователями, скорее всего, будут люди с крайне неточной ментальной моделью компьютера, которые не распознали бы строку кода Python, если она укусила их в лицо .
Вам понадобится достаточно привлекательный пользовательский интерфейс, который может легко использоваться людьми, которые не заботятся о компьютерах как таковых. Это растяжка для многих из нас. Если вы не думаете, что в iPhone есть что-то особенное, вам крайне необходима другая точка зрения. Читайте о пользовательских интерфейсах, найдите кого-то другого с некоторым художественным смыслом и некоторой идеей юзабилити, что угодно. Разработка интерфейса отличается от программирования, и многие люди имеют только один из них (здесь люди, как правило, являются опытными программистами и могут иметь некоторые навыки интерфейса).