2012-01-02 11 views
6

Sono in procinto di imparare Python e ho una domanda sul futuro. So che non è la cosa più urgente a cui pensare al momento, ma sono curioso.Come mantenere quando Django passa a Python 3?

Attualmente, Django supporta solo fino a Python 2.7. Tuttavia, nel prossimo futuro, supporterà Python 3. In termini di scrittura di codice in Python 2.7 e utilizzo del framework Django correlato, cosa succede quando arriva effettivamente la transizione a Python 3.

Presumibilmente, imparerei e codice nella versione più recente. Tuttavia, che dire del mantenimento del vecchio codice? Rimane com'è? Ha bisogno di essere riscritto?

Sono solo curioso di sapere come funzionano queste transizioni. Inoltre, fa differenza che Python 3 non è compatibile con le versioni precedenti? Qual è la conseguenza di ciò? Ad esempio, ho letto che le versioni da 1.8 a 1.9 di Ruby (e anche il futuro 2.x) erano compatibili con le versioni precedenti e meno di un salto (rispetto a Python 2.x a 3.x). Mi chiedo se questa divisione tra le versioni di Python crei problemi di frammentazione o problemi di manutenzione del codice?

Quindi, se qualcuno potesse provare a spiegarmi cosa succede con questi aggiornamenti e le questioni a portata di mano quando si tratta di loro, lo apprezzerei molto. Grazie!

+0

c'è uno strumento che converte il codice python 2.x in 3.x codice ... –

+1

Si noti inoltre che Django (come la maggior parte dei progetti principali) non passerà da una versione all'altra, ma ne avrà alcune versioni che supportano sia 2.x che 3.x. – delnan

risposta

3

... cosa succede quando arriva effettivamente la transizione a Python 3.

Niente. Ecco perché stai usando un framework in primo luogo. Tutto ciò di cui hai bisogno è la piccola quantità del tuo codice che è will need to be ported.

2

Django (a causa dell'immensa quantità di codice in esecuzione su di esso), non lascerà, almeno in un prossimo futuro, supporto per 2.x. Non ha alcun senso.

Qualsiasi Python 3 ha difficoltà ad ottenere l'adozione in questo momento; PyPy sta crescendo molto, molto più velocemente.

E, c'è py2to3 che converte alcune parti in codice python 2 in python 3, e quindi devi fare il resto a mano.

+1

Il confronto tra Python 3 e PyPy non ha alcun senso. Sono completamente ortogonali: PyPy è un'implementazione di Python (2.7, come accade) su un compilatore JIT, non una nuova versione del linguaggio. –

+0

@DanielRoseman: In realtà, ha senso - se PyPy avesse abbastanza adozione, potrebbe continuare ad evolvere il 2.7 branche della lingua per tutti coloro che non vogliono fare un salto gigante. – Marcin

1

Il vecchio codice deve essere riscritto solo se si passa a Python 3 per quel codice. Per progetti a lungo termine questo è probabile che accada, per molti altri progetti moriranno e diventeranno obsoleti, o il cliente passerà a un'altra azienda per mantenerlo, e quindi non dovrai mai preoccuparti.

Per il codice che deve essere eseguito su Python 3, è necessario portarlo. Questo può essere molto facile, o molto difficile, a seconda di quanto si stanno utilizzando sia i dati Unicode e binari, sia il numero di interni di Python su cui si sta facendo affidamento.

Penso che il tipico progetto Django sia abbastanza semplice da eseguire.

Per ulteriori informazioni sul porting è possibile vedere http://python3porting.com.

Problemi correlati