View Single Post
Old 14-03-2006, 17:56   #85
Galileo
Member
 
Iscritto dal: Aug 2005
Messaggi: 199
Quote:
Originariamente inviato da k0nt3
perchè l'oggetto è un concetto complesso!
niente affatto è banalmente semplice.


La programmazione orientata agli oggetti non è stata inventata banalmente per risolvere problemi complessi con soluzioni + facili, è stata inventata ma è + giusto dire "mutuata", perchè si avvicina maggiormente al nostro modo di ragionare.

Anzi è la trasposizione esatta di come funziona il nostro cervello, come ragioniamo:
- il mondo è un universo composto da oggetti ( ed è vero, perchè noi siamo circondati da oggetti, dalle particelle + piccole della materia, alle costruzioni come ponti, grattacieli che sono il risultato dell'assemblamento di tanti oggetti)
- gli oggetti, noi compresi, relazionano tra di loro scambiandosi dei messaggi ( nella vita reale usiamo i mezzi e le forme che preferiamo, nella programmazione si utilizza l'invocazione di metodi, ma il concetto è perfettamente identico)

E tutto questo è il frutto di discussioni durate decenni dai problemi che in realtà si sono posti per primi i filosofi greci, le idee, le relazioni che sussistono tra di esse, se alcuni concetti sono innati oppure no, se sono esterni o interni a noi...per certi versi trovo sia affascinante che nella realizzazione di una finestrella con un bottone in realtà si sia passati attraverso queste problematiche e queste fasi della storia dell'uomo

Quote:
non può essere trattato in prima istanza! fai conto che uno che inizia non sa nemmeno cosa sia un for o una variabile..
tanto meglio...meno ne sà e + facilmente può comprendere il paradigma OO

Quote:
e poi la programmazione OO contiene concetti di programmazione procedurale! è un'estensione che permette di costruire cose più complesse e vederle in maniera più semplice..
dato che l'obiettivo è quello di costruire cose + complicate e + funzionali perchè non partire direttamente dagli strumenti che ti permettono di farlo nel modo + semplice possibile?

Quote:
ma ci vuole già una base sotto, non si parte con gli oggetti dal nulla!
?

Perchè no?


Secondo me c'è un grosso errore/fraintendimento di fondo e cioè quello di considerare gli aspetti tecnici della OOP prima ancora dei fondamenti e dei ragionamenti che stanno dietro questa filosofia.

L'aspetto + importante e + difficile è proprio quello di capire la metodologia. ( che non ha nulla a che vedere con i cicli for e le varie iterazioni)
Gli aspetti tecnici sono secondari, esistono i datasheet, esistono mille risorse soprattutto al giorno d'oggi nella rete, ma se non si riesce a capire che cosa sta dietro l'utilizzo di una classe, la comunicazione tra i vari oggetti e via discorrendo, tutto il discorso viene a cadere.
Potrò fare magari qlc applicazione che funziona ma non avrò REALMENTE imparato a programmare.

Quote:
per python non me la sentirei di consigliarlo per iniziare.. ha un comportamento molto diverso dai linguaggi più comuni! e tra l'altro non ha una sintassi così bella da guardare quindi ci puoi fare programmi di dimensioni limitate sennò non si capisce più nulla IMHO
La sintassi di Python è secondo me una delle qualità migliori di questo linguaggio: estremamente pulito ed elegante ma assai versatile e potente con la possibilità di utilizzarlo sia come interpretato che compilato ( usando i vari JIT compiler che girano) con prestazioni migliori per es. di un linguaggio analogo come Java.

Non è così diffuso come la creatura della Sun ma lo scopo che si prefigge l'utente che ha chiesto delucidazioni è imparare.
E per farlo è necessario scegliere lo strumento che gli consenta di imparare al meglio ovvero quella di acquisire certe capacità di analisi e di problem solving che sn trasparenti al linguaggio utilizzato ed alla piattaforma utilizzata.
E Python può essere una delle scelte + azzeccate secondo me...
__________________
I' ve seen things you people wouldn' t believe...
attackships on fire off the shoulder of Orion, and I' ve watched C-beams glitter in the dark near the Tannhauser gate. All those moments, will be lost, in time, lke tears in the rain...
Galileo è offline