Todos os meus usuários têm Windows. Alguns deles usam Linux ou Mac, mas, se o fazem, geralmente são capazes de usar algo como Mono, Wine, Parallels ou inicialização dupla.
Minha equipe de desenvolvimento (inclusive eu) tem uma vasta experiência tanto na criação de aplicativos Swing em Java quanto em Windows Forms em C #. "Extensivo" significa que desenvolvemos e enviamos mais de três aplicativos em ambos os tempos de execução. Os aplicativos são aplicativos de análise técnica, tão leves na interação com o banco de dados, mas pesados na UI personalizada e nos tamanhos de conjuntos de dados.
Estamos chegando ao ponto em que realmente queremos tomar uma decisão sobre qual plataforma focar a partir de agora, já que está se tornando um fardo para apoiar os dois (se você estiver trabalhando no Swing por meio ano, é muito complicado. se acostumar com o Windows Forms novamente e vice-versa) e queremos que todos da nossa equipe sejam capazes de trabalhar em todos os nossos aplicativos.
- O Windows Forms geralmente exige menos trabalho para criar aplicativos reconhecíveis do Windows. Nenhuma quantidade de controles personalizados e de aparência em Java resolveu isso ao longo dos anos. Ao mesmo tempo, nunca tivemos um cliente que não pudesse usar os aplicativos Swing.
- O Java costumava ter um ecossistema muito mais rico em termos de bibliotecas e ferramentas de construção automatizadas, mas isso está mudando rapidamente (o Java não diminui, é mais o que o .NET está atualizando).
- Para os raros casos em que a multiplataforma é preferida, o Java supera o .NET. Mono é maravilhoso, mas ainda é mais trabalhoso que Java.
Se escolhermos o .NET, podemos começar a focar no WPF, mas também começar a usar o F #. Se escolhermos Java, podemos começar a focar no RCP, mas também começar a usar o Scala.
Alguém já teve que tomar uma decisão semelhante? Se sim, o que foi e o que mais influenciou você? Alguma preocupação importante que estou perdendo?
(Observe: já existem algumas perguntas semelhantes sobre Programmers.SE, mas elas não são construtivas ou de um ângulo diferente.)