Ciao Max, benvenuto nel forum, apprezzo che tu abbia voluto chiedere un parere alla community.
Penso che non ci sia bisogno di un evangelist ad elencare i vantaggi di dotnet. Bisogna solo fermarsi e capire il punto di vista del tuo collega. Infatti, sono convinto che dotnet non c'entri in questo discorso, e neanche Clipper, SQL o ajax.
Anch'io conosco un paio di professionisti che, come lui, hanno quell'opinione. Questi conoscenti, nel corso degli anni, hanno maturato sul campo una grande esperienza e la loro capacità è comprovata dal successo delle aziende in cui lavorano.
Tuttavia succede che, come qualsiasi altra persona, ognuno ami costruire attorno a sé una "zona di comfort" in cui si sente competente e un valido aiuto per gli altri.
I cambiamenti nel mondo circostante premono
costantemente su questa zona e possono essere recepiti come fastidi. Immagina di doverti alzare dal letto in pieno inverno, alle 6 di mattina, e di scoprire che il riscaldamento non è partito. Non è una sensazione piacevole dato che avevi una bella temperatura, sotto le coperte.
Allo stesso modo, in ambito informatico come in tanti altri ambiti della vita, ogni mese qualcuno si inventa qualcosa di nuovo di cui non conosciamo nulla: né l'origine né i problemi che dovrebbe risolvere.
Almeno finché non iniziamo ad interessarcene ma quando si è già esperti in qualcosa, sentirsi di nuovo dei principianti non è piacevole. La prima inclinazione è quella di ricacciare indietro questa sensazione e rimarcare con più forza i confini della propria zona di comfort. Però così inizi ad innalzare un muro, che ti isola dagli altri e ti rende un aiuto meno valido per loro.
E' importante aprirsi alle novità e accettare che, se vuoi fare questo mestiere, è bene restare in perenne apprendimento.
Ti dimostro che posso riscrivere quelle righe di codice Clipper anche in C#, su un'applicazione Console, a testimonianza che i linguaggi ad alto livello che usiamo oggi non sono diventati prolissi o inefficienti.
var tTitolo = ""; var dtPub = DateTime.Now; var nPrzLis = 0m;
do { Console.Write("Inserisci il titolo del libro: "); } while (!Regex.IsMatch(tTitolo = Console.ReadLine(), "^.{1,150}$"));
do { Console.Write("Data pubblicazione: ");} while (!DateTime.TryParse(Console.ReadLine(), out dtPub));
do { Console.Write("Prezzo Listino: ¤"); } while (!decimal.TryParse(Console.ReadLine(), out nPrzLis));
Questo programma chiederà all'utente di inserire 3 valori e ne validerà l'input. Si tratta di 4 righe di codice che assolvono ad uno scopo ben preciso. Da nessuna parte ho dovuto usare SQL, Ajax o altro.
Se il tuo collega ha espresso il suo giudizio mettendo a confronto questo codice, che va in esecuzione in maniera sincrona sul PC dell'utente, con quello necessario in
un'applicazione web, allora non si è dimostrato intellettualmente onesto con sé stesso.
Saprà sicuramente che oggi il mondo è molto più connesso; sviluppiamo molte più applicazioni client-server, dove le due parti non si trovano in LAN e che quindi sono soggette a latenza di rete. Il protocollo HTTP è asincrono e pone delle sfide maggiori rispetto ad un'applicazione tradizionale. Solo le nuove tecnologie, come ad esempio Ajax, riescono a risolvere quei problemi in maniera egregia.
Se oggi esistono tante opportunità per lo sviluppatore è perché non ci accontentiamo più di mostrare una Textbox.
- I software vengono sviluppati per semplificare la vita alle persone, quindi l'usabilità è un punto cardine. Vogliamo aggiungere alla Textbox un autosuggeritore, così che l'utente possa completare la digitazione più velocemente?
- L'efficienza del codice non si misura più col numero di righe necessarie a portare a termine un compito. Il codice che uso per creare una Textbox deve essere leggibile, testabile e manutenibile, sia da me che dai miei colleghi che partecipano al progetto. Non come quelle 4 righe di codice C# che ho scritto qua sopra.
Un tempo si considerava un bravo sviluppatore quello che era in grado di scrivere del codice talmente complesso da non riuscire a leggerlo. Oggi ci si mantiene sul principio KISS. - Il motivo per cui oggi vedi applicazioni con tanti layer è perché ha prevalso il buonsenso di spezzare il problema in frammenti più semplici, che vengono caricati di una singola responsabilità. Questa consapevolezza la trovi distillata in pattern architetturali (trovi delle informazioni nella sezione Patterns & Practices di msdn.microsoft.com). Anche i programmi di vent'anni fa dovevano risolvere problemi complessi, ma lo sviluppo forse non era supportato da strumenti evoluti come quelli di oggi e il codice poteva assumere velocemente l'aspetto di una grossa palla di fango. Li dico guardando me stesso e a come sviluppavo tempo addietro.
Insomma, ogni tecnologia nasce per aiutarti a risolvere un problema ben preciso. Capisco che, dato che il mercato è libero, a volte hai ben più di un'alternativa tra cui scegliere. Questo paradosso della scelta dapprima ti può intimorire ma nulla ti vieta di rivolgerti alla community o ad un consulente per avere un consiglio verso la soluzione migliore.
aspmaxsoft ha scritto:
I dinosauri siamo noi!
No, credo di no. Dì al tuo collega che non c'è vergogna nel dire "non lo so". Anzi, ti dà uno stimolo che ti porta verso il "voglio imparare".
Buona Festa della Repubblica
Modificato da BrightSoul il 02 giugno 2012 17.36 -