I miei utenti hanno tutti Windows. Alcuni usano Linux o Mac, ma se lo fanno sono generalmente capaci di usare qualcosa come Mono, Wine, Parallels o dual-boot.
Il mio team di sviluppo (me compreso) ha una vasta esperienza sia per iscritto Applicazioni Swing in Java e Windows Form in C #. "Estensivo" significa che abbiamo sviluppato e spedito oltre tre applicazioni su entrambi i runtime. Le applicazioni sono applicazioni di analisi tecnica, così delicate sull'interazione del database, ma pesanti sull'interfaccia utente personalizzata e sulle dimensioni del set di dati.
Stiamo arrivando al punto in cui vogliamo davvero prendere una decisione su quale piattaforma mettere a fuoco da ora in poi, dato che sta diventando un peso da sostenere entrambi (se lavori per mezzo anno in Swing è troppa fatica per abituarsi a Windows Form e viceversa) e vogliamo che tutti nel nostro team siano in grado di lavorare su tutte le nostre applicazioni.
- Generalmente, Windows Form richiede meno lavoro per rendere riconoscibili le applicazioni Windows. Nessuna quantità di skin e controlli personalizzati in Java l'hanno risolta nel corso degli anni. Allo stesso tempo, non abbiamo mai avuto un cliente che non potesse utilizzare le applicazioni Swing.
- Java aveva un ecosistema molto più ricco in termini di librerie e strumenti di compilazione automatici, ma sta cambiando rapidamente (Java non sta andando giù, è più che .NET sta recuperando).
- Per i rari casi in cui è preferibile la piattaforma multipiattaforma, Java batte le mani su .NET. Mono è meraviglioso, ma è ancora più utile 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? Se sì, che cosa è stato e cosa ti ha influenzato di più? Qualche preoccupazione principale mi manca?
(Nota: ci sono già domande simili su Programmers.SE, ma sono o non costruttive o da una diversa angolazione.)