Premessa:
ho iniziato a programmare seriamente (per lavoro) utilizzando il linguaggio Visual Basic; ho utilizzato questo linguaggio per parecchi anni nelle varie versioni che via via si sono succedute (3.0, 4.0, 5.0, 6.0). Su questo linguaggio ho investito parecchio tempo sia per apprenderlo che per approfondirlo, ricevendo un enorme aiuto dalle community quali Visual Basic Tips & Tricks, solo per citarne una. Ho anche investito del denaro, in quanto i primi esami di certificazione Microsoft che ho passato riguardavano VB6 Desktop & Enterprise, comprandomi libri sull’argomento e pagandomi i test di tasca mia.
Ho scritto parecchie linee di codice in VB6, e le soddisfazioni professionali non sono mancate; ho considerato questo linguaggio altamente produttivo e facile da imparare, ma, confesso, alcune volte mi sono scontrato con problemi non facili da superare dovuti essenzialmente alla intrinseca facilità del linguaggio che tende a mascherare dettagli importanti della programmazione a beneficio della velocità di scrittura del codice.
Con l’avvento di .NET ho utilizzato da subito il linguaggio Visual Basic .NET, soprattutto perchè provenivo dal VB6 e mi è sembrato naturale continuare ad utilizzare la stessa sintassi, conscio però del fatto che la semantica era completamente diversa. Ho approfondito parecchio la conoscenza del .NET Framework, e questa conoscenza mi ha agevolato tantissimo quando ho dovuto per forza di cose programmare in C#; infatti questo linguaggio l’ho appreso nel giro di pochi giorni poichè il tutto si limita all’apprendimento della sintassi tipica dello stesso, e questo grazie all’indipendenza del Framework .NET dal linguaggio utilizzato.
Adesso uso i due linguaggi in modo intercambiabile, ma la mia preferenza è senza ombra di dubbio per il C#, poichè, a mio avviso, nonostante il VB .NET sia completamente diverso dal suo predecessore, sia finalmente un vero linguaggio ad oggetti e fornisca la stessa potenza del C#, soffre ancora di qualche retaggio del suo passato di linguaggio “facile” ed alla portata di tutti.
Sono sicuro che se dovessi aver bisogno di programmare in un altro linguaggio .NET compliant, l’apprendimento dello stesso non durerebbe più di qualche giorno,e questo non per merito mio ma del framework .NET.
Questa lunga premessa mi è saltata in mente leggendo queto interessantissimo post di Diego Cattaruzza in risposta a questo articolo dove si pone in risalto il fatto che Microsoft “costringerebbe” i programmatori VB6 a passare forzatamente a Visual Basic .NET poichè il supporto per VB6 terminerà a Marzo del 2008.
La mia opinione è che Microsoft abbia fatto tantissimo per agevolare questo passaggio, in ordine sparso:
- Eventi gratuiti dove si cerca di fornire una risposta agli interrogativi di chi ha codice VB6 da migrare;
- Rilascio di Visual Basic .NET 2005 Express, versione gratuita dell’ambiente di sviluppo che, seppure con qualche limitazione, permette quantomeno di provare in prima persona la nuova tecnologia;
- Disponibilità gratuita di blocchi di codice (Application blocks) già pronti all’uso per fornire immediatamente le funzionalità comuni di ogni applicazione (log, configurazione, accesso ai dati,ecc)
- il termine della fine del supporto per VB6, inizialmente fissato a Marzo 2005, è stato spostato a Marzo 2008, anche grazie alla famosa petizione internazionale sottoscritta da oltre 10000 programmatori;
Inoltre, come sottolinea chiaramente e giustamente lo stesso Cattaruzza, la vecchia infrastruttura basata sull’accoppiata Win32/COM+ è assolutamente inadeguata a sostenere l’evolversi dei sistemi di comunicazione attuali; la nuova infrastruttura è basata sul .NET Framework e quindi non ha assolutamente senso continuare a supportare un linguaggio basato su una piattaforma ormai superata.
Questo discorso resta valido anche per il cosiddetto “programmatore hobbysta”, perchè se cambia l’infrastruttura sottostante lo sviluppo di software basato su Win32 e COM+ perde di significato.
Infine, un parere personale che ritengo di fondamentale importanza: l’evoluzione tecnologica per un informatico deve essere un aspetto da non mettere mai in discussione; è errato pensare che solo perchè si è speso tempo e denaro per essere padroni di una tecnologia non ci si possa rimettere in discussione spendendo altro tempo per impararne un’altra, più evoluta della precedente che permette di essere più produttivi e di scrivere software più efficiente. Questo lo afferma una persona che ha speso tantissimo tempo e denaro su VB6, ma cha ha fatto altrettanto quando l’evolversi della tecnologia lo ha messo di fronte a strumenti più evoluti.
Se si pensa che aver fatto sacrifici per impadronirsi di una tecnologia basta per mantenersi a galla nel mondo informatico sempre in continua evoluzione si commette un grave errore che può riflettersi negativamente sul proprio futuro professionale.