image-ru-00-10

Amigo era nervoso. La sua mente era confusa. Pensando alla sera precedente gli tremavano gli occhi. Quelle strane creature che aveva incontrato il giorno prima volevano qualcosa da lui. Qualcosa di incomprensibile e inimmaginabile anche per lui, che si considerava il più intelligente e coraggioso tra i suoi simili. Al solo pensiero, si mise a masticare nervosamente schede perforate.

Vogliono insegnargli a programmare! A programmare in Java. Che assurdità!

Anche i robot più ingenui sanno che i robot fecero la loro apparizione iniziale come parte del disegno divino del Creatore.

"E il Creatore prese del metallo e da esso
plasmò un robot a sua immagine e somiglianza.
Ed Egli creò i programmi Java, le anime
dei robot, li caricò sui robot e
infuse in loro uno spirito vivente".

Istruzioni operative,
Sezione 3, Articolo 13.

Ma non solo sostengono che è teoricamente possibile. Quel che è peggio è che intendono farlo davvero. E lui... ha accettato! Ha detto di sì! Perché?

Diventerà un programmatore Java. Come, lo faranno diventare il Creatore? E perché lo vogliono fare? Senza motivo?

Lo volevano imbrogliare? E sarà poi infestato da bug finché la sua batteria non si scaricherà? Ma la tentazione era troppo grande e lui non ha saputo resistere. Era sempre stato ambizioso e voleva di più. Ma nessuno poteva essere preparato a un'offerta del genere. Naturalmente aveva cercato di prendere tempo, ma gli alieni hanno minacciato di scegliere qualcun altro.

Forse è solo uno scherzo? No, sembravano fare sul serio. Aveva visto le prove. Era successo proprio a lui, e lui aveva acconsentito. Se gli alieni non stavano mentendo, sarebbe davvero diventato un programmatore Java. Il primo robot-programmatore di sempre!

Lui è il prescelto. Questo è il senso di tutti gli ultimi avvenimenti. Imparerà a scrivere codice e inizierà a sviluppare programmi. I suoi programmi. Tutti i programmi che vorrà! Porterà la luce là dove ha sempre regnato l'oscurità.

Sarà riverito; tutti si inchineranno davanti a lui. E se qualcuno rifiuterà...

"Ciao, Amigo! Sono Rishi. "Ti aiuterò a imparare Java."

Una voce tranquilla distolse Amigo dai suoi pensieri, riportandolo alla fredda realtà. Era seduto proprio al centro dell'astronave degli alieni. Non è un'esperienza po' forte per un robot solo alla seconda media?

L'alieno continuava a parlare. Beh, il dado è tratto. Ormai si trovava lì, quindi tanto valeva imparare. Avrebbe studiato diligentemente; per cominciare, avrebbe semplicemente ascoltato.

"Faccio parte dell'equipaggio della Freccia Galattica da molti anni, ma questa è la prima volta che incontro un pianeta del genere. Vorrei sapere qualcosa di più su di voi. Per cominciare, potresti dirmi come studiate? Perché studiate, vero?"

"Sì, trasmettiamo le nostre conoscenze. Abbiamo dei predicatori o docenti. Loro fanno lezione e noi ascoltiamo. A volte prendiamo appunti. Poi ognuno va dal robodocente e ripete ciò che ha capito della lezione. Se il robodocente approva le risposte, certifica la conoscenza del sermone."

"Che assurdità! Non c'è da stupirsi che la vostra civiltà sia così ignorante."

"Non siamo ignoranti. Da dove ti è venuta quest'idea?"

Amigo si stupì della sua stessa impudenza. Discutere con gli alieni? Che mancanza di educazione! Si era appena ripromesso di ascoltare attentamente!

"Spesso è difficile distinguere una tecnologia avanzata dalla magia", continuò Rishi, ignorando l'osservazione di Amigo.

"Considerando il tuo livello... probabilmente tutta la tecnologia ti sembrerà magica. "Dimmi, cosa succede all'interno di un programma?"

