Domanda

Di recente ho deciso di espandere i miei orizzonti di programmazione e imparare il linguaggio di programmazione Python. Mentre ho usato un po 'Python per le lezioni al college e per un progetto o due al lavoro, non sono affatto un esperto. La mia domanda è la seguente: dovrei preoccuparmi delle versioni 2.x o devo passare direttamente alla 3.0? Mi sto avvicinando alla 3.0 poiché programmerò di più le applicazioni per uso personale / di apprendimento, ma volevo vedere se c'erano dei buoni argomenti contro di essa prima di iniziare.

È stato utile?

Soluzione

Assolutamente no 3.0 - 3.1 è uscito ed è più stabile, migliore, più veloce sotto ogni aspetto; non ha assolutamente senso iniziare con 3.0 in questo momento, se vuoi prendere le 3 serie dovrebbe essere su tutti gli account 3.1.

Per quanto riguarda 2.6 contro 3.1, 3.1 è un linguaggio migliore (soprattutto perché è stata rimossa una cruft che si era accumulata nel corso degli anni ma deve rimanere in 2. * per la retrocompatibilità) ma tutto il resto dell'ecosistema (dalle estensioni a strumenti, dai libri alla conoscenza collettiva) è ancora molto a favore di 2.6 - se non ti interessa essere in grado di utilizzare (ad esempio) determinate GUI o estensioni scientifiche, distribuire su App Engine, script Windows con COM, avere un è consigliabile un IDE di terze parti, e così via, 3.1, ma se ti preoccupi di queste cose, resta ancora 2. * per ora.

Altri suggerimenti

Usa 3.1

Perché?

1) Perché fintanto che tutti useranno ancora 2.6, le librerie avranno meno motivi per migrare alla 3.1. Fintanto che quelle librerie non sono portate su 3.1, sei bloccato con la scelta di non usare i punti di forza di 3.1, o di fare i lavori solo a metà usando la soluzione hackish di usare un set di funzionalità con back-port. Sii un pensatore in avanti e contribuisci a spingere Python in avanti.

2) Se impari e usi 3.1 ora, non dovrai riapprenderlo in seguito quando la porta di massa è completa. So che alcune persone dicono che non dovrai imparare molto, ma perché imparare la vecchia merda? Python stesso si sta muovendo verso 3.1 , le librerie si sposteranno verso 3.1 e fa schifo dover giocare a recupero e riapprendere una lingua che stai già utilizzando.

3) 3.1 offre una lingua migliore , più stabile e più coerente di 2.6 ... questo è normale. Le lezioni apprese da 2.6 sono state tutte inserite in 3.1 per renderlo migliore. È un processo chiamato PROGRESS . Questo è il motivo per cui nessuno utilizza ancora Windows 3.1. È il modo in cui le cose si muovono AVANTI. Perché altrimenti pensi che abbiano avuto il problema di eseguire il back porting di un set di funzionalità in primo luogo?

4) Se stai imparando Python e impari 2.6, allora quando ti sentirai davvero a tuo agio con la lingua, le porte saranno fuori e dovrai imparare di nuovo le librerie e la lingua. Se inizi con 3.1, quando ti sentirai a tuo agio con la lingua, le porte saranno fuori uso e quindi potrai imparare le librerie che ti interessano. È un processo più fluido .

5) Per essere uno sviluppatore migliore. Se devi imparare e riapprendere le stesse cose, la tua comprensione non sarà molto profonda. Imparando questa lingua e le sue biblioteche solo una volta, avrai più tempo per lavorare con loro piuttosto che riapprendimento della sintassi. Questo ti permette di capirli meglio. Se ti mancano davvero alcuni pezzi rinunciando alle biblioteche? SCRIVI A LORO. Probabilmente non avrai bisogno di un'intera libreria e di solito puoi scrivere solo quei pezzi di cui hai bisogno e sviluppare strumenti per te stesso. Questo, ancora una volta, ti aiuta a capire meglio la lingua, e più in profondità.

Risposta breve: inizia con Python 2.6.

Perché: la programmazione è più divertente e utile quando puoi sfruttare il lavoro degli altri. Ciò significa utilizzare spesso librerie di terze parti. Molte delle librerie popolari per Python non hanno ancora il supporto 3.x. PIL e NumPy / SciPy vengono in mente. Anche il mio interprete preferito, ipython, non funziona ancora con 3.0. Anche molti framework di unit test e web framework non sono ancora in 3.0.

Quindi, se inizi in 3.x molte porte ti saranno chiuse, almeno fino a quando il porting 3.x prende il vapore. Ci sono molte funzioni interessanti in Python 3.x, ma alcune sono state portate in backport su 2.6 e altre ancora lo faranno su 2.7. Quindi mantieni il 2.6 per ora e rivaluta 3.x tra circa un anno.

Penso che ti verrà servito meglio andando direttamente in 3.0. A meno che tu non abbia una base di codice legacy con cui confrontarti, ci sono pochissimi vantaggi nell'apprendimento dei modi 2.xx di fare le cose.

Nel mondo Python (come nella maggior parte degli altri, in realtà), le versioni tendono a impiegare un po 'a migrare verso tutti i sottoprogetti, ma se dovessi mai trovare la necessità di tornare a 2.xx, non penso che troverai che il re-apprendimento delle cose sia particolarmente doloroso.

Dovresti andare con l'ultima versione di qualsiasi linguaggio di programmazione che impari a meno che tu non abbia un motivo specifico non . Dato che non hai un progetto esistente che non funzionerà con Python 3.0, dovresti sentirti libero di usare la versione più recente.

Usa python 3.1, Luke.

Python 3.1 non dovrebbe essere usato fino a quando altre librerie non avranno raggiunto il supporto per esso.

Ora dovresti usare 2.6. Ha diverse funzionalità 3.x portate indietro su di esso, in modo che la migrazione a 3.x non sarà difficile in seguito e non imparerai pratiche obsolete.

La buona notizia è che non è poi così difficile imparare sia Python 2.xe 3.x. È possibile installare la versione 2.x più recente come versione registrata con il sistema per eseguire gli script Python per impostazione predefinita, ma anche installare la versione 3.x più recente per iniziare esplicitamente quando si desidera. Questo è quello che ho sul mio sistema Windows Vista.

Quindi, il documento chiave per l'apprendimento delle differenze tra le versioni 2.xe 3.x è:

http://docs.python.org/3.1/whatsnew/3.0.html

Se leggi materiali didattici Python basati su 2.x e fai anche riferimento a "Novità in Python 3.0". link sopra, avrai una comprensione di come sono cambiate le cose. Vedi anche gli altri nuovi documenti, come per le differenze tra 3.0 e 3.1, ma il link sopra è il principale per capire le modifiche 2.x vs. 3.x.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top