PDA

View Full Version : [Python] IDE


!k-0t1c!
04-05-2009, 11:39
Mi trovo finalmente con un po' di tempo "libero" e vorrei pasticciare con python - più per curiosità che per esigenza.
Premetto che sono intenzionato a usare solo Python 3, le versioni precedenti non mi interessano.
Aggiungo inoltre che ho una vasta esperienza di programmazione con C, C++, C# oltre a nozioni di VB, nonché un forte interesse per F# con cui ho realizzato qualche progettino e - come credo si evinca facilmente - tutta la mia esperienza di programmazione è accumulata sviluppando con Visual Studio; dopo aver provato altri IDE (inclusi Eclipse e IDEA per Java) non li ho mai trovati "degni" di particolari attenzioni in quanto ormai viziato dalla comodità, completezza e integrazione di VS.
Mi rivolgo dunque a tutti coloro che abbiano esperienza su Python chiedendo se esiste un IDE con queste caratteristiche:

Evidenziazione del codice
Autocompletamento del codice e suggerimenti
(OTTIMO!) Debugger integrato
Build system integrato (non intendo perdere tempo a compilare da riga di comando et similia)
Funzioni bene su Windows
Pieno supporto per la versione 3 di Python
Indentazione automatica
Buona interfaccia, ricca di informazioni ma al contempo pulita


Grazie anticipatamente!

cdimauro
04-05-2009, 11:50
L'unico che credo possa soddisfare tutti o quasi i requisiti penso sia Komodo IDE, ma è a pagamento.

!k-0t1c!
04-05-2009, 13:33
L'unico che credo possa soddisfare tutti o quasi i requisiti penso sia Komodo IDE, ma è a pagamento.
Grazie del consiglio, proverò la demo e scriverò qui qualche impressione ;) Quanto al fatto che è a pagamento non c'è problema, sono abituato a Microsoft, dubito ci sia di peggio quanto a licenze e chiusura della piattaforma :)

cdimauro
04-05-2009, 13:39
Visual Studio Express di MS è gratuito. ;)

!k-0t1c!
04-05-2009, 14:36
Con sorpresa ed un certo sdegno ho appena appreso che nonostante ActiveState fornisca sia Python 3 sia Komodo quest'ultimo non supporta ancora tale versione del linguaggio (http://bugs.activestate.com/show_bug.cgi?id=79326) - almeno non a livello di debugger!
Quanto a Visual Studio Express è utile come una bicicletta con le gomme forate...

