[Python] "Go or Unladen Swallow? " Cosa ne pensate ?

Daniele Varrazzo piro a develer.com
Mer 11 Nov 2009 20:00:57 CET


On Wed, 11 Nov 2009 18:50:27 +0100, luigi scarso <luigi.scarso a gmail.com>
wrote:
> 2009/11/11 Daniele Varrazzo <piro a develer.com>:

> Vedi XML -- lo vorresti scartare perché è sostanzialmente stabile ?

XML non è un linguaggio di programmazione: serve a descrivere dati. I dati
che io scrivo mi aspetto di poterli leggere finché campo.


> certo anche di linguaggio, ma suvvia
> se usi un linguaggio che cambia ogni 3 giorni ti aspetti un progetto
> che arriva alla fine ?
> Alla fin fine non hai molto da scegliere dalla torta
> Java,C,C++, C#

Di sicuro Python è più dinamico dei 4 che indichi, ma non farlo come un
linguaggio che cambia magmaticamente. Ogni singola incompatibilità col
passato (es. "as" diventata keyword) ci mette un tempo molto lungo per
essere realizzata, circa 18 mesi, con fior di warning emessi nel mezzo, e
con una ben definita trafila burocratica (probabilmente volutamente
impegnativa, per scoraggiare chi non ha niente da fare se non piagnucolare
che qualcuno ce l'ha più lungo di lui dal postare feature a raffica senza
chiedersi delle conseguenze o dell'utilità - tipo il which che tutti quelli
che vengono dal Java vogliono e nessuno si accorge che in Python sarebbe
inutile). Non è certo un bersaglio così mobile.


>> Questi problemi con le diverse versioni del ramo 2.x di Python le ha
>> avute
>> solo Zope: è un suo problema specifico.
> No, anche mio da un paio di mesi, da quando mi son chiesto "perchè
> cambia così spesso" ?

A me sembra che tu usi Plone, Plone usa Zope, Zope usa Python 2.4 e da qui
viene il tuo problema.

Farsi una domanda non è un problema in sé.

Tu quali problemi di incompatibilità hai trovato nella linea 2.x di
Python? Mi fai un esempio? Io ho avuto solo un paio di moduli dove avevo
messo il "from __future__ import qualcosa" dopo un paio di assegnamenti,
operazione da sempre dichiarata sbagliata ma non rinforzata fino a Python
2.5. L'errore si verifica ad import time ed è banale da correggere:
invertire 2 righe. Tu quali problemi hai trovato che non fossero "non posso
usare l'ecosistema di Zope"?

Perché cambia? A me sembra per migliorare. Perché i generatori sono una
cosa bella, e se non erano venuto in mente nella versione 2.0 sarebbe da
stupidi non volerli introdurre mai, visto che non portano incompatibilità.
Conosci una feature introdotta nel ramo 2.x per cui "Python era meglio se
non l'aveva"? Alcune puoi trovarle brutte (x if y else z) ma basta non
usarle: non ti ruba neanche una keyword.


>>Zope non
>> usa python come linguaggio, lo usa come una specie di piattaforma e gli
>> mette le mani direttamente nell'implementazione. Se tutta
>> l'infrastruttura
>> è basata su un leak implementativo è normale che non possa esserci
>> evoluzione.
> Uh -- non mi è chiaro.

Qual'è il motivo per cui Zope non è compatibile con Py 2.5? Ho googlato e
non l'ho trovato. Ricordavo che fosse un problema nell'implementazione di
basso livello e nella possibilità di eliminare alcune caratteristiche che
rendano il linguaggio "sicuro", ovvero dare ad un utente non fidato la
possibilità di scrivere codice Python senza permettergli di fare danni.
Questa cosa non l'ho ritrovata, quindi non so se me la sono sognata. Ora ho
trovato solo un accenno alla diversa gerarchia di eccezioni, ma non mi
sembra un problema tanto insormontabile da convincere il mondo Zope a
restare alla 2.4 con immani bestemmie da parte di sviluppatori e
distributori nell'arco di ormai quanti anni?

Per tutti gli altri progetti che conosco, pubblici o meno, non conosco
nessuno che abbia avuto problemi non banali a muoversi in avanti nel ramo
2.x.


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python