Inizia
in questo numero la serie di articoli dedicati alla programmazione ad oggetti.
Tale corso ha lo scopo di esporre i concetti di base della OOP per poter
realizzare progetti ad oggetti nel modo più semplice possibile.
Le lezioni saranno organizzate in modo da rappresentare unità autonome,
dove verranno affrontate di volta in volta singoli sotto-argomenti. Visto
che questo é solo il numero 0 della rivista in questa parte esporremmo
solo una breve introduzione per partire in maniera completa dal prossimo
numero.
Il
corso avrà una taglio, almeno inizialmente, di tipo teorico, per
cui i concetti che esporrò sono generalmente validi per la OOA (object
oriented analisis), OOD (object oriented design) e OOP (object oriented
programming), che sono le tre fasi della realizzazione di un applicativo
(dalla analisi alla progettazione alla implementazione).
La
programmazione
ad oggetti é stata vista in passato come sl'innovazione del
secolo che permettesse di realizzare l'impossibile. Questo in parte é
forse vero, ma molto si é abusato di OOP, tanto che un buon trovare
programmatore OOP risulta compito difficile. Il linguaggio che maggiormente
ha diffuso la filosofia di programmazione ad oggetti é stato forse
il C++, che però, a detta dei puristi di object orientend, risulta
essere troppo sporco
e poco elegante per definirlo
OO. Molti di coloro che si sono avvicinati alla programmazione in C++ con
la speranza di poter programmare ad oggetti solo imparando un linguaggio
nuovo si sono scontrati con una dura realtà. Come spesso usa dire
Coad (uno dei guru della teoria OOP), la programmazione ad oggetti é
una filosofia di pensare il mondo. Fortunatamente (anzi sfortunatamente
per i puristi) le sempre maggiori potenzialità del C++ lo hanno
reso un linguaggio OOP non puro, e ogni compilatore permette sempre di
realizzare programma ibridi OO-strutturati. Questa caratteristica ha da
un lato semplificato la prima stesura di progetti semplici, ma se non usata
con cautela ha reso posibbile anche la crazione di mostri di difficile
gestione.
Con
Java le cose cambiano radicalmente, essendo questo un linguaggio pensato
per essere totalmente ad oggetti, e per rimediare a certe indesiderata
del C++. Nato come progetto interno alla Sun doveva essere un linguaggio
moderno che racchiudesse le caratteristiche dei suoi predecessori e rendesse
il modo di progettare il lavoro più pulito possibile. Con Java non
é possiible non pensare ad oggetti ancora prima di realizzare l'applicativo.
Per questo ritengo che prima di farsi spaventare dalle molte difficoltà
di Java, almeno di avere una base di oggetti, visto che sono il primo ed
obbligato passo per iniziare a lavorare.
Quindi
cosa é questa OOP? Quali utili vantaggi ne possono derivare dal
suo utilizzo?
La risposta potrebbe occupare l'intero numero
di questa rivista, ma rimanendo entro limiti accettabili potrei dire che
gli scopi principali della OOP sono
In fase di design di un progetto permettere
una maggior aderenza alla realtà che ci circonda per poter realizzare
poi programmi chiari e che continuino ad essere chiari col crescere (esplodere)
delle linee di codice.
Riusabilità: questo il miraggio di
ogni persona che programma sin dall'alba dei calcolatori. In parte é
stata realizzata ma forse non interamente grazie alla programmazione OO
così come la si era pensata inizialmente.
Senza
dilungarmi in considerazioni astratte, peraltro non inutili, diciamo, senza
un minimo di originalità, che la OOP si basa su tre concetti fondamentali
Incapsulamento
Ereditarietà
Polimorfismo
Sono queste le tre parole magiche spesso fanno
paura e che non sempre sono usate com si deve.
Essendo
questo il numero zero di questa rivista ritengo di non addentrarmi oltre
conm le spiegazioni, per non dover magari ripetere l'inizio della lezione
per gli studenti ritardatari :-). Col prossimo numero iniziereme ad addentrarci
dentro la tanta rinomata OO. |
Giovanni Puliti é uno dei creatori
di MokaByte. Laureando presso la facoltà di scienze dell'informazione
di Firenze sta lavovando ad una tesi sulle reti neurali applicate a previsioni
di serie storiche in campo borsistico. Ha collaborato in passato alla realizzazione
di progetti su internet tra cui una galleria d'arte dove espongono artisti
della sua città.
Può essere contattato tramite la redazione |
|
|