|
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…).
|