Eccomi qui con voi con un’altro articolo fresco 🙂
Da oggi voglio iniziare una cosa nuova con voi, una cosa che ritengo molto utile e piuttosto importante un po’ per tutto per essere autonomi in informatica e per poter trovare e applicare una soluzione ai problemi che si formano ogni giorno con il computer.
Ecco perché, come avrete capito dal titolo, ci avvicineremo al linguaggio Java, che è un linguaggio di programmazione.
Eh si, ci avviciniamo alla programmazione in vari livelli di difficoltà. Questo è proprio l’inizio, quindi avrà un livello di difficoltà piuttosto basso, ma poi più andremo avanti e gli argomenti diventeranno più strutturati, più saliremo di livello di difficoltà. Non preoccupatevi, avrete tutto ciò che vi serve per affrontare i vari argomenti.
Questa mia guida alla programmazione sarà il più completa possibile, sotto vari aspetti. Metterò molta teoria, ma anche molti esercizi, esempi, vario materiale ecc…
Ho deciso di creare questa serie di tutorial anche per condividere con voi quello che mi ha insegnato un mio caro amico insegnante universitario, che ha condiviso con me il bello di programmare in Java e mi ha insegnato molte cose su questo linguaggio (sto ancora imparando, ma devo dire che sono a un buon punto).
Quindi ho deciso di condividere con voi ciò che questo professore ha condiviso con me.
Spero davvero che vi possa interessare in un qualche modo.
Iniziamo subito.
Possiamo iniziare a parlare di Java, per chi non lo conoscesse.
Si sente parlare molto spesso di questo termine. Di solito installiamo su Windows, Linux o Mac un programma di nome Java. Ma cosa serve quello che installiamo? Che cos’è questo linguaggio? A cosa serve?
Iniziamo a rispondere a una domanda. Che cos’è questo linguaggio.
Per rispondere a questa domanda facciamo un po’ di storia, che non fa mai male.
Java è un linguaggio che ha iniziato il suo corso di sviluppo durante delle ricerche nel 1992 alla Stanford University.
Dopi queste ricerche e questi studi, un’azienda di nome SUN inventò un linguaggio che si chiamava Oak (quercia).
Il nome Oak fu portato a Java per questioni di Copyright, perché esisteva un’altro linguaggio con lo stesso nome.
Una leggenda metropolitana narra che il nome Java è stato dato accidentalmente da un fatto strano. Due tizi, che erano due degli sviluppatori più importanti del progetto Oak, dai nomiJ. Gosling e A. Van Hoof erano seduti davanti a una tazza di caffè e discutevano sul fatto che il nome Java fosse un nome orrendo per quel linguaggio. Alla fine loro ebbero la peggio e il linguaggio si chiamò proprio Java e la tazza di caffè rappresenta quel momento davanti a una tazza di caffè. (Naturalmente è una leggenda metropolitana, non si sa se questo è realmente accaduto).
Dicevamo che Java fu realizzato dalla SUN, che poi venne comprata dalla Oracle ed è per questo che ora si chiama Oracle Java. Una curiosità: programmi come Virtualbox erano della SUN, ma quando Oracle la acquistò, divenne Oracle Virtualbox.
Dopo questo piccolo preambolo storico ritorniamo a noi.
Java, come abbiamo ormai detto, è un linguaggio di programmazione orientato agli oggetti. Questo vuol dire che è possibile con questo linguaggio (e più avanti vedremo il senso e come) rappresentare oggetti della vita reale con oggetti più semplici. Questo concetto si racchiude in una sigla: OOP (Object Oriented Programming), che vuol dire: programmazione orientata agli oggetti.
Questo linguaggio viene usato praticamente in qualsiasi cosa. Dai giochini di facebook, da molte applicazioni per Android, dall’interfaccia grafica stessa di Android, da molti programmi per pc, dai siti WEB (non confondete il Java con il Javascript, che sono due cose simili, ma diverse).
Questo, quindi è un linguaggio molto importante e molto usato, che ha dei pregi e dei difetti.
Per capire i pregi e i difetti, continuiamo a parlare di questo linguaggio.
Il Java è un linguaggio interpretato e non compilato.
Un linguaggio di programmazione non viene compreso dal computer. L’unica cosa che un computer capisce è una serie sterminata di numeri, composti da 0 e 1, che formano il sistema binario, che come dice la parola è composto da due elementi, due numeri.
Il computer non comprende la nostra lingua. Ma noi dobbiamo dare delle istruzioni al computer per poter fare delle operazioni, se no sarebbe un soprammobile inutile e ingombrante.
Per comunicare serve un qualcosa che traduca. Per questo esistono due tipi di sistemi.
Il primo sistema è quello classico, quello che è sempre stato usato, ovvero quello di far tradurre a un programma chiamato compilatore tutto il nostro codice. Una volta che lo ha tradotto totalmente in un linguaggio comprensibile al computer, genera un eseguibile che è specifico per quel sistema operativo. Crea un eseguibile per Windows, per Linux o per Mac, dipende su che sistema operativo abbiamo realizzato il nostro programma.
Non sempre il compilatore fa il suo dovere e ci consegna il nostro file, il nostro eseguibile. Se chi scrive il codice del programma, commette degli errori sintattici, allora in tal caso il compilatore non capendo cosa noi vogliamo far fare al computer, ci segnalerà un errore.
Ci sono due tipi di errori. Ci sono gli errori sintattici ed errori semantici. Gli errori sintattici sono errori che riguardano la sintassi, la scrittura. Per fare un esempio:
se voglio scrivere “macchina”, ma scrivo “machina”, ho commesso un errore sintattico.
C’è anche un’altro tipo di errore, nominato errore semantico. Questo errore è molto semplice da comprendere. È un tipo di errore rognoso, perché il compilatore non ci segnala nulla, perché per lui è tutto corretto.
Vediamo con un esempio che cos’è un errore semantico:
Mettiamo che voglia sommare due numeri: 2+2. Ma per sbaglio li sottraggo: 2-2. La sintassi è corretta. Io ho sottratto ok, ma la sintassi della sottrazione è completamente corretta. Un errore semantico è un errore che si forma quando diamo dei parametri o delle istruzioni, corrette sintatticamente, ma che non portano al risultato desiderato.
Come dicevamo prima, c’è anche un’altro tipo di linguaggio. Il linguaggio interpretato. Quest’ultimo è un linguaggio che viene tradotto istruzione per istruzione durante la sua esecuzione e non viene tradotto totalmente all’inizio.
Questo linguaggio viene eseguito su una virtual machine di Java, che è una vera e propria macchina virtuale, come quelle che si creano con Virtualbox.
Come possiamo notare da questa immagine, ecco cosa vuol dire macchina virtuale.
Innanzi tutto vediamo cosa vogliono vedere le scritte che ci sono su questo grafico.
Hardware: componenti fisici del computer -> monitor, mouse, tastiera, processore, stampante eccc….
Operating System: sistema operativo -> Windows, Linux, Mac ecc..
Un programma compilato viene eseguito direttamente sul sistema operativo ed è per quello che è compatibile con un solo sistema.
Ma qui c’è anche la JVM, che sta per Java Virtual Machine (Macchina virtuale di Java). Questo sistema fa si che il programma non venga direttamente eseguito sul sistema operativo, ma su un livello superiore. Questo porta che un programma è compatibile con tutti i sistemi operativi disponibili sul mercato che hanno installato la JVM.
Come possiamo vedere, sopra la JVM vengono eseguiti dei programmi.
Ma ci sono anche dei contro: una macchina virtuale è molto più lenta del computer effettivo, questo perché la macchina virtuale deve richiedere al sistema operativo le risorse necessarie e il sistema operativo le va a chiedere all’hardware. Invece i programmi compilati si interfacciano direttamente con il sistema operativo, che a sua volta si interfaccia direttamente con l’hardware.
Inoltre ricordiamoci che i programmi interpretati sono programmi tradotti istruzione per istruzione e quindi sono ancora più lenti.
Un esempio di linguaggio compilato è il C. Un esempio di programma interpretato è il Java.
Quali sono i punti a favore di Java?
Java è un programma compatibile con tutti i sistemi operativi e le piattaforme
Java è un linguaggio orientato agli oggetti
è molto funzionale e molti aspetti sono molto automatizzati
Ha una sintassi molto simile a quella del C++ (il successore del C).
I difetti sono:
è un linguaggio lento rispetto a quelli compilati
non è adatto nella creazione di videogiochi complessi, se non giochi molto semplici e di bassa entità
Ok, quindi per ora diciamo che abbiamo dato un’idea generale su questo linguaggio, anche se ci torneremo più avanti per approfondire il tutto.
Bene. La prossima volta vedremo di rispondere anche alle altre domande in sospeso, ovvero:
che cos’è il programma che installiamo nel proprio computer?
A cosa serve?
E vedremo di porci e di rispondere a delle nuove domande, che vedremo negli articoli a seguire.
Intanto vi posso augurare buon proseguimento e noi ci ritroveremo al prossimo articolo 🙂