> Il giorno 07/ott/2014, alle ore 00:26, enrico franchi 
> <enrico.fran...@gmail.com> ha scritto:
> 
> 2014-10-05 11:34 GMT+01:00 Enrico Bianchi <enrico.bian...@ymail.com>:
> 
> Python e` ad oggetti, ed implementa ogni sua caratteristica secondo questo 
> paradigma. Pero` Python permette di scrivere codice sia usando il metodo 
> procedurale (ovvero come C, Pascal, Go), sia usando il metodo ad oggetti 
> classico (Java, C#, Delphi).
> 
> Secondo me tu stai confondendo uno *stile* di programmazione (o se vuoi, di 
> design) con il supporto sintattico ed eventualmente semantico di un 
> linguaggio a quello stile. Lasciando perdere Pascal che so che a te piace e a 
> me fa un po' lasciamo perdere...
> 
> C'era anche un bellissimo libro sulla programmazione ad oggetti in C. Come 
> come? C. Si. C. Non C++. C.
> Eccome avranno fatto? Leggitelo. 
> 
> D'altra parte, senza andare lontano, prendi Python, apri il cofano e guarda 
> come e' fatto.
> 
> E troverai guarda un po'... C. C ad oggetti. Pesantemente ad oggetti. Trovi 
> relazioni di incapsulamento, polimorfismo (gia' gia'), ereditarieta'. Trovi 
> proprio tutto. E si, in C.
> 
> Ma in effetti... ci sono parecchi esempi, piu' o meno riusciti. gobject e' C. 
> E non direi che non e' roba ad oggetti.
> Ma anche robbe piu' strane. Tipo guardati come fanno quelli di gmp. E vedrai 
> che gli oggetti... scusa... gli interi di gmp tendono proprio a comportarsi 
> come oggetti. Tipicamente prima di usarli devi chiamare un costruttore... no, 
> scusa, un metodo, no scusa, una funzione _init, quando li distruggi, no 
> scusa, li deallochi, devi chiamare un distruttore, no scusa, un metodo, no 
> scusa, una funzione (che non ricordo se e' _free o _delete o checcavolo).
>  
> E non e` che uno dei due metodi sia meglio dell'altro, semplicemente uno usa 
> quello che meglio si adatta al proprio scopo.
> 
> Uhm... sara'. Il fatto fondamentale e' che io ho la forte sensazione di stare 
> programmando ad oggetti anche quando non sto definendo classi... Ora questa 
> potrebbe essere la scusa geniale per chi non conosce la programmazione ad 
> oggetti per asserire di stare programmando ad oggetti. Ma davvero...
> 
> Il problema e' che tutto il problema e' che non c'e' manco una definizione di 
> programmazione ad oggetti. O meglio... ce ne sono mille. E ognuna enfatizza 
> un qualche aspetto, si rifa' a qualche linguaggio "pioniere" e/o a qualche 
> padre della programmazione ad oggetti. 
> 
> Ora personalmente la parte che mi interessa meno e' l'aspetto sintattico 
> della faccenda. Certo, fare programmazione ad oggetti senza avere particolare 
> supporto da parte del linguaggio tende ad essere notevolmente piu' scomodo. 
> Chesso'... ti devi popolare una vtable a mano (tipo, guarda come sono 
> implementati i tipi in Python, sotto sotto). Che oggettivamente farei anche a 
> meno tutti i giorni. E infatti non scrivo una vm tutti i giorni.
> 
> Quindi puoi scrivere codice veramente non ad oggetti in Python? Certo. Puoi 
> farlo anche in Java. static anyone?
> Se poi mi chiedi una code review non ti aspettare di non dover passare sul 
> mio cadavere, ma l'idea e' un po' quella.
> 
> Tipicamente le idee alla base della progettazione ad oggetti sono *talmente* 
> buone [si lo so, non ho definito quello che e', almeno per me] che e' 
> *difficile* sostenere che farne a meno sia una buona idea.
>  
> L'assioma "la programmazione ad oggetti e` meglio della programmazione 
> procedurale" e` un concetto di Java e (penso) di C# che sta bene in quei 
> contesti (anche perche` non hai scelta), ma che mal si adatta a Python, 
> proprio perche` in quest'ultimo hai una metodologia di programmazione 
> totalmente differente
> 
> Uhm... no. Cerchiamo di capire cosa sia la programmazione ad oggetti e cosa 
> sia la programmazione procedurale. Vediamo cosa offre la seconda piu' della 
> prima, cosa offra la prima piu' della seconda e traiamo le ovvie conclusioni.
>  
> 
> 

Questa mail รจ una delle ragioni per cui vale la pena di sopportare i flame 
per il top quoting in questa lista. 
La leggi e dici 'cazzo che modo elegante e preciso di spiegare le cose'.

Grazie Enrico.. mattina iniziata bene :)

G

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a