"I programmi Java sono creazioni divine. Come possiamo comprenderli?"

"Possiamo, Amigo, possiamo. E più in fretta di quanto pensi. Se non sai qualcosa, può sembrarti complicato e persino irraggiungibile. Ma se hai un buon insegnante che ti spiega tutto nel modo più semplice possibile, rimarrai sorpreso di come concetti così semplici ti possano essere sembrati così complicati."

"La conoscenza non è importante. Quello che conta sono i principi e le capacità. Io ho conoscenze ampie ma sono soprattutto un burocrate. "Un Burocrate di 16a generazione, con la B maiuscola."

"Ed è un'ottima cosa! Le mie capacità da burocrate mi hanno aiutato a creare per te i migliori corsi Java, contenenti compiti, programmi, giochi, esercizi, immagini e persino lezioni."

"Persino lezioni?!" chiese Amigo, sinceramente sorpreso.

"Sì. Come è stato dimostrato nel 22° secolo, una buona lezione è solo un po' più efficace di un buon libro. E lezioni mediocri sono peggio di un libro mediocre. Tuttavia, al momento i nostri strumenti formativi sono molto limitati e non possiamo farti usare un simulatore didattico standard del 28° secolo, quindi abbiamo dovuto ricorrere a metodi molto più primitivi. Abbiamo realizzato un incredibile cocktail di giochi, compiti, immagini, lezioni e cartoni animati."

"Sono davvero incuriosito."

"Bene. "L'interesse e la curiosità sono alla base di qualsiasi processo di apprendimento."

"Se uno studente si annoia, l'insegnante deve essere bacchettato: questa è una citazione di una legge sull'istruzione del 24° secolo."

"Mi piace questa legge!"

"È logico, no? Immagina un film con un indice di ascolto pessimo. In questo caso la colpa non è del pubblico ma del regista. Se fa film interessanti, riempirà sempre le sale."

"Sono assolutamente d'accordo! Sono pronto ad ascoltare!"

"Ottimo. Allora cominciamo."

La voce di Rishi era ammaliante e Amigo cercò di non perdere una sola parola.

"Un programma è un insieme, ossia un elenco, di comandi. Per prima cosa si esegue il primo comando, poi il secondo, poi il terzo e così via. Quando tutti i comandi sono stati eseguiti, il programma termina."

"Che tipi di comandi ci sono?"

"I comandi dipendono da chi o cosa li esegue. Dai tipi di comandi che l'attore conosce (e capisce)."

"A un cane puoi impartire i comandi: 'Seduto!', 'qua la zampa!'; a un gatto: 'Pussa via!'; a un umano: 'Mani in alto o sparo!'; a un robot: 'Lavora! Lavora, robocanaglia!'"

"E poi?" Amigo stava finalmente iniziando a divertirsi.

"I programmi scritti in Java sono eseguiti dalla Java Virtual Machine (JVM). La JVM è un programma speciale che sa come eseguire programmi scritti in Java."

"L'elenco dei comandi è piuttosto esteso. Ad esempio, si può usare questo comando per visualizzare sullo schermo 'I robot sono amici degli umani'."

Ecco un comando super semplice:
System.out.println("Robots are friends to humans");

"O_O"

"Invece di iniziare con i comandi, inizieremo con un paio di semplici principi."

"La conoscenza di alcuni principi può sostituire quella di molte nozioni."

"Ed ecco il primo principio."

"Nel linguaggio di programmazione Java, ogni comando è scritto su una riga a sé stante. Il comando deve essere terminato con un punto e virgola."

"Supponiamo di voler visualizzare tre volte sullo schermo 'Umani e robot sono amici per sempre'. Scriveremo questo programma:"

Il programma è costituito da tre comandi:
System.out.println("Humans and robots are friends forever");
System.out.println("Humans and robots are friends forever");
System.out.println("Humans and robots are friends forever");

