Tutti i miei utenti hanno Windows. Alcuni usano Linux o un Mac, ma se lo fanno sono generalmente in grado di usare qualcosa come Mono, Wine, Parallels o dual-boot.
Il mio team di sviluppo (incluso me stesso) ha una vasta esperienza sia nella scrittura di applicazioni Swing in Java sia in Windows Form in C #. "Ampio" significa che abbiamo sviluppato e spedito oltre tre applicazioni in entrambi i tempi di esecuzione. Le applicazioni sono applicazioni di analisi tecnica, così lievi sull'interazione del database, ma pesanti sull'interfaccia utente personalizzata e sulle dimensioni dei set di dati.
Stiamo arrivando al punto in cui vogliamo davvero prendere una decisione su quale piattaforma su cui concentrarci da ora in poi, poiché sta diventando un peso per supportare entrambi (se lavori in Swing per sei mesi è troppo seccante) per abituarci di nuovo a Windows Form e viceversa) e vogliamo che tutti i membri del nostro team siano in grado di lavorare su tutte le nostre applicazioni.
- Windows Form richiede generalmente meno lavoro per rendere riconoscibili le applicazioni Windows. Nessuna quantità di skin e controlli personalizzati in Java ha risolto questo problema nel corso degli anni. Allo stesso tempo, non abbiamo mai avuto un cliente che non potesse usare le applicazioni Swing.
- Java aveva un ecosistema molto più ricco in termini di librerie e strumenti di compilazione automatizzati, ma questo sta cambiando rapidamente (Java non sta andando giù, è più che .NET sta recuperando terreno).
- Nel raro caso in cui si preferisca la multipiattaforma, Java batte .NET a mani basse. Mono è meraviglioso, ma è ancora più lavoro di Java.
Se scegliamo .NET possiamo iniziare a concentrarci su WPF, ma anche iniziare a usare F #. Se scegliamo Java, possiamo iniziare a concentrarci su RCP, ma anche iniziare a usare Scala.
Qualcuno ha dovuto prendere una decisione simile? In tal caso, cos'è stato e cosa ti ha influenzato di più? Qualche preoccupazione principale mi manca?
(Nota: ci sono già domande simili su Programmers.SE, ma non sono costruttive o da una prospettiva diversa.)