Усі мої користувачі мають Windows. Деякі з них використовують Linux або Mac, але якщо вони є, вони, як правило, здатні використовувати щось на зразок Mono, Wine, Parallels або dual-boot.
Моя команда розробників (включаючи мене) має великий досвід роботи з написанням додатків Swing на Java, а також з Windows Forms на C #. "Обширний" означає, що ми розробили та поставили понад три програми на обох режимах. Додатки - це програми технічного аналізу, настільки легкі для взаємодії з базами даних, але важкі для користувацького інтерфейсу та розмірів набору даних.
Ми підходимо до того, що ми дійсно хочемо прийняти рішення, на якій платформі зосередитися, оскільки це стає тягарем для підтримки обох (якщо ви працюєте в Swing протягом півроку, це занадто багато клопоту. знову звикнути до Windows Forms та навпаки), і ми хочемо, щоб усі в нашій команді мали можливість працювати над усіма нашими програмами.
- Windows Forms, як правило, займає менше роботи для впізнавання програм Windows. Жодна кількість знімків та користувальницького контролю на Java не вирішувала це протягом багатьох років. У той же час у нас ніколи не було клієнта, який не міг би використовувати програми Swing.
- У Java раніше була набагато багатша екосистема з точки зору бібліотек та автоматизованих інструментів збирання, але це швидко змінюється (Java не спадає, це більше, ніж .NET наздоганяє).
- У тому рідкісному випадку, коли краща мультиплатформна платформа, Java б'є .NET руки вниз. Моно чудове, але все-таки більше роботи, ніж Java.
Якщо ми виберемо .NET, ми можемо почати орієнтуватися на WPF, а також почати використовувати F #. Якщо ми виберемо Java, ми можемо почати орієнтуватися на RCP, але також почати використовувати Scala.
Хтось повинен був прийняти подібне рішення? Якщо так, що це було і що на вас найбільше вплинуло? Яких-небудь головних проблем, яких я пропускаю?
(Зверніть увагу: у Programmers.SE вже є подібні запитання, але вони або неконструктивні, або з іншого кута.)