Commenti sull’insegnamento di VB6 in alcune scuole…

Sono intervenuto con un mio commento nel newsgroup microsoft.public.it.dotnet.vb, dove Daniele scrive così (messaggio di oggi 30 Agosto 2009, ore 02.06):

Ciao a tutto il NG,
la mia esperienza (quella con VB) iniziò vari anni fa con VB6, poi ho programmato in .NET 2003, 2005, e 2008.
Tutto per passione, ho iniziato da autodidatta e in seguito approfondito i concetti più complessi con alcuni libri.
Adesso "scopro" (in realtà lo sapevo già) che a scuola inizieranno ad insegnarci il VB6.
E mi chiedo il motivo, visto che ormai è una tecnologia obsoleta, abbandonata da Microsoft e con potenzialità nettamente inferiori a quelle offerte dalla piattaforma .net.
Io dovrei cambiare mentalità e tornare agli On Error, alle chiamate API, agli oggetti poco oggetti, a molte brutture e a tutte le mancanze delle comodità di oggi? Va bene per chi lo usa da sempre per lavoro, ma per chi inizia da zero non mi sembra una scelta azzeccata.
Perché? Esiste un motivo valido nel preferire VB6 alle altre possibilità? Oppure è una scelta dettata dalla convenienza, non necessariamente economica?
Mi piacerebbe sentire l’opinione di qualcuno sicuramente più esperto
di me.
Ciao!

La mia risposta è la seguente:

Ciao Daniele.
I tuoi dubbi sull’opportunità di utilizzare VB6 come linguaggio didattico sono perfettamente legittimi, per vari motivi.
Tuttavia, sin dall’uscita di alcuni miei articoli, all’inizio del 2005, sul passaggio da VB6 a VB.NET (all’epoca c’era la versione 2005), ho avuto l’occasione di avere diversi scambi di e-mail anche piuttosto "infuocati" con alcuni insegnanti appassionati di VB6.
Questi insegnanti argomentavano che, dopo aver creato tanti programmi didattici in VB6, avrebbero dovuto convertire tutto alle nuove versioni per .NET, con la necessità di ristudiare completamente Visual Basic, visto che la programmazione a oggetti è cosa ben diversa da quella che avevano utilizzato fino a quel momento.
Non capivano la necessità di dover "ricominciare da capo" solo per la pretesa di Microsoft di imporre un nuovo linguaggio, chiudendo completamente i ponti con i programmatori VB6 che erano perfettamente soddisfatti del linguaggio che conoscevano a menadito.
Le discussioni di questo genere sono andate avanti un bel po’, ma non mi è stato possibile convincere questi insegnanti della validità della scelta di Microsoft nel proporre finalmente un linguaggio totalmente orientato agli oggetti.
Del resto, finché anch’io programmavo in VB6, inizialmente ho avuto anch’io qualche difficoltà nel passaggio da VB6 a VB 2005, sebbene io avessi anche già programmato in JAVA (linguaggio anche questo completamente a oggetti, già da tempo) all’università.
Il problema, quindi, è una prima resistenza iniziale relativa alla necessità di imparare una nuova "forma mentis", prima ancora di imparare il nuovo linguaggio.
Non posso quindi che considerare negativamente quegli insegnanti che si chiudono a riccio nel loro "storico" modo di insegnare, con strumenti obsoleti, e che non vogliono guardare un po’ più in là del proprio naso, per ottusità e/o per pigrizia.
Peraltro gli insegnanti fanno quel lavoro proprio perché hanno voluto dedicarsi alla formazione dei giovani e quindi la loro prima “mission" dovrebbe essere proprio quella di insegnare l’apertura mentale che è alla base dello studio e della ricerca scientifica.
Con l’ottusità e il "piccolo comodo orticello" non si va da nessuna parte.

Con questo post voglio ribadire, alla luce di quasi 5 anni di programmazione con VB .NET (versioni 2005, 2008 e la versione preliminare del 2010) e di alcuni libri pubblicati, che la mia scelta nel passaggio da VB6 a .NET è stata più che azzeccata. Sono un programmatore soddisfatto di VB.NET, perché con VB.NET faccio più cose di quanto riuscivo a fare con VB6.

E’ vero: ho dovuto studiare molto e sperimentare ancora di più. Però ora riesco ad evitare l’utilizzo di tutte quelle API e di quei “trucchetti”, senza i quali con VB6 non si riesce a fare quello che con VB.NET si riesce a fare con una riga o poche righe di codice.

Inoltre si inizia a vedere un effetto anche sul mercato del lavoro e sul mercato delle applicazioni: sempre più aziende cercano programmatori o analisti con conoscenze di VB.NET o di C# e sempre più aziende propongono le versioni delle loro applicazioni in .NET.

La tecnologia .NET è ormai matura, ma qualcuno non se n’è ancora accorto…

Annunci

