L'informatico di Schrödinger

cat
30Oct/10Off

Introduzione alla programmazione in Java – “Hello World”

Duke, the Java Mascot, in the waving pose. Duk...
Image via Wikipedia

Eccoci arrivati.

Prima o poi capita che qualcuno ti chieda informazioni su linguaggi di programmazione e che questo ti faccia passar per la testa di scrivere qualche articoletto introduttivo.

Ovviamente non è un compito facile introdurre all' "Arte" della programmazione, soprattutto non è facile farlo senza trasmettere i propri fisiologici approcci personali all'argomento. Bene un tentativo vale farlo in ogni caso.

Ho deciso di prendere come linguaggio di base Java: questa scelta non è casuale ovviamente. Java è un linguaggio che si presta bene ad un approccio didattico: non presenta la complessità intrinseca di C e C++, è uno dei linguaggi più utilizzati da ormai una decina d'anni, è molto versatile e multi piattaforma (ma ci torneremo con calma..). Se i motivi che ho portato non bastassero è sufficiente aggiungere che questi articoli introduttivi (sulla cui cadenza non posso assicurare alcun tipo di periodicità) sono diretti a ragazzi delle scuole superiori che, grazie ai "fenomenali" programmi ministeriali di informatica, ancora nel 2010 si trovano a dover fare conti con linguaggi decisamente datati (Pascal) o altri "oggetti" che definir "linguaggi di programmazione" causa a chi ha un minimo di senso critico uno sfogo cutaneo di proporzioni epiche (qualcuno ha detto VB?).

Allora iniziamo senza indugi a farci un quadro generale di ciò che andremo piano piano a analizzare. Java è un linguaggio di programmazione imperativo ad Oggetti (lasceremo ad articoli successivi il compito di chiarire questa affermazione) che riprende la sintassi classica del C e la estende con costrutti che analizzeremo nel corso della trattazione.

La prima cosa da fare per programmare in Java è installare sul proprio sistema la JVM fornita da Oracle (il sito di riferimento è il questo): se siete utenti OSX avete già tutto il necessario installato, se siete utenti Linux sicuramente troverete una versione pacchettizzata per la vostra distribuzione nei repository, se siete utenti Windows (Shame!!) scaricate e installate.

Per iniziare a programmare è sufficiente un qualsiasi editor di testo: se siete più smaliziati o preferite avere il supporto fornito da un ambiente di sviluppo vi consiglio caldamente di utilizzare Eclipse.

Una volta installato tutto il necessario possiamo iniziare a familiarizzare con le informazioni base che ci consentiranno di scrivere il nostro primo programma: ovviamente non può che trattarsi della più classica versione di "Hello World!".

1
2
3
4
5
6
7
8
9
public class myFirstClass{
 
	public static void main(String[] args){
 
		System.out.println("Ciao Mondo!");
 
	}
 
}

Commentiamo un poco il codice che ci introduce alle basi di questo linguaggio. In linea 1 troviamo quella che in seguito definiremo "dichiarazione di una classe": in Java ogni file di testo identifica una "classe", nel nostro caso il nome della classe che andiamo a definire è "myFirstClass".

Come potete notare il nome della classe corrisponde esattamente al nome del file che ne contiene il codice: questa è una regola base del linguaggio che non può, e non deve, essere aggirata pena errori in fase di compilazione. Chi ha un po' di familiarità con i linguaggi di programmazione avrà individuato le parentesi graffe come simboli che identificano "blocchi" di codice.

In linea 3 viene definito il metodo "main": tale è il nome standard del metodo che viene invocato per primo quando viene eseguito un programma scritto in Java. La firma di tale metodo è standard e non ci interrogheremo per ora sul significato delle parole chiave "public", "static" e "void" ne di ciò che si trova contenuto tra le parentesi, avremo tutto il tempo successivamente per dare un senso a quello che stiamo leggendo.

In linea 5 avviene la vera e propria invocazione della stampa a video del nostro saluto. La stringa "Ciao Mondo!" viene passata come argomento al metodo println (aka: print line) definito nel pacchetto System.out.

Per organizzare i file Java, sia che siano scritti da voi o che facciano parte della vasta libreria standard del linguaggio, si utilizza quello che va sotto il nome di sistema di "packaging": più classi che forniscono funzionalità dello stesso tipo (ad esempio funzionalità di sistema - package System - che gestiscono l'output - sotto package System.out) sono raccolte in uno stesso pacchetto.

Bene con questo si conclude una prima analisi di questo frammento di codice, adesso possiamo passare all'esecuzione!

Se state usando Eclipse vi troverete di fronte il simpatico pulsante "Run". Alternativamente, e molto didatticamente d'ora in poi non ritornerò su questo punto, dovrete aprire una shell (una bash, o alternative, su Linux e Osx o una shell di dos su Windows) portarvi all'interno della directory in cui si trova il file myFirstClass.java e dare i seguenti comandi:

1
2
javac myFirstClass.java
java  myFirstClass

Il primo comando si preoccupa di compilare il vostro programma in un formato intermedio (bytecode) che può essere eseguito su qualsiasi JVM (Java Virtual Machine). Questo è uno dei pregi di Java "Write once run everywhere". Lo stesso programma scritto su Linux può essere eseguito senza ritocchi su Osx e Windows. Tramite tale comando otterrete il file myFirstClass.class, il comando successivo (in cui non dovete specificare l'estensione del file) serve per far partire il programma invocando la JVM e passandogli come input il file appena generato: la JVM cercherà il metodo main e, se presente, eseguirà quanto in esso definito.

Per questa prima lezione introduttiva direi che può bastare: la prossima volta faremo un breve excursus sui tipi base presenti in Java (interi, boleani, stringhe and so on..) e analizzeremo le basi del controllo del flusso di esecuzione di un programma.

Ovviamente qualsiasi richiesta per chiarimenti è ben accetta, così come suggerimenti e consigli. Alla prossima! Stay Tuned!!

Edit: ecco anche un video tutorial fatto appositamente per questo post!

Enhanced by Zemanta
Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

Trackbacks are disabled.