[Soci SLIP] Python

Fabrizio Gulino sfarzo a archivio.it
Gio 6 Apr 2006 15:59:19 CEST


Ciao,
conosco poco python (l'ho usato per un laboratorio stupido
all'università, qualche anno fa), ma mi diletto un pò di più col perl.
Il fatto che ci siano scorciatoie semantiche, non vuol dire
necessariamente che sei obbligato ad usarle.
Se trovi più espressivo fare

c = a
a = b
b = b + c

invece di
a, b = b, a + b

meglio per te. Tanto per il compilatore/interprete penso che cambi poco.
Quello che voglio dire, è sta al programmatore cercare di essere ordinato e chiaro, indipendentemente dalle strutture messe a disposizione da un determinato linguaggio. ( e lo dice uno che ha prodotto codice degno dell'"obfuscated perl contest"! ma non ancora a questi livelli: http://mysite.verizon.net/les.peters/id2.html )

<gusti personali>
Personalemte preferisco questi linguaggi, ad altri più "verbosi" e rigidi come java o c#, dove  spesso rigidezza != ordine && rigidezza != chiarezza. (oltre al fatto che mi vengono i crampi del tennista quando penso che per usare un hash devo: caricare una libreria, istanziare un oggetto, magari instanziare anche un iteratore, collegare hash ad iteratore etc..etc..etc...)
</gusti personali>

Ciao Ciao 



Lucio Crusca wrote:
> Ciao gente,
>
> visto che c'è un po' troppo silenzio sulla lista, mi metto a parlare tanto per 
> passare il tempo, anche se forse sono un po' OT.
>
> Sto dando uno sguardo a questo linguaggio osannato da tutti che è noto col 
> nome di Python. La mia impressione, per quanto nessuno me l'abbia chiesta, è 
> che sia una schifezza allucinante. A giudicare dalla libreria a disposizione 
> sembrerebbe qualcosa di orientato a progetti di una certa portata, ma a 
> giudicare dalla sintassi e semantica devo dire che non ho mai visto nulla di 
> più permissivo: in Python puoi scrivere qualsiasi tipo di vaccata, salvo poi 
> sperare che questo non generi errori a runtime (e tipicamente la speranza è 
> vana). Tipizzazione statica? Chissenefrega. Leggibilità del codice? Perfetta, 
> basta conoscere delle regole non proprio ovvie. Esempio:
>
> a, b = b, a + b
>
> A prima vista direi che significa:
> a = b
> b = a + b
>
> E qui casca il programmatore, perché in realtà la riga significa:
> c = a
> a = b
> b = b + c
>
> Chiaro no? Ma poi, a cosa serve questo tipo di sintassi? Quando ci capiterà 
> mai di usarla? Credo che sia stata inventata solo per poter scrivere la serie 
> di Fibonacci con due righe di codice in meno di qualsiasi altro linguaggio. 
> Ma non era meglio una funzione tipo fibonacci(a, b)? Mi sembra più leggibile.
>
> Parliamo delle liste.
>
> 3*a[:3]
>
> Sta roba significa:
>
> Prendi la lista a, estrai i primi 3 (o 4?) elementi, e produci una nuova lista 
> concatenando per 3 volte gli elementi di a che hai estratto.
>
> Se invece scrivo
> 3*a[3]
>
> significa: prendi il quarto elemento della lista a e moltiplicalo per 3. Nel 
> caso in cui, per disgrazia visto che la tipizzazione statica non c'è, il 
> quarto elemento di a fosse a sua volta una lista invece che un numero, la 
> stessa espressione invece di fare una normale moltiplicazione mi genera di 
> nuovo una lista come nel caso precedente. Il tutto per avere un'operazione di 
> dubbia utilità: a chi serve concatenare N volte la stessa lista?
>
> Fino a qui le mie impressioni raccolte con i primi 3 capitoli della guida. 
> Speriamo che dopo migliorino!
>
> _______________________________________________
> Soci mailing list
> Soci a mail.pinerolo.linux.it
> http://mail.pinerolo.linux.it/mailman/listinfo/soci
>
>   

-- 
Fabrizio Gulino
Email assistenza: supporto-clienti a archivio.it
Email personale:  fabry a archivio.it

Progetto Archivio S.r.l
www.progettoarchivio.it
Tel 0121-30.35.44
Fax 0121.30.31.91
Via Giustetto n.75
10064 Pinerolo (TO)






Maggiori informazioni sulla lista Soci