15

Jul

Competenze trasversali Vs Competenze specifiche & Java vs .NET

Ciao a tutti

 

Spesso capita di leggere su blog e forum vari gente che si chiede cosa fare nel futuro come DEV?

E’ meglio Java o .NET?

E le risposte sono le solite: è meglio java, è meglio .net, impara tutto, impara cobol ke si usa ancora….

Ormai sono anni ke lavoro in questo campo…. di sicuro non ho la risposta finale alla questione, ma dirò la mia:

 

Java è un linguaggio cui tutti NOI dobbiamo fare l’inchino… senza Java non esisterebbe il mondo di oggi (per noi DEV)

Detto questo, c’è da dire anche che Java non è più l’unica piattaforma di qualità per sviluppare software a 360 gradi su più piattaforme. Vedi Mono, MonoTouch, MonoDroid

Oggi in .NET è possibile scrivere programmi, programmare servizi, giochi e rich UI, senza mai abbandonare lo stesso IDE (eccellente) o lo stesso linguaggio (più vasto di Java). Non solo general-purpose, ma anche funzionale grazie a F#.

Non amo guerre di religione perchè in genere quando si parla di Java vs .NET questo accade, su Wiki EN c’è 1 interessante comparativa a livello di framework e di linguaggio:

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

http://en.wikipedia.org/wiki/Comparison_of_the_Java_and_.NET_platforms

 

Ciò che invece non condivido, sono le 2 frasi: “impara tutto ke ti rivendi su tutto”, e “impara cobol ke tanto si usa sempre”.

 

1) Impara tutto?!?!? Io sono pluricertificato su .NET e non conosco tutto il framework, ed è giusto così. Il mercato vuole esperti, e il settore dell’IT vuole esperti. Non esiste il tuttologo, e benchè abbia lavorato con persone ritenutesi tali, il risultato è sempre molto qualunquistico. Scappate da idee simili.

Specializzarsi è il nostro obbiettivo migliore. UI, Servizi, Integrazione, Modellazione dati, DBA, Software Engineering (ke sarebbe la programmazione specifica di domini, es: automatica, elettronica, componentistica, domotica, dove vanno alla grande gli ingegneri informatici perchè bravi anche in matematica, fisica, etc, vedi Ferrari s.p.a. che ha bisogno di 1 SE senior ke capisca cos’è la Stiffness - http://en.wikipedia.org/wiki/Stiffness - prima di fargli programmare il modellatore o il simulatore per le monoposto. Io da buon informatico non sapevo cosa fosse prima di incontrare 1 ingegnere ke mi ha spiegato).

Insieme al ruolo però, credo sia importante il linguaggio/piattaforma. Se hai bisogno di un esperto in .NET chiami la tal persona, se hai bisogno di 1 esperto su Java, chiami l’altra tal persona, non chiami mai lo smanettone su entrambe… Oggi è importante certificarsi e aiutarsi a vicenda, partecipare a community e “entrare nel giro”, solo così si garantisce la qualità professionale, quella derivata da studi formalizzati (cerfificazioni) e dalla partecipazione che mantiene alta la guardia, l’interesse per il settore (le community/conferenze/etc).

 

2) Imparare oggi Cobol, tanto di cappello al linguaggio, ma credo che sia 1 altro errore….

Andare all’università, studiare tanto, e poi imparare qualcosa ke è così vecchio, che aliena così tante conoscenze e competenze odierne, è assurdo dal mio punto di vista.

 

Concludendo, io sono per la specializzazione. Siamo diversi noi, e come noi sono diversi I linguaggi e le piattaforme. Qualità significa:

1) Usare la piattaforma ke ha più attinenza con le nostre necessità

2) Usare la piattaforma nel modo per cui più è stata pensata

Posso scrivere 1 gioco in VB6, certo, ma non sarà mai come il gioco scritto con XNA, perchè? Perchè ho usato il mio tempo/competenze su di un volano (l’ambiente) che mi ha dato molto di più.

 

Come sempre, sono qui per ogni commento/critica/etc

 Smile

 

Anto

by Antonio Esposito on 7/15/2011