Si lo so!!! In rete esistono miliardi di articoli e di post in merito a questo argomento. Solo che spesso, almeno nella mia esperienza personale, mi è capitato di leggere giudizi estremamente faziosi per l’una o per l’altra, da gente che, per volontà o per necessità professionali, hanno scelto una strada piuttosto che l’altra. Questo fa’ si che non si possa avere una effettiva e obbiettiva analisi dell’argomento. Per questo motivo, in questo post, commenterò la mia concreta esperienza con entrambe le tecnologie e con i rispettivi linguaggi di programmazione, esprimendo le mie considerazioni e invitando chiunque volesse a condividerle o dissentirle.
Per un paio d’anni ho lavorato in Java, prima sviluppando applicazioni smart client in standard edition, poi applicazioni web-oriented in enterprise; come IDE, dopo averne provati diversi, anche dei più affermati vendor del settore, la scelta è naturalmente ricaduta su Eclipse. Da un anno circa, adesso, lavoro in .Net sviluppando applicazioni smart client e pagine web utilizzando il Visual Studio come IDE.
Comincio subito con l’affermare che secondo me non ce ne è una delle due che primeggia in assoluto. Ognuna ha le sue caratteristiche che però non la mettono obbligatoriamente in “alternativa” con l’altra.
Java, infatti, è al giorno d’oggi l’unica tecnologia, in pratica, che permette lo sviluppo di applicazioni multi-piattaforma facilmente deployabili su un servlet container e/o installabili in computer con sistemi operativi differenti. Ha una grande community di estimatori dell’open source che sviluppano di tutto e di più e quindi è molto facile reperire una adatta risoluzione a qualsiasi tipo di problematica si dovesse presentare nel processo di sviluppo di un applicativo. Da non sottovalutare, inoltre, la gestione degli add-in di Eclipse (comunque ancora verosimilmente migliorabile a mio parere) è una gran genialata perché permette, dopo qualche ora/giornata di fatica magari, di avere un ambiente conforme alle specifiche esigenze per ogni tipologia di progetto che si sta sviluppando. Io, ad esempio, una volta a rodaggio col progetto in J2EE avevo Eclipse configurato con l’add-in di tomcat, un browser interno, un add-in per la creazione delle JSP ed uno per la console di Struts, oltre ai vari add-in per la gestione dei diagrammi di analisi in UML 2.0, il tool visuale, etc…
Con Visual studio, invece, ho trovato tutto ciò, e forse anche qualcosa in più, nativamente integrato nella piattaforma di sviluppo e questo, di sicuro, agevola tanto l’attività di programmazione. Il linguaggio C# (avevo letto che era un java-like ma sinceramente non pensavo sino a questo punto…) per una persona proveniente da java è di immediata comprensione e si apprezzano i nuovi costrutti (il foreach ad esempio), alcuni nuovi tipi (gli Enums), la serializzazione degli oggetti e dei file in xml nativa e, in generale, la possibilità di gestione estremamente immediata degli oggetti e delle classi che indubbiamente evitano di scrivere parte di codice che diversamente si dovrebbe scrivere in java.
Ma la cosa che in assoluto mi ha davvero colpito è il supporto che Visual Studio offre all’attività di debug delle applicazioni a mio parere davvero ben fatta in quanto permette di debuggare codice, osservare le variabili interessate e fare delle modifiche in run-time (ovviamente se non vengono interessate definizioni di metodi e dichiarazioni di nuovi oggetti) con una naturalezza e semplicità che Eclipse, purtroppo, non riesce neanche ad avvicinare.
Qual è quindi la mia opinione sul dilemma Java o .NET?
Io penso che la scelta dell’una o dell’altra tecnologia dipenda fortemente dalle tanto dibattute “constraints” che si vengono a determinare in fase di analisi e quindi prima dell’inizio dello sviluppo dell’applicazione: se infatti, per esempio, il progetto da realizzare è un portale Web da deployare su server Linux allora non c’è dubbio che sceglierei Java (no no che non si metta in mezzo Mono…), diversamente se l’applicazione da realizzare non ha il vincolo del sistema operativo o se viene realizzato in un’azienda (o da un privato) che fa’ già uso di windows come sistema operativo allora, senza ombra di dubbio, opterei per la soluzione Visual Studio.
Postato in: Informatica | Messo il tag: .net, ASP, C#, Eclipse, Informatica, j2E, j2EE, java, jsE, linguaggi, Microsoft, Visual Studio, Vs