Pubblicato il 30 agosto 2009 su Novità. Aggiungi ai preferiti il collegamento . 3 commenti.

  1. Sono pienamente d’accordo.
    Il pasaggio a .NET non è “la pretesa di Microsoft di imporre un nuovo linguaggio” anzi è l’implementazione di una piattaforma che permette una più agevole, veloce e sicura programmazione.
    Certo, questo ha comportato l’adozione di un “nuovo stile” di programmazione (in VB6 si usava una pseudo programmazione ad oggetti, in .NET, qualunque sia il linguaggio usato, la OOP è prevista nella sua completa forma).

    Un insegnante, che non comprende l’importanza di una passo così decisivo nella programmazione, NON è all’altezza del suo compito.

    Mi piace

  2. io invece, non sono d’accordo signori !

    Sono un appassionato utilizzatore di .net
    ma considerando cosa implica il convertire
    un progetto / programmatore da vb6 a vbasic
    credo che la soluzione sia un’altra …

    Molto, ma molto meglio Java , costi per la scuola zero,
    linguaggio a oggetti e come ha detto pure l’autore
    una volta, si puo’ usare semplicemente il notepad
    per creare una procedura …

    La scuola deve insegnare i concetti base, non correre
    dietro alle strategie commerciali (mutevoli) della
    Microsoft …

    –> Un insegnante, che non comprende l’importanza di una passo
    così decisivo nella programmazione, NON è all’altezza del suo compito.

    il punto e che all’ epoca l’insegnante doveva puntare su un linguaggio
    ad oggetti tipo delphi o java, adesso ne paga le conseguenze …

    Mi piace

  3. Ciao Fabio.
    Il punto è un altro: molti non capiscono perché ci sono così tante difficoltà a convertire un progetto da VB6 a VB.NET e non capiscono che bisogna cambiare “forma mentis” per passare da una programmazione procedurale e basata su eventi a una programmazione orientata agli oggetti.
    In sostanza, quello che alcuni non hanno ancora capito, è che VB.NET non è una nuova versione di VB6, ma è proprio un nuovo linguaggio. Che poi questo linguaggio abbia in sé una libreria che aiuta a convertire (malamente) il codice VB6 è un altro paio di maniche.
    Su questo convengo che Microsoft avrebbe dovuto dare un taglio netto con il passato, senza alcuna compatibilità verso VB6: almeno sarebbe stato più chiaro che VB.NET non è un VB6++
    Tu hai citato JAVA: io ho programmato in JAVA all’università. JAVA è estremamente simile a C#, che è un linguaggio .NET. La similitudine tra i due linguaggi è evidente sia nel fatto che sono entrambi linguaggi a oggetti, sia nella sintassi (anche se ovviamente utilizzano un Framework diverso e quindi le “istruzioni” sono diverse).
    Invece C# e VB.NET utilizzano lo stesso Framework, per cui, anche se la sintassi è profondamente diversa, le classi utilizzate sono le stesse, così come sono sostanzialmente le stesse anche le tecniche di programmazione orientata agli oggetti.
    Il linguaggio in sé (sia JAVA, sia VB.NET, sia C#) è gratuito e a costo zero per la scuola: per tutti questi linguaggi basterebbe il Notepad, non solo per JAVA.
    Infatti, ti basta scaricare e installare il Framework .NET e hai a disposizione tutte le classi di base e i compilatori per VB.NET e per C#, gratuitamente.
    Non capisco dove sia molto meglio JAVA, visto che VB.NET e C# offrono esattamente le stesse cose.
    Inoltre, dal sito Microsoft puoi scaricare anche Visual Studio 2008 Express che contiene i setup di Visual Basic 2008 Express, Visual Web Developer 2008 Express, Visual C# 2008 Express e Visual C++ 2008 Express. TUTTI GRATIS.
    E’ ovvio che se vuoi una versione professionale di Visual Studio 2008 (Standard, Professional o Team System), la devi pagare, ma questo vale anche per JAVA, se vuoi un prodotto di qualità superiore, performante e con tante caratteristiche utili per una programmazione professionale e magari in team.
    Infine tu dici “la scuola deve insegnare i concetti base, non correre dietro alle strategie commerciali (mutevoli) della Microsoft”.
    Niente da eccepire, ma quello che manca nella scuola è un aggiornamento serio da parte degli insegnanti in ambito informatico.
    Un insegnante che non comprende l’importanza di insegnare la VERA programmazione orientata agli oggetti, NON è all’altezza del suo compito! 😉
    Ultima cosa: non capisco il riferimento alle “mutevoli” strategie commerciali di Microsoft.
    VB.NET è uscito per la prima volta nel 2002. In 7 anni sono uscite diverse versioni sia del Framework .NET sia di Visual Studio, ma l’impostazione generale è rimasta la stessa e rimarrà la stessa anche nella prossima versione 2010.
    La “mutevolezza” finora si è esternata semplicemente nell’estensione delle funzionalità, aggiungendo alla base iniziale tutta una serie di tecnologie che aiutano enormemente il programmatore ad essere più produttivo: LINQ (in tutte le sue “forme”), WPF, WCF, WF ecc. ecc.
    Peraltro, dal 2005, Microsoft ha reso disponibile gratuitamente sia il Framework .NET, sia gli ambienti di sviluppo in versione Express, così da favorire proprio gli insegnanti, gli studenti e chiunque voglia avvicinarsi alla programmazione nell’ambiente .NET.
    Non mi pare quindi che le strategie commerciali di Microsoft siano state così sfavorevoli.

    Mi piace

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: