Caso 2: riscrivere
Questa è l’opzione radicale, quella che piace agli audaci e agli insofferenti per la staticità . Si tratta di una strada faticosa, ma i pericoli sono legati alle incognite della realizzazione di un sistema, quelle che si devono anticipare qualunque sia il progetto che si intende realizzare, per il solo fatto di avere iniziato a realizzarlo. La scelta più importante è quale direzione prendere. Ci sono due variabili da considerare: la piattaforma e il linguaggio.
La piattaforma si suppone che rimanga Windows, a meno che uno si faccia attrarre da Linux o da Java, ma anche su Windows occorre scegliere fra diversi campi di sviluppo.
Esistono tre bersagli diversi per la creazione di applicazioni: il vecchio desktop, il nuovo e, all’interno del vecchio desktop, WinForms e Wpf.
Il vecchio desktop, quello di Windows 7 non molla e Microsoft lo sta sempre più riportando sul palco, dopo avere tentato – sbagliando – di sistemarlo dietro le quinte. In realtà , uniformare il computer al tablet è stata una mossa avventata e, in ultima analisi, sbagliata. L’interazione ideale su uno schermo da 10 pollici non è detto sia altrettanto sensata su un monitor da 23 pollici.
Con Windows 8.1 il vecchio desktop è tornato l’ambiente principale di interazione. C’è ancora il cambio di ambiente quando si passa a un’applicazione per il nuovo desktop, ma questo scomparirà nel prossimo Windows 9, anzi 10, che vedrà convivere applicazioni vecchie e nuove in diverse finestre sul desktop.
Quindi, il desktop tradizionale non ci sta lasciando, ma è anche vero che le applicazioni con l’interfaccia moderna non saranno più chiuse nel loro ambiente. I modelli di interazione delle nuove applicazioni sono interessanti e funzionali, quindi attenzione al senso di vecchio che daranno le applicazioni tradizionali.
Dovendo orientarsi nella scelta, il campo che richiede meno investimento è quello delle applicazioni desktop tradizionali (WinForms). Con WinForms lo sviluppatore VB6 va sul sicuro, portandosi dietro buona parte dei propri ricordi sul nome degli elementi di interfaccia e quello che fanno. Si tratta di una scelta prudente, ma bisogna considerare che prima o poi ci si dovrà muovere anche da qui e abbracciare del tutto lo sviluppo di interfacce utente con specificazione dell’interfaccia in un dialetto Xml chiamato Xaml, come Wpf.
La motivazione per scegliere Xaml è che si tratta della stessa tecnologia che muove le applicazioni per Windows Store e per Windows Phone, una scelta obbligata per chi vuole vendere applicazioni con l’interfaccia moderna nello shop di Microsoft.
Nel passaggio a VisualBasic.net ci sono diverse novità che riguardano il linguaggio, quindi sostanzialmente, si tratta di scegliere se fare un solo gradino o due insieme.
Può aiutare a decidere un progetto di prova realizzato seguendo le istruzioni di un ottimo e esteso tutorial sul sito Microsoft (bit.ly/wpfintro).
Infine, chi è pronto ad un salto nel vuoto può decidere di traslocare su C#. Il moderno linguaggio di Microsoft non è così complicato da non poter essere appreso in tempi brevi e ha una forte somiglianza con altri linguaggi moderni, come Java. Questo, è un vantaggio sia per chi Java lo conosce già , sia per chi vuole tenersi aperta una porta verso altre possibilità di lavoro.
Per capirci, se prendiamo uno dei siti più popolari di condivisione di conoscenza fra sviluppatori, StackOverflow e guardiamo la pagina che raggruppa le domande per linguaggio (stackoverflow.com/tags), possiamo osservare che ci sono 700.000 domande su C# e 74.000 su Visual Basic.net, mentre nell’indice Tiobe (bit.ly/tiobeidx) C# è subito dietro C, Java, Objective-C e C++, mentre Visual Basic.net è all’undicesimo posto. Non ci sono differenze di qualità di codice e velocità fra Visual Basic.net e C#, ma è indiscutibile che C# è mainstream.
Tirando le somme, la via più breve è passare a Visual Basic.net con WinForms. Chi è interessato a vendere le applicazioni nello shop di Microsoft deve convertirsi a Xaml e chi vuole aprirsi tutte le opzioni può tentare di fare un salto definitivo sul linguaggio più diffuso.