Recensione: 6 IDE Python vanno al tappeto

Di tutte le metriche che potresti utilizzare per misurare la popolarità e il successo di un linguaggio, un fattore infallibile è il numero di ambienti di sviluppo disponibili per esso. L'aumento di popolarità di Python negli ultimi anni ha portato con sé una forte ondata di supporto IDE, con strumenti rivolti sia al programmatore generale che a coloro che utilizzano Python per attività come il lavoro scientifico e la programmazione analitica.

Questi sei IDE con supporto Python coprono la gamma di casi d'uso. Alcuni sono IDE multilingue che supportano Python tramite un componente aggiuntivo o un riconfezionamento di un altro prodotto con estensioni specifiche di Python. Ciascuno avvantaggia un pubblico leggermente diverso di sviluppatori Python, sebbene molti si sforzino di essere utili come soluzioni universali.

Un buon numero di IDE oggi sono framework dotati di plug-in per linguaggi e attività specifici, piuttosto che app scritte dall'interno verso l'esterno per promuovere lo sviluppo in una determinata lingua. A tal fine, la tua scelta di IDE potrebbe essere determinata dal fatto che tu abbia o meno esperienza con un altro IDE della stessa famiglia.

Video correlato: Perché Python semplifica la programmazione

Per coloro che non hanno questa esperienza, PyCharm è uno dei posti migliori da cui iniziare. È amichevole per i nuovi arrivati, ma non ostacolato nel suo set di funzionalità. In effetti, presenta alcune delle funzionalità più utili tra tutti gli IDE qui descritti. Molte di queste funzionalità sono disponibili solo nella versione a pagamento del prodotto, ma c'è molto nella versione gratuita per aiutare uno sviluppatore alle prime armi a iniziare.

LiClipse e Python Tools for Visual Studio (PTVS) sono buone scelte per gli sviluppatori che hanno già familiarità con Eclipse e Microsoft Visual Studio, rispettivamente. Entrambi sono ambienti di sviluppo in piena regola, completi come scoprirete, che integrano Python abbastanza bene. Tuttavia, sono anche applicazioni complesse e tentacolari che comportano un notevole sovraccarico cognitivo. Se hai già imparato uno di loro, lo troverai un'ottima scelta per il lavoro con Python.

L'incarnazione Python dell'IDE Komodo di ActiveState è naturale per coloro che hanno già utilizzato l'IDE Komodo per qualche altro linguaggio e ha caratteristiche uniche (come il valutatore di espressioni regolari) che dovrebbero ampliare il suo fascino. Komodo merita uno sguardo ravvicinato da principianti ed esperti allo stesso modo.

Spyder è più adatto a lavorare con IPython o altri strumenti di calcolo scientifico in distribuzioni come Anaconda, piuttosto che come piattaforma di sviluppo per Python in generale. Infine, IDLE è meglio riservato per lo scripting rapido e sporco e, anche su questo punto, potrebbe essere un secondo posto in un editor di codice autonomo con un plug-in di sintassi Python. Detto questo, IDLE è sempre presente quando ne hai bisogno.

INATTIVO

IDLE, l'ambiente di sviluppo incluso con quasi tutte le installazioni di Python, potrebbe essere considerato l'IDE Python predefinito. Tuttavia, IDLE non è in alcun modo un sostituto di un IDE completo; è più simile a un elaborato editor di file. Tuttavia, IDLE rimane una delle opzioni predefinite per gli sviluppatori Python per ottenere un vantaggio con il linguaggio, ed è migliorata in modo incrementale con ogni versione di Python, specialmente con Python 3.5. (Vedi questa pagina per una discussione interessante sui recenti sforzi per migliorare IDLE.)

IDLE è costruito interamente con componenti forniti con un'installazione predefinita di Python. A parte l'interprete CPython stesso, questo include il toolkit dell'interfaccia Tkinter. Un vantaggio nello sviluppo di IDLE in questo modo: funziona su più piattaforme con un insieme coerente di comportamenti. Come svantaggio, l'interfaccia può essere terribilmente lenta. La stampa di grandi quantità di testo da uno script nella console, ad esempio, è di molti ordini di grandezza più lenta rispetto a quando lo script viene eseguito direttamente dalla riga di comando.

IDLE ha alcune comodità immediate. Mette in mostra un ciclo di lettura-valutazione-stampa (REPL) incorporato, o console interattiva, per Python. In effetti, questa shell interattiva è il primo elemento presentato all'utente quando viene avviato IDLE, piuttosto che un editor vuoto. IDLE include anche alcuni strumenti trovati in altri IDE, come fornire suggerimenti per parole chiave o variabili quando si preme Ctrl-Spazio e un debugger integrato. Ma le implementazioni per la maggior parte di queste funzionalità sono primitive rispetto ad altri IDE e nascoste dalla selezione limitata di componenti dell'interfaccia utente di Tkinter. E la raccolta di componenti aggiuntivi di terze parti disponibili per IDLE (uno di questi progetti è IdleX) non è neanche lontanamente ricca come troverai con altri IDE.

In sintesi, IDLE è il migliore per due scenari. Il primo è quando vuoi hackerare insieme uno script Python veloce e hai bisogno di un ambiente preconfigurato per farlo. Il secondo è per i principianti che stanno solo prendendo le gambe. Anche i principianti dovranno rapidamente passare a un'opzione più robusta.

Spyder

Spyder è l'abbreviazione di "Scientific PYthon Development EnviRonment". È destinato all'uso come banco di lavoro per l'elaborazione scientifica con Python e ciò si riflette nel set di funzionalità, nella confezione e nel comportamento generale dell'IDE. Spyder ha funzionalità utili per lo sviluppo generale di Python, ma a meno che tu non lavori principalmente con IPython e pacchetti di calcolo scientifico, probabilmente stai meglio con un IDE diverso.

Il motivo principale per non utilizzare Spyder come ambiente di sviluppo Python generico non è il set di funzionalità, ma il processo di installazione. Spyder non viene fornito come eseguibile autonomo come un prodotto come Visual Studio o PyCharm. Invece, è installato come pacchetto Python. Il percorso più semplice per Spyder è installare una distribuzione Python precaricata, come Anaconda di Continuum Analytics.

1. Disponibile come estensione, ma supporta solo il controllo della sintassi. 2. Disponibile come componente aggiuntivo Eclipse. 3. Disponibile nella versione commerciale. 4. Vedere le istruzioni per l'integrazione. 5. Utilizza i sistemi di controllo della versione installati sull'host.
  INATTIVO Komodo LiClipse PyCharm PTVS Spyder
Supporto Cython No Sì (1) No Sì (3) No No
Controllo della versione No Sì (5)
Debugger grafico No No
Supporto IPython No No No Sì (4)
Macro No Sì (2) Sì (2) No
Più interpreti No
Refactoring No No
Integrazione del database No Sì (2) Sì (3) No
HTML / CSS / JavaScript No Sì (3) No

Spyder include IPython, che è un sostituto della console Python convenzionale. Quando digiti i comandi in IPython, i risultati possono essere esplorati in modo interattivo. Ogni comando può essere trattato come una "cella" o un segmento di codice di cui è possibile archiviare e fascicolare l'output.

Spyder aggiunge a questo integrando i comportamenti delle celle nel suo editor di codice. Se inserisci commenti formattati in modo speciale in qualsiasi script Python, puoi dividerlo in celle ed eseguire quelle celle nell'interfaccia IPython in qualsiasi ordine. In questo modo, è facile utilizzare Spyder per prototipare le celle per il posizionamento in un notebook IPython in seguito.

Per il debug, Spyder utilizza il debugger Pdb integrato di Python. L'interfaccia della riga di comando per Pdb è ben lontana dai debugger grafici più sofisticati presenti in PyCharm o LiClipse, sebbene sia possibile installare il debugger grafico Winpdb come componente aggiuntivo opzionale. Sfortunatamente, non puoi usare Winpdb con Python 3, poiché ha dipendenze da pacchetti che sono ancora disponibili solo in Python 2 (in particolare, wxPython). A tal fine, la maggior parte delle persone rimarrà bloccata con Pdb.

Spyder è anche limitato rispetto ad altri IDE nella sua integrazione con sistemi di controllo della versione come Git e Mercurial. Se stai lavorando in un repository di progetto inizializzato, i file in quel progetto mostreranno le voci del menu di scelta rapida per il repository. Detto questo, non ci sono meccanismi di controllo della versione integrati direttamente in Spyder; è necessario disporre dell'applicazione di controllo della versione appropriata già installata a livello di sistema, con i suoi eseguibili disponibili dal percorso di sistema. Spyder non include nemmeno strumenti per la gestione dei repository nella sua interfaccia utente. Queste carenze non sono così gravi se sei già abituato a gestire i repository da solo, ma se non lo sei rappresentano ostacoli aggiuntivi.

Spyder ha funzionalità utili per lo sviluppo generale di Python. Uno che ha immediatamente attirato la mia attenzione è il riquadro di esplorazione delle variabili nell'interfaccia di Spyder. Mentre digiti i comandi in IPython, tutte le variabili create vengono registrate lì e possono essere esplorate in modo interattivo. Un altro strumento utile è il Deleter del modulo utente. Abilitalo e l'interprete Python ricaricherà tutti i moduli da zero quando esegue uno script Python. In questo modo, qualsiasi modifica apportata al codice di un modulo può essere applicata a un programma in esecuzione senza dover riavviare l'intera applicazione.

IDE Komodo di ActiveState

La linea di prodotti IDE di ActiveState include versioni per quasi tutte le principali lingue. L'approccio dell'azienda a questo è un po 'come funziona LiClipse: prendi il prodotto di base (in questo caso l'IDE di Komodo) e dotalo di componenti aggiuntivi per lo sviluppo di Python.

Komodo è più adatto a coloro che hanno già familiarità con le incarnazioni di Komodo per altre lingue. Le persone con tale esperienza alle spalle non avranno problemi a immergersi nel prodotto Python. Se sei freddo, ci sono alcune stranezze dell'interfaccia utente che vale la pena notare. Ad esempio, la barra dei menu dell'app non è esposta per impostazione predefinita; devi cliccare sul menu dell'hamburger in alto a destra o toccare il tasto Alt per visualizzarlo. Ha lo scopo di mantenere le cose pulite e semplici, ma potrebbe essere troppo minimalista per alcuni gusti.

D'altra parte, alcune delle scelte dell'interfaccia sono immediatamente allettanti. Mi è piaciuta particolarmente la "minimappa", un'anteprima ridotta del codice nell'editor, che ti consente di saltare a colpo d'occhio su qualsiasi parte del file che stai modificando. LiClipse ha una funzionalità simile, ma l'implementazione di Komodo è più facile da lavorare.

La maggior parte degli IDE Python sono dotati di simili controlli della sintassi specifici di Python o linting del codice. Komodo IDE ha tutto questo, ma è anche stato progettato per supportare le versioni 2 e 3 della lingua contemporaneamente. Se vuoi avviare una shell Python, ad esempio, e hai interpreti per entrambe le versioni di Python disponibili nel tuo percorso di sistema, puoi scegliere esplicitamente una delle due versioni. Ho spesso avuto bisogno di eseguire test rapidi dei comportamenti di una determinata istruzione in Python 2 e Python 3 fianco a fianco, e questo è un modo pratico per farlo.

Komodo ti offre un'opzione per applicare più configurazioni di esecuzione o debug per un'applicazione, ma è un po 'meno flessibile di una funzionalità simile in LiClipse. Quando avvii un'app, ti viene offerta una scelta di profili da applicare al programma. È possibile disabilitare la selezione del profilo e passare direttamente all'esecuzione di un profilo, ma la disabilitazione può essere eseguita solo a livello di applicazione, non per un progetto particolare. Preferisco il menu a discesa della barra degli strumenti di LiClipse da cui è possibile selezionare un determinato profilo o avviare il profilo utilizzato più di recente con un clic.

