[Python] Applicazione WEB con Python e Postgresql

Simone Federici s.federici a gmail.com
Ven 26 Set 2014 10:37:23 CEST


Enrico Bianchi:

> Uno dei concetti fondamentali che secondo me Python ti insegna e` che la
> programmazione ad oggetti non e` per nulla necessaria, ma piuttosto utile
> in alcuni frangenti.
>

Questo va contro il pensiero "tutto è un oggetto" in python.

Ad esempio:
un modulo è un oggetto in python, in Java no.
un package è un oggetto in python, in Java no.
una funzione è un oggetto in python, in java c'è qualcosa dalla 1.6 e si
chiama static import di una funzione da una altra classe (porkata)
la metaclasse è un oggetto in python, in java è Object e non si tocca.

se per programmazione a oggetti intendiamo solo eredità di classi, ossia
'struttura', io oserei dire che python è estremamente più della
programmazione a oggetti.

Quando fai monkey parching di una funzione dentro a un modulo di fatto stai
estendendo quel modulo. E vale anche qui il principio di sostituzione di
Liskov.

Ogni volta che scrivi un decorator, stai programmando a oggetti anche se
non ne sei cosciente.

Se poi vuoi implementare qualcosa che possa essere esteso, tramite plugin,
sia se usi le classi, sia se usi dei moduli, è comunque programmazione a
oggetti.



> Dire quindi che si sta sbagliando a non usarla perche` piu` potente della
> programmazione procedurale (e non funzionale) e` semplicemente sbagliato e
> viziato da preconcetti prvenienti da altri linguaggi (Java e C# in primis)
>

Ora togliti dalla testa python, e cala questo pensiero su un linguaggio di
programmazione solamente procedurale. Vedi che cambia prospettiva, il
problema di fondo che vedo è il nostro preconcetto di programmazione
procedurale che è sbagliata se lo leggiamo solo in un contesto pythonico.
Programmare usando le funzioni in python non significa programmazione
procedurale.

My2cents
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140926/69fada74/attachment.html>


Maggiori informazioni sulla lista Python