Usa la tecnologia più recente o usa una tecnologia matura come sviluppatore?

2

Mi piacerebbe sviluppare un'applicazione per un gruppo di persone da utilizzare. Ho deciso di sviluppare usando python, ma sto pensando di usare python 2.X o python 3.X. Se uso python 2.X, ho bisogno di aggiornarlo per il futuro ... Ma è più maturo e ha molti strumenti e librerie. Se sviluppo usando 3.X, non ho bisogno di pensare all'integrazione futura, ma attualmente non ha molte librerie, anche un python per l'eseguibile non è pronto per tutte le piattaforme.

Inoltre, una delle considerazioni è che si tratta di un'applicazione nuova di zecca, quindi non ho l'onere della storia di mantenere le vecchie librerie.

Qualche raccomandazione su questo dilemma?

Ulteriori informazioni su questa applicazione:

  • Applicazione nativa
  • Tempo di manutenzione: 5 anni +
  • La libreria / gli strumenti devono essere necessari: non hai ancora idea.
  • Deve avere bisogno di funzionalità che in 2.X: converti in un eseguibile per Windows e Mac OS X
posta Ted Wong 22.11.2011 - 17:03
fonte

3 risposte

3

Dipende molto da cosa fa l'applicazione e da che tipo di librerie vuoi sfruttare. Il più grande svantaggio di python 3.x è la mancanza di supporto per librerie / framework. Se stai costruendo un'applicazione web, ci sarà un piccolo svantaggio nell'uso di 2.x, e avrai una gamma molto più ampia di framework e librerie tra cui scegliere. Ecco un buon articolo su python 2.x vs 3.x.

Alcune considerazioni generali sulla scelta di una lingua / piattaforma / framework:

  1. durata della domanda. anni? mesi? decenni?
  2. Quanto costa aggiornare? qual è il costo di manutenzione se non lo fai? molte applicazioni eseguiranno felicemente python 2.x nella loro virtualizzazione per i prossimi 20 anni, se ne hai bisogno.
  3. Quali caratteristiche della lingua trarrà vantaggio dall'applicazione? molte applicazioni web usano Python solo in modo abbastanza semplice, e si tratta più della manutenibilità delle librerie che stai utilizzando rispetto al codice che stai scrivendo.

spero che questo aiuti.

    
risposta data 22.11.2011 - 17:17
fonte
1

Primo, ultimo e maturo NON sono sempre in contrasto.

Ad esempio, nel caso di Python, non si può dire che 2.x sia "più maturo" di 3.x - al contrario, per alcuni aspetti 3.x è più maturo - classi migliori, migliore supporto Unicode e naturalmente correzioni di bug.

D'altra parte, campare Node.JS con Python Twisted - e puoi dire che Twisted è più maturo di Node.JS, che è l'ultimo di recente.

Ora, quello che dovresti fare è più di ciò che puoi gestire in termini di manutenibilità, rispetto a 2.x / 3.x.

Se sai che non sarà molto difficile aggiornare la tua app a 3.x più tardi, puoi andare con 2.x adesso, e sfruttare l'ecosistema 2.x.

D'altra parte, se pensi che sarà un incubo di manutenzione aggiornare l'app a 3.x, e stai bene con lo sviluppo delle librerie e degli strumenti mancanti da te stesso, con tutti i mezzi andare con 3.x poi.

    
risposta data 22.11.2011 - 17:32
fonte
1

Bene, so che se hai bisogno di creare eseguibili di windows potresti voler usare w / 2.x dato che py2exe sarà preferibile.

Vedi: link

Ci sono altri strumenti per il congelamento delle finestre, ma i guru che guardo su per giurare su py2exe mi hanno sempre fatto bene.

Potresti anche prendere in considerazione l'effettiva difficoltà nel porting delle cose alle nuove versioni di Python. Ad esempio, il processo corrente (da 2.x a 3.x) non è così male e ci sono persino strumenti che forniscono un grado di automazione per tale, come 2to3.

Vedi: link

Dovresti anche verificare le modifiche tra le versioni principali (pagine "Novità") di python e qualsiasi altra API prospettica per avere un'idea del potenziale ambito di differenza nelle revisioni.

Per quanto riguarda il fatto che le cose nuove siano più grandi / migliori, può essere vero, ma è meglio preoccuparsi di ciò che si trova nel sottoinsieme di tutti quegli elementi migliorati che si è, o si prenderebbe in considerazione, utilizzando.

    
risposta data 22.11.2011 - 17:36
fonte

Leggi altre domande sui tag