Un'inclusione davvero meravigliosa è un kit di strumenti per le espressioni regolari. Digita un'espressione regolare in un riquadro di questo strumento, fornisci alcuni dati di esempio a cui applicarla in un secondo riquadro e i risultati verranno visualizzati in un terzo. Lo strumento supporta anche più versioni di regex, incluso Python, e mostra anche i risultati delle operazioni di abbinamento, divisione e sostituzione. Faccio sempre fatica a creare regex funzionanti, quindi questo strumento è una manna dal cielo.

Un'altra utile funzionalità pronta all'uso è un catalogo di frammenti di codice comuni per Python. Fare clic su "walk", per esempio, e l'editor inserisce il codice boilerplate per utilizzare la os.walkfunzione di Python per attraversare le directory, una delle funzioni la cui sintassi e utilizzo non ricordo mai a mano. Sono incluse anche altre lingue. Ad esempio, se devi inserire codice HTML standard in un modello Django che stai preparando, Komodo ti copre.

La distribuzione Python predefinita viene fornita con il supporto per SQLite pronto all'uso. Komodo IDE lo completa fornendo un esploratore integrato per i database SQLite. È una specie di versione ridotta delle app desktop "workbench" fornite per MySQL o Microsoft SQL Server. L'interfaccia è goffa e poco attraente, ma è perfettamente adatta per un'ispezione rapida e sporca o per la modifica spot di un database. Non è destinato a fungere da IDE di database completo.

Troverai molte altre utili funzionalità in Komodo, anche se non prendono di mira specificamente Python. Il registratore di macro consente di registrare e riprodurre azioni comuni, sebbene non sembri registrare alcuni tipi di azioni come la scelta del profilo dell'app da utilizzare quando si avvia un'app. Un'altra funzionalità consente la collaborazione in tempo reale tra gli utenti di Komodo, anche se per accedere al servizio dovranno registrarsi per account con ActiveState.

LiClipse 

L'IDE Eclipse viene spesso criticato come lento e sovraccarico, ma il suo ampio supporto linguistico e la galleria di componenti aggiuntivi di sviluppo lo rendono uno strumento potente e prezioso. Python è supportato in Eclipse tramite l'add-on PyDev. Se stai usando Eclipse nient'altro che lo sviluppo di Python, la soluzione migliore è prendere LiClipse. (Durante questa recensione, userò LiClipse come abbreviazione per il pacchetto di funzionalità fornite da LiClipse e PyDev insieme.)

LiClipse è un riconfezionamento di Eclipse con PyDev, insieme a una sfilza di altri componenti Eclipse pensati per migliorare l'esperienza dell'utente. Quando viene avviato, LiClipse ha l'aspetto e si comporta in modo molto simile all'edizione normale di Eclipse, ad eccezione del marchio e delle icone LiClipse, quindi gli utenti esperti di Eclipse non dovrebbero avere molti problemi a configurare lo spazio di lavoro a loro piacimento. Se non hai esperienza con Eclipse, avrai bisogno di tempo per imparare come funziona lo spazio di lavoro di Eclipse (questo aspetto di Eclipse è regolarmente criticato). In questo senso, LiClipse è la soluzione migliore per le persone che si trovano già a proprio agio con Eclipse, forse perché ci lavorano attraverso un'altra lingua.

Scorecard Capacità (30%) Prestazioni (10%) Facilità di utilizzo (20%) Documentazione (20%) Componenti aggiuntivi (20%) Punteggio complessivo (100%)
IDLE 3.5.1 6 7 8 7 5 6.5
Komodo IDE 10.1.1 8 8 7 8 8 7.8
LiClipse 3.1 9 7 7 8 9 8.2
PyCharm 2016.2.3 9 8 9 8 8 8.5
Spyder 3.0.0 7 7 7 7 6 6.8
Python Tools 2.2 per Visual Studio 2015 9 8 7 9 9 8.5