Una metafora che ha descritto la nostra professione e continua ancora ad essere in voga, è il programmatore come artista. Tale metafora ha condizionato, forse inconsapevolmente, molte pratiche e modi di lavorare nel nostro settore.
Notoriamente l'artista lavora da solo, è un genio incompreso, ha una vita interamente dedicata alla sua arte e non c'è posto quasi per null'altro. L'igiene personale dell'artista lascia a desiderare, ma questo è un altro discorso...
Sono tutti atteggiamenti che ho ritrovato in modo più o meno marcato in diversi miei colleghi che ho avuto modo di conoscere negli anni.
Un pò di tempo fa in autostrada stavo ascoltato Radio 24 e stava parlando un filosofo di cui purtroppo non mi ricordo il nome. Ad un certo punto ha spiegato che la filosofia si occupa anche di determinare le proprietà degli oggetti e di come sono correlate all'oggetto stesso. Il mio cervello, in maniera quasi sorprendente, associò questa frase alle tecniche di programmazione ad oggetti.
Ho fatto un pò di ricerche sulla wikipedia ed ho scoperto che esiste l'ontologia che in filosofia è una branca della metafisica. Alcune questioni ontologiche sono:
- Cosa sono le proprietà o relazioni di un oggetto, e come sono correlate all'oggetto stesso?
- Quando si può dire che un oggetto cessa di esistere, invece di cambiare semplicemente?
Adesso possiamo chiudere il gof e il P of EAA che Andrea Saltarello nei suoi interventi o luKa nel wiki di UGI, giustamente, ci consigliano, ed iniziare a studiare Aristotele o Platone.
Scherzi a parte esiste una parte dell'ontologia vicina alla nostra professione descritta nella wikipedia come Ontologia (informatica). Leggendo ho scoperto dell'esistenza di WordNet un database lessicale.
Ho provato ad utilizzare la versione online ricercando la parola employee, presente in molti esempi sulla programmazione object oriented; il risultato è stato un elenco molto lungo di parole correlate. Alcune che possono essere potenziali classi base come: worker, person altre in relazione come finisher, part-timer, temporary worker, ecc.
Questo database lo proverò ad utilizzare la prossima volta che creo un modello ad oggetti per capire se mi può tornare utile.
Mi piacerebbe approfondire l'esistenza di una correlazione tra i principi o le teorie filosofiche e la programmazione object oriented, solo che le mie conoscenze filosofiche sono pari alle fotomodelle presenti nel mio ufficio.
Sono un pazzo o quello che ho scritto può avere un senso?