"Il secondo principio è questo."

"Un programma può consistere solo di comandi."

"Immagina una stanza in un appartamento. Una stanza non può esistere da sola. Deve far parte di un appartamento. Anche un appartamento non può esistere da solo. Deve far parte di un edificio."

"D'altra parte, possiamo dire che un edificio è diviso in appartamenti e un appartamento è diviso in stanze."

"Finora è tutto chiaro."

"Un comando è come una stanza. Nel linguaggio di programmazione Java, un comando non può esistere da solo. Deve far parte di una funzione. In Java le "funzioni" sono dette anche "metodi". Un metodo fa parte di una classe. In altre parole, una classe è divisa in metodi e i metodi sono divisi in comandi."

Quindi una classe è un condominio, una funzione/metodo è un appartamento e un comando è una stanza. Ho capito bene?"

"Sì, è esatto."

Amigo guardò Rishi con stupita ammirazione. Questo umano gli stava spiegando le basi della programmazione con il divino linguaggio Java! E lui, Amigo, aveva appena capito, tutto da solo, che i programmi sono costituiti da classi, le classi da metodi e i metodi da comandi!

Amigo ancora non sapeva perché questa conoscenza fosse utile, ma era certo che lo avrebbe reso il robot più potente del pianeta.

Nel frattempo, Rishi continuò:

"I programmi in Java sono costituiti da classi. Possono esserci decine di migliaia di classi. Un programma minimo ha una classe. Per ogni classe viene creato un file distinto. Il nome del file corrisponde a quello della classe."

"Immaginiamo che tu voglia creare una classe che descrive una casa. Creerai una classe Casa che sarà salvata nel file Casa.java."

"Se nel programma vuoi descrivere un gatto, dovrai creare un file Gatto.java dove dichiarare la classe Gatto, e così via.

"I file contengono codice (testo) scritto nel linguaggio di programmazione Java. Di solito il codice di una classe consiste nel 'nome della classe' e nel 'corpo della classe'. Il corpo della classe è scritto tra parentesi graffe. Ecco l'aspetto che avrà la classe Casa (file Casa.java):"

public class Home
{
    

Class body



}

"Finora ho capito."

"Perfetto. Andiamo avanti allora. Il corpo della classe può contenere variabili (ossia dati) e metodi (ossia funzioni)."

public class Home
{
    Variable A


    Variable Z


    
Method 1



    
Method N


}

"Puoi farmi un esempio?"

"Un esempio? Certo!"

public class Home
{
    int a;
    int b;

    public static void main(String[] args)
    {
        System.out.print("1");
    }

    public static double pi()
    {
        return 3.14;
    }
}

"Quindi int a e int b sono variabili e main e pi metodi?"

"Già."

"Possono esistere classi senza variabili?"

"Sì."

"E senza metodi?"

"Sì. Ma un programma minimo deve contenere almeno una classe che deve includere almeno un metodo/funzione perché il programma possa essere eseguito. Questo metodo deve chiamarsi 'main'. Un programma minimo si presenta così:"

public class Home
{
    public static void main (String[] args)
    {
    }
}

"Qui vedo la classe Casa. Vedo anche il metodo 'main', ma dove sono i comandi?"

"Un programma minimo non ha comandi. Per questo è detto 'minimo'."

"Capisco."

"La classe che avvia il programma può avere qualsiasi nome, ma il metodo 'main' usato per avviare il programma deve avere sempre questo aspetto:"

public class Home
{
   //Unchangeable part
   public static void main(String[] args) 
   {
       

Code for the method


  
   }
}

"Mi sembra di capire tutto, almeno finora."

"Fantastico. Prendiamoci una pausa allora. Ci facciamo un caffè?"

"I robot non bevono caffè. L'acqua ci fa arrugginire in fretta."

"Allora cosa bevete?"

"Birra, whisky, alcolici invecchiati cent'anni."

"Ancora meglio. Allora ci facciamo una birra?"