Logo

dev-resources.site

for different kinds of informations.

[Italian] Classi ed Oggetti, una semplice prospettiva filosofica con Platone

Published at
12/31/2021
Categories
programming
phylosophy
oop
softskill
Author
tudor44
Author
7 person written this
tudor44
open
[Italian] Classi ed Oggetti, una semplice prospettiva filosofica con Platone

Nel corso dei miei studi filosofici accompagnati dalle attività formative che svolgo parallelamente al mio lavoro mi son trovato a valutare e far emergere la consapevolezza di quanto la Filosofia, intesa come disciplina e madre storica di tutti i saperi, possa essere utile non solo come materia ad accrescere il nostro livello culturale e apprendere lo sviluppo del pensiero umano.
Possiamo associargli, per esempio, una dimensione didattica per comprendere nell'ambito dell'informatica meglio dei concetti imprescindibili nel mondo della programmazione moderna come la programmazione orientata ad oggetti (in inglese OOP).

Davvero? Come possiamo conciliare la disciplina originaria del sapere umano, con un'altra dal forte carattere tecnico-scientifico?
Proviamo a scoprirlo.

Chi è Platone?
Image description
Penso che almeno una volta nella vostra vita avete sentito parlare di uno dei più grandi filosofi della storia del pensiero occidentale ,e che ha influenzato tutta la storia del pensiero umano. Partendo dagli scritti del suo maestro Socrate, l'uomo del sapere giusto e dalle tante virtù, è anche tra i primi ad aver raccolto tutti gli scritti e i dialoghi dei pensatori venuti prima di lui (i presocratici) e aver stilato una raccolta di 35 Dialoghi e una raccolta di 13 lettere che parlano di Politica, Metafisica, Scienza e Morale.
Di lui disse Alfred North Whitehead, matematico e filosofo inglese del Novecento: "Tutta la storia della filosofia occidentale non è che una serie di note a margine sulle opere di Platone”.

Ci sarebbe tantissimo altro da aggiungere, ma ora focalizziamoci sul nostro obiettivo e cerchiamo di spiegare come facciamo ad associare Platone alla programmazione ad oggetti.
Con la sua celeberrima Teoria delle Idee.

Cos'è la Teoria delle Idee?
Prima di spiegarla cerchiamo di concentrarci prima sulla parola Idea. Il concetto di Idea, come sappiamo tutti, è associato ad una attività del pensiero umano. Ad esempio quando si scopre di trovare una soluzione ad un problema.

Da un punto di vista etimologico la parola Idea deriva dal greco
antico Eidos (εἶδος) che signfica "forma, aspetto o anche figura".
Per Platone quindi le idee sono entità o forme immutabili, ingenerate ed eterne che vivono in una realtà metafisica (da lui chiamata Iperuranio) e rappresentano la forma perfetta di tutte le cose esistenti nella realtà di tutti i giorni. Oggetti, Persone e Animali o anche ad esempio l'idea di Politica , Coraggio, Bene etc..
Le cose esistenti nella nostra realtà riflettono la perfetta Idea ad esempio del Cane proveniente dall'Iperuranio e che non può cambiare. Per Platone quindi le idee sono anche la forma giusta e benefica di tutte le cose esistenti nella realtà.

Quindi abbiamo introdotto il concetto di Idea e Forma Concreta nella filosofia di Platone.
Con quali concetti possiamo associarli alla programmazione ad oggetti? Ma naturalmente con le Classi e gli Oggetti.

Esempio Classe e Oggetto in Java

public class Cane {}
public class Dobermann extends Cane {}
public class Main {
    public static void main(String args[]){
        Dobermann dobermann = new Dobermann();
     }
}
Enter fullscreen mode Exit fullscreen mode

Questo è un semplice esempio di un programma che ha due entità: una Classe Cane e una Classe Dobermann, che eredita tutte le caratteristiche del tipo Cane.
Non c'è bisogno di specificare se Cane sia una classe di tipo "Abstract", per il nostro semplice esempio concettuale ragioniamo con le classi semplici.

Idea e Forma Concreta scritte in Java

Abbiamo costruito una rappresentazione fedele del concetto platonico scrivendo in linguaggio Java il concetto base di istanza di una classe. Nel nostro caso abbiamo una classe Cane che rappresente la nostra Idea, e l'istanza della classe Dobermann derivata da Cane che sarebbe la Forma Concreta contenente tutte le caratteristiche principali di un Cane di tipo Dobermann. Anche qui la nostra istanza non è un Cane perfetto e unico come l'Idea (Classe Cane), ma la Forma Concreta (Oggetto dalla Classe Dobermann) ha le caratteristiche reali legate alla razza specifica di un Dobermann.

Abbiamo messo in pratica, in maniera semplificata, una delle più famose strutture filosofiche della storia con un linguaggio di programmazione per comunicare al nostro compilatore come deve strutturare un elemento Cane nel nostro codice.

Conclusione e due domande...
La Filosofia è anche madre del pensiero astratto.
Possiamo sfruttarla anche per prendere scelte migliori e porre le giuste domande che servono poi per trovare e organizzare una possibile teoria risolutiva a qualsiasi problema tecnologico , scientifico o umanistico.
E quali se non i problemi di progettazione in campo informatico e della programmazione, dove si può mettere alla prova notevolmente la nostra mente esaltando il ragionamento logico.

In futuro l'umanità fino a dove riuscirà a portare la rappresentazione del pensiero umano all'interno di una macchina? Esisterà mai una Intelligenza Artificiale "buona" che interpreterà al meglio il pensiero degli uomini per poter compiere sempre azioni tendenti al giusto?

softskill Article's
30 articles in total
Favicon
How to Read or Understand an Open-Source Projects
Favicon
The 10x Software Engineer's Secret: Balancing Bits and Life
Favicon
Emotional Intelligence in IT: Leveling Up Your Soft Skills
Favicon
Por que alguns desenvolvedores conseguem empregos rapidamente e outros não?
Favicon
I'm russian developer. Why everybody hate me?
Favicon
Soft Skills Development in Cyber Security Job Ready Programs
Favicon
"Empowering Futures: Completing the 'Prepare for Apprenticeships and Jobs' Course"
Favicon
“Managing up”: Developing your influence power
Favicon
Improve Your Soft Skills at Bangalore Training Institutes
Favicon
🚀 The Future of Developers: Embrace the Evolution! 🤖
Favicon
Learn the Art of Effective Communication - Talking to Your Boss without Being a Problem
Favicon
5 principles of effective communication with a team-lead
Favicon
Kĩ năng quản lý căng thẳng cho Developer
Favicon
The Essential Skills for Success as an Engineer, based on 500 responses
Favicon
Stop coding to improve your code and soft-skills
Favicon
How to deal with negative feedback at work
Favicon
Coffee Talk
Favicon
Journal of self-growth
Favicon
🔮O que eu diria para o meu EU de 10 anos atrás
Favicon
[Italian] Classi ed Oggetti, una semplice prospettiva filosofica con Platone
Favicon
FOCO : A Softskill mais valiosa na era da informação
Favicon
TechLead or DevLead ?
Favicon
Time and its management tools
Favicon
TOP 7 Soft Skills For IT Specialists
Favicon
Find your specialty by being a T-shaped person.
Favicon
Patience is a must-have soft skill for Developers. Here is why
Favicon
Communication and Software Development
Favicon
Pantang menyerah dalam kerja tim
Favicon
Engineering Daybook
Favicon
Soft-Skill 101 - Mentoria. Porque e como?

Featured ones: