di Giovanni Puliti
(alias GiovaSparalesto)

La Programmazione ad oggetti
Prima parte

 
 
 
 
 
 
 
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

mailto:admstaff@mbox.vol.it