Convincere le persone a non usare una versione 3.X Python "fine vita"

2

Contesto

Nella mia azienda, abbiamo un importante pacchetto Python che è scritto in Python 2. Ora stiamo pianificando di migrarlo in Python 3 (non ci interessa mantenerlo compatibile con Python 2).

Sono uno sviluppatore junior e i miei colleghi sono persone anziane, che non hanno una solida esperienza in informatica.

Problema

Durante il processo di pianificazione, dovevamo rispondere alla domanda della versione minima di Python che vogliamo supportare. La risposta scelta era Python 3.4, per alcune ragioni interne. Tuttavia, Python 3.4 arriverà al termine del ciclo di vita in 5 mesi (quindi probabilmente anche prima che questo pacchetto venga portato su Python 3)

Non mi piace l'idea di supportare una versione Python che non è più supportata dall'organizzazione Python ma non riesco a trovare argomenti concreti contro di essa, altri che "semplicemente non sembra giusto".

Gli argomenti a cui ho pensato sono:

  • avremo meno versioni di Python da supportare: se iniziamo con 3.5, dobbiamo supportare una versione in meno, 3,6 due versioni in meno, ecc.
  • possiamo utilizzare le nuove funzionalità linguistiche

Riguardo al primo, altri hanno detto che testeremo solo la versione minima supportata sul nostro CI e che gli sviluppatori di questo pacchetto useranno l'ultimo come nostro ambiente di sviluppo locale. Non è sicuro in termini di test, ma devo ammettere che le differenze tra le versioni di Python 3.X non stanno infrangendo così tante cose, specialmente considerando cosa fa questo pacchetto.

Riguardo al secondo argomento, le persone non sono realmente a conoscenza delle nuove funzionalità da Python 3.5 e successive e tendono a dire: "lo facciamo oggi in Python 2, quindi non vedo il punto di avere nuove funzionalità" . Inoltre, nel contesto di questo pacchetto, non ci sono nuove funzionalità che posso davvero pubblicizzare come super belle (come async roba per esempio).

Domande

  • Quali sono le conseguenze dell'utilizzo di una versione di Python 3.X che ha raggiunto la fine del ciclo di vita? Riesco a trovare risorse su Python 2 vs Python 3, ma non riesco a trovare nulla di specifico per le vecchie versioni di Python 3.X rispetto a quelle nuove.
  • Quali sono le strategie per sensibilizzare sul tenere aggiornato il software? Come cambiare la mentalità delle persone in modo che non trovino normale utilizzare strumenti obsoleti?
posta filaton 09.11.2018 - 14:49
fonte

1 risposta

1

Il ciclo di vita dello sviluppo del software è più che uno sviluppo - comporta anche la manutenzione e la dismissione o la sostituzione del software. Quindi chiedere "che dire in X anni" è generalmente una domanda sensata.

La grande ragione per cui si desidera utilizzare una versione Python supportata è la sicurezza, specialmente per i software connessi alla rete. L'utilizzo di una recente versione di Python offre un periodo di supporto più lungo senza dover svolgere ulteriori attività di sviluppo. Per lo stesso motivo, potresti (si spera) non progettare un nuovo sistema per Windows XP o Android 4 o Ubuntu 16.04. Per Python, la data EOL si applica solo allo sviluppo CPython ufficiale, che conta se ti compili o scarichi binari ufficiali. Se si utilizza un Python fornito con il sistema operativo, il fornitore del sistema operativo potrebbe fornire periodi di supporto diversi.

Nota che potresti essere legalmente obbligato a seguire pratiche di sicurezza all'avanguardia come l'esecuzione di versioni software supportate, ad esempio se il tuo software elabora dati personali ed è soggetto al GDPR (vedi Art. 32 ).

Da un punto di vista dello sviluppo, il supporto di più versioni Python è facile (specialmente quando si utilizza solo Python 3.4+) e l'aggiornamento a nuove versioni è banale oltre alcune minime correzioni (ad es. Python 3.7 ha trasformato async in una nuova parola chiave).

  • Il più grande fattore di attrazione per le nuove versioni sono caratteristiche linguistiche cruciali che rendono lo sviluppo più piacevole (ad esempio asincroni, annotazioni di tipo, stringhe di tipo f, ordinanze ordinate, assegnazione in linea) e miglioramenti della libreria standard.
  • Un fattore di spinta per abbandonare le versioni precedenti è il più ampio ecosistema di libreria: molte librerie non amano sprecare sforzi nel supportare le versioni di EOL'ed Python. Se non esegui l'upgrade, dovresti biforcare quelle librerie e eseguire il backport di eventuali bugfix, il che è molto impegnativo.

Quindi, mentre puoi usare una versione di Python più vecchia, non ci sono buoni motivi per farlo - tranne quando hai dei vincoli esterni. Ad esempio un requisito del tipo: "il software deve essere eseguito su questo server e su questo server è installato solo Python 3.4. Non è possibile installare un'altra versione di Python. "A volte rimuovere questi vincoli è più semplice (es. Lobby per un aggiornamento del SO o distribuzione tramite contenitori), ma nel contesto di codice non asincrono e Python 3.4, solo la scrittura di codice Python compatibile è solitamente il percorso di minor resistenza.

    
risposta data 09.11.2018 - 16:39
fonte

Leggi altre domande sui tag