cdimauro
04-05-2009, 14:52
Con sorpresa ed un certo sdegno ho appena appreso che nonostante ActiveState fornisca sia Python 3 sia Komodo quest'ultimo non supporta ancora tale versione del linguaggio (http://bugs.activestate.com/show_bug.cgi?id=79326) - almeno non a livello di debugger!
Se è solo per il debugger, allora non sarebbe nemmeno un grosso problema. In 4 anni e mezzo che lavoro con Python l'ho usato soltanto UNA volta, e per effettuare il tracing di codice non mio. :D
Quanto a Visual Studio Express è utile come una bicicletta con le gomme forate...
Dev'essere comunque un'ottima bicicletta, se permette di fare questo (http://www.pycon.it/conference/talks/beyond-bytecode-a-wordcode-based-python). :O

Poi è chiaro che PAGANDO c'è di meglio, ma per la stragrande maggioranza dei casi (e progetti) direi che si comporta piuttosto bene. :cool:

!k-0t1c!
04-05-2009, 18:19
Se è solo per il debugger, allora non sarebbe nemmeno un grosso problema. In 4 anni e mezzo che lavoro con Python l'ho usato soltanto UNA volta, e per effettuare il tracing di codice non mio. :D

Come ho scritto nel primo post vengo da un "altro mondo", e salvo su F# in quel mondo il debugging è pratica non rara...vediamo quanto mi serve sul pitone...

Dev'essere comunque un'ottima bicicletta, se permette di fare questo (http://www.pycon.it/conference/talks/beyond-bytecode-a-wordcode-based-python). :O

Poi è chiaro che PAGANDO c'è di meglio, ma per la stragrande maggioranza dei casi (e progetti) direi che si comporta piuttosto bene. :cool:
Certo è già qualcosa di molto migliore di quello che altri linguaggi avranno mai, tuttavia io sono affezionato ai miei plugins (leggi VisualAssist, ReSharper, Refactor Pro) e sulle express editions non si possono usare, senza contare il fatto che le express editions richiedono il download della Windows SDK a parte (scocciatura non indifferente).
Ad ogni modo vedrò se riesco a farmi tornare utile in qualche modo sto pitone, visto che potrei avere interesse ad usare l'interop con il C++ :)

cdimauro
04-05-2009, 19:24
Come ho scritto nel primo post vengo da un "altro mondo", e salvo su F# in quel mondo il debugging è pratica non rara...vediamo quanto mi serve sul pitone...
Molto poco, te l'assicuro. Con Python il vantaggio è di poter sfruttare l'interprete interattivo per provare velocemente pezzi codice.

Hai un'idea? Butti giù due righe direttamente nella shell interattiva, e controlli immediatamente se è buona, oppure no, o è necessario qualche miglioramento.

Ti assicuro che in termini di produttività una cosa del genere è assolutamente impagabile, e ti permette di evitare spesso il ricorso a strumenti come il debugger.
Certo è già qualcosa di molto migliore di quello che altri linguaggi avranno mai, tuttavia io sono affezionato ai miei plugins (leggi VisualAssist, ReSharper, Refactor Pro) e sulle express editions non si possono usare,
Ho capito. In effetti i tool di rifattorizzazione sono come la droga: una volta provati è difficile farne a meno.
senza contare il fatto che le express editions richiedono il download della Windows SDK a parte (scocciatura non indifferente).
Non ho mai avuto modo di lavorare con l'SDK, quindi mi sono perso questa tortura, ma posso immaginare che sia seccante.
Ad ogni modo vedrò se riesco a farmi tornare utile in qualche modo sto pitone, visto che potrei avere interesse ad usare l'interop con il C++ :)
In questo caso ti consiglio di utilizzare la libreria BOOST, che ha già tutta una parte sviluppata apposta per rendere la vita molto più facile per l'embedding / extending di Python.

Ci sono diversi esempi nel sito e nella FAQ, nel wiki di Python se non erro c'è una sezione apposita.

!k-0t1c!
05-05-2009, 00:01
Grazie per le risposte rapide e molto informative!
Mi fido per la questione del debugger, ma dopo 1oretta con Komodo IDE mi sono reso conto che la code completion fa pena...
Esiste per caso qualcosa di meglio nel campo?

cdimauro
05-05-2009, 07:19
Considera che Python è un linguaggio dinamico, e quel che riesce a fare Komodo è già un mezzo miracolo.

La code completion come nei linguaggi a tipizzazione statica purtroppo non si ottenere, tranne nei casi in cui il contesto non permetta a Komodo di identificare in maniera "sicura" il tipo dell'oggetto in questione.

!k-0t1c!
05-05-2009, 10:18
Ok, cercherò di accontentarmi... tutto sommato le cose sembrano spesso tanto semplici che basta un po' di intuito (o al massimo un dir...)
Ma già che ci sono mi farebbe molto comodo sapere se esiste in giro qualcosa di buono per disegnare GUI. La cosa più simile a Visual Studio in questo senso sarebbe gradita, perché ho visto in giro che ci sono diversi programmi che consentono di creare alberi di oggetti facenti parte dell'interfaccia e di impostarne le proprietà, ma preferirei di gran lunga qualcosa di molto più visuale.
Thanks in advance! :)

cdimauro
05-05-2009, 10:22
Ok, cercherò di accontentarmi... tutto sommato le cose sembrano spesso tanto semplici che basta un po' di intuito (o al massimo un dir...)
Oltre a dir(oggetto) puoi anche provare help(oggetto). :cool:

Vedrai che anche senza autocompletamente "figo" sarei sempre molto più produttivo con Python.
Ma già che ci sono mi farebbe molto comodo sapere se esiste in giro qualcosa di buono per disegnare GUI. La cosa più simile a Visual Studio in questo senso sarebbe gradita, perché ho visto in giro che ci sono diversi programmi che consentono di creare alberi di oggetti facenti parte dell'interfaccia e di impostarne le proprietà, ma preferirei di gran lunga qualcosa di molto più visuale.
Thanks in advance! :)
Non ho mai sviluppato GUI con Python, ma attualmente le soluzioni più gettonate sono le PyQT (puoi sfruttare QTDesigner) e wxPython (che ha pure lui un suo tool di design visuale).

Altro, purtroppo, non so dirti.