Variazioni sul Tema
Una scelta precisa: .NET

 

Le promesse di .NET

Questa primavera ho tenuto il mio primo corso (in Italia) di .NET. Giuro che non mi sembrava vero che in Italia ci fossero – a Maggio 2001 – aziende pronte a partire con .NET. Per fortuna mi sbagliavo. Le persone che avevo di fronte a me venivano da esperienze variegate e complessivamente erano dei buoni/ottimi programmatori ma senza una grande esperienza di COM(+), MTS e Win32. La maggior parte veniva da Java e qualcuno persino da Delphi. La rappresentanza VB era di gran lunga la minoranza. È stato interessante vedere come alla fine della settimana i dubbi e i pregiudizi contro .NET in particolare, e Windows e Microsoft in generale, si siano dissolti come neve al sole di fronte alla disarmante semplicità e potenza di fuoco di .NET.
C'era poco da spiegare che cos'è MSIL a chi mastica bytecode dalla mattina alla sera. E la distanza logica tra CLR e virtual machine è minima. Managed code? Just-in-time compiler? Ah sì, come in Java. Pur non essendo C# identico a Java e pur essendoci un bel po' di differenze (per usare qualche eufemismo) tra .NET e l'ambiente Java, per tutti è stato immediato fare il mapping tra concetti .NET e concetti a loro familiari. Si può dire – loro l'hanno detto – che il livello OOP nei linguaggi .NET è pressoché identico a Java. Cioè – lo aggiungo io – viene a cadere uno dei capisaldi dell'opposizione. In qualche modo, .NET ha "copiato" il programma elettorale di Java e lo ha messo già in pratica. Non è una promessa; è una realtà.
Parliamo di .NET Framework? Bene, le classi sono piccole, veloci, consistenti, ben disegnate. Ricorda molto Delphi e la VCL. Beh, tanto per cominciare c'è dietro la stessa persona (Anders Hejlsberg) e poi questo non era ciò che mancava a Visual Basic? I mai abbastanza vituperati pseudo-oggetti di Visual Basic non ci sono più, sostituiti da vere classi. A dire il vero, è proprio VB che non c'è più. Sostituito da un linguaggio che ha solo aspetti sintattici in comune con il vecchio VB. Altro che le lamentele di chi si è schierato con VB.NOT perché è sparito GoSub con il suo carico di ricordi e memorie. La verità non è che alcune keyword sono sparite. Piuttosto, capita che alcune keyword di VB6 si ritrovino pari pari in Visual Basic.NET.
I programmatori VB sono quelli messi peggio perché, a meno di avere una buona cultura personale, sanno poco o nulla di OOP. Sono povere sfortunate vittime – forse persino inconsapevoli – dell'assistenzialismo statalista di Microsoft che per anni li ha nutriti a scorciatoie, oggetti preconfezionati, tips&tricks per aggirare non i vincoli di Windows ma quelli dell'ambiente.
Un buon programmatore VB si sente mancare la terra sotto i piedi quando scopre che ListBox1.Add non funziona. Trova inconcepibile che adesso la ListBox abbia una proprietà Items che è una collection con il metodo Add. Continua a chiamare la ListBox un controllo ActiveX. Non comprende la differenza tra classe e controllo. Non capisce perché adesso non è più necessario ricorrere a Class_Initialize nel file .cls ma c'è un costrutto fatto apposta chiamato Class. Per lui è tutta colpa di una congiura ordita da quel Grande Vecchio che si fa chiamare BillG.
Quel maledetto BillG ce lo fa apposta a cambiarci il linguaggio. E invece stavolta il povero BillG l'ha fatta grossa davvero. Nel senso buono del termine. Il framework e la piattaforma li ha fatti (fare) davvero bene.
Tutto ciò che colleghi programmatori usi a Java e Delphi rimproveravano a Visual Basic e Visual C++ ora viene meno. Finalmente si possono usare i controlli data-bound perché funzionano davvero bene e sono altamente configurabili. Anzi, fare da sé sarebbe un delitto. Come, mi raccontano, è un delitto far da sé in Delphi.
Tutto questo non è campagna elettorale. Non sono promesse di paradiso in terra per strappare un upgrade. È la realtà di fatto.
.NET è il futuro sempre più prossimo della piattaforma Windows. E tocca soprattutto chi ha sempre usato Visual Basic. La Beta 2 è oramai nelle vostre mani e con essa l'interfaccia pubblica di programmazione è arrivata alla versione definitiva. D'ora in poi si potranno avere più classi e metodi ma non codice non compatibile. Dunque è il momento buono per cominciare la marcia di avvicinamento. Marcia che è inesorabile. O Microsoft fallisce, o si cambia completamente piattaforma, o ci si adegua a .NET.

Migrazioni di massa

Il passaggio a .NET non è certo un dramma. L'ambiente software è straordinariamente potente e ben fatto. Non si tratta di piccoli cambiamenti qua e là per giustificare un upgrade. È molto di più.
Per chi programma, i vantaggi vanno da un framework di classi object-oriented e di per sé già ricchissimo di funzionalità, all'indipendenza dal linguaggio che non fa perdere le capacità di debugging e profiling incrociato. Lo stesso modello di dati è disponibile per ogni sorta di applicazione e l'integrazione con XML da un lato e con l'ambiente di sviluppo dall'altro è senza precedenti e comunque di alto livello.
Il codice scritto esistente oggi è tanto e non è pensabile, per quanto bello e figo possa essere .NET, che verrà migrato nella sua interezza. Esistono strumenti per garantire l'interoperabilità tra questi due mondi. E di nuovi ne verranno generati se dovesse servire. Ma muoversi verso .NET è un dovere per chiunque si occupi di software su piattaforma Microsoft. Non è un comizio. È una chiamata alle armi.

 

Ci sono slogan che entrano a far parte del linguaggio. E ci sono frasi e locuzioni che, per questo stesso motivo, non è più possibile utilizzare in perfetta buona fede senza incorrere in sorrisini e sorrisetti. E sempre per lo stesso motivo, un povero malcapitato framework come .NET non può avventurarsi a promettere il paradiso in terra senza che qualche programmatore elettorale non ci faccia sopra sorrisini e sorrisetti. Signore e signori, a destra e a sinistra, .NET è davvero una scelta precisa e un impegno chiaro e decisivo. Quello che promette lo mantiene davvero e senza star lì a preoccuparsi di quanto scrive la stampa ostile – la cosiddetta Internazionale dell'Open Source.

.NET è come un diamante. È per sempre. E, come mi piace ripetere sempre a mia moglie, è per sempre nel senso che poi non se ne parla più. Almeno una legislatura (pardon, major release…).

Dino Esposito pensa solo in .NET e sta pensando a come ereditare da parenti e amici. Per suggerimenti e sottoscrizioni, e-mail pausa pranzo.