Это зависит. Для Java (и других кроссплатформенных фреймворков) дело в том, что на Mac она выглядит не совсем правильно. Скорее всего, пользователи Mac будут жаловаться на то, что пользовательский интерфейс не выглядит и ведет себя прямо на своей платформе.
У меня был большой опыт, чтобы приложения wxWidgets выглядели «хорошо» на Mac, а в некоторых случаях вообще работали, и моя грубая цифра в том, что вам нужно 20% ваших усилий, чтобы заставить его работать / чувствовать себя правильно Mac. Но это может быть сделано. (Даже если вы не заботитесь о том, как чувствуют себя ваши пользователи Mac, все равно выделите время на то, чтобы взглянуть на Mac - и на все другие платформы, на которых вы развернули приложение wxWidgets - вероятно, будут ошибки только при запуске вашего приложения.
По крайней мере, с wxWidgets / другими кроссплатформенными фреймворками вы можете столкнуться с ситуациями, когда вам нужно использовать специфичный для платформы код (где-то), чтобы получить должный эффект (вы хотите иметь предпочтение для запуска вашего приложения). при запуске, например: пользовательский код).
В сообществе программистов на Mac есть движение, хотя я признаю, что в приложениях с высокой интенсивностью работы с графическим интерфейсом это нереально, - это создание пользовательских интерфейсов для каждой платформы. Если ваша бизнес-логика учтена правильно, это должно быть теоретически возможно. Скажем, напишите свою бизнес-логику на C ++, затем вызовите этот C ++ из графического интерфейса .NET и назовите этот C ++ из своего пользовательского интерфейса Cocoa на Mac.
В одном проекте, который я использовал для этого отдельного подхода к пользовательскому интерфейсу, не работал бы вообще (пользовательский интерфейс был просто слишком большой). В другом проекте это могло бы сработать, хотя пользовательский интерфейс был очень маленьким.
@ Пит Киркхэм предложил OpenGL: если бы речь шла о создании оболочки для каждой платформы с (однако вы делаете представление OpenGL на каждой), вы бы сделали свой код представления также для каждой платформы, если OpenGL выполнимо в вашем случае.
Тогда есть Интернет. За последние несколько лет была проведена интересная работа по созданию графиков в веб-пространстве. Возможно, ваши потребности (большие объемы данных, графики) перевешивают то, что доступно, или вам нужно беспокоиться о развертывании сервера и (скажем) о том, чтобы не отставать от сложных запросов на вычисления от ваших пользователей. Может быть, веб-подход работает очень хорошо - только одно место для развертывания программного обеспечения и т. Д. И т. Д.
Я думаю, что все сводится к тому, какая инфраструктура содержит инструменты для работы с графикой и данными. У wxWidgets есть графическая структура, которая приходит на ум: wxPlot (и я думаю, что есть еще одна). Также есть пример от NVIDIA, как использовать их Scene Graph SDK с помощью wxWidgets. Платформенное приложение для Mac может использовать Core Plot . Существуют различные графические платформы для Интернета.
Или, может быть, QT или Mono имеют лучшие графические способности, или что-то другое, от чего зависит ваше приложение, так что в итоге вы идете по этому пути.