Come configurare smartphone e PC. Portale informativo

Scelta di un ambiente di sviluppo (IDE).

"Stavo pensando, quando verrà il momento in cui dovrò dire nello stile di" sì, ho la tua età! .., ecc. "E ora ... Questo momento, molto probabilmente, si può vedere dal tuo recente post - 16 anni, e ti posizioni come un giovane appassionato di programmazione.O utilizzerai Go per un progetto web su larga scala, quindi non riesci a trovare un colore schema per l'editor Sublime Text 3 per iniziare a programmare, e uno un argomento per il lavoro diurno, e il secondo - per la notte. E tutto questo per, come hai scritto nello stesso post, in un prossimo futuro di nuovo - per iniziare a scrivere nella lingua golang Ora l'IDE stesso è in questione.

Alla tua età, o meglio, da 12 anni e da qualche parte fino a 16 anni, mi sono seduto a casa al ronzante computer ES-1840, dotato di un monitor in bianco e nero "Elettronica". Lì, credimi, non c'erano argomenti - né notte né giorno. Non parlo nemmeno del fatto che il concetto di "grafica" sia stato ridotto ad algoritmi per la visualizzazione di semplici forme geometriche, e praticamente, per così dire, "pixel per pixel". Non c'erano nemmeno IDE fantasiosi e Norton / Volkov Commander era considerato il picco dell'ergonomia dell'interfaccia utente. Windows e GUI? No, non ho sentito.. C'era MS-DOS in tutto il suo splendore.

Ma d'altra parte, mio ​​giovane amico, c'erano Borland TurboPascal, Borland C ++, Microsoft GW-BASIC e altri - il più semplice nel senso di una shell grafica (se il concetto di tale può essere trovato lì), ma gli ambienti di sviluppo necessari per MS-DOS, grazie ai quali molti sono diventati professionisti senza temi notturni. Oh sì, ho dimenticato di dire: allora non c'era Internet e la risposta a una domanda come "Come fare ..." non poteva essere trovata usando Google. E non c'erano libri. Forse il libro di V. E. Figurnov "IBM PC for the User" è quasi l'unica Bibbia della nostra generazione e scarse scansioni di documentazione fornite con le versioni ufficiali dei programmi di cui sopra ed erano considerate più preziose dell'oro.

Come ti ho già scritto, conosco persone (e molti lo sanno) che impareranno Java da anni, ma non sanno decidere quale sia meglio: Eclipse o NetBeans. Di conseguenza, rimasero dov'erano, non avendo imparato assolutamente nulla. E tutto perché si sono avvicinati al processo dalla parte sbagliata, credendo chiaramente che la radice del loro fraintendimento delle basi della programmazione sia associata all'uso di un IDE scomodo.

Vi auguro di progredire, e quindi vi chiedo: non ripetere l'esperienza dei perdenti e non calpestare questo libertino sfinito degli altri. Impara e inizia a programmare e lascia gli argomenti per dopo.

Vorrei sollevare ancora una volta questo argomento piuttosto controverso.

Da quando ho iniziato a programmare, questa domanda mi perseguita e numerosi argomenti sui forum e su habré non sono stati chiariti. Inoltre, mi sembra che alcuni argomenti per entrambe le parti non siano stati presentati. E quelli che vengono dati hanno le priorità sbagliate e il contesto mancato.

In questo articolo cercherò di correggere questa omissione e di punteggiare un po' di più la "e".

Invito tutti a partecipare alla ricerca dello strumento perfetto.

Sulla mia esperienza

Ho iniziato a programmare in DOS. su Turbo Pascal. E, per qualche ragione, abbiamo poi usato l'IDE solo per il debug, e questo è abbastanza raro. Per scrivere il codice, hanno preferito usare un certo edit.exe senza nome senza alcuna evidenziazione della sintassi insieme a Volkov Commander. E questo era abbastanza. Allo stesso modo, mi sono poi occupata di assembler e, in parte, di C++.

Continuando a studiare C ++, sono passato a Windows e, di conseguenza, Visual Studio - dove senza di esso. Ho trovato versioni, se non sbaglio, dalla 5 alla 7. Dopo un semplice editor, era qualcosa: la generazione del codice e il completamento automatico erano deliziosi. È vero, era quasi impossibile capire tutta questa bontà generata, ma sembrava poco importante.

Dopo un po' sono passato a Linux e ho iniziato a sviluppare web in php. Qui ho studiato vim in parallelo e ho usato ZendStudio per lo sviluppo. Ad un certo punto, ho iniziato a usare solo Vim per tutto - l'ho trasformato, secondo numerosi manuali, in una piccola ide. In esso, ho scritto il mio primo CMS per bicicletta in php.

Nota che prima di quella programmazione non era la mia attività principale. Sì, ho scritto varie piccole utility per lavoro, ho realizzato temi per WordPress, ma la mia attività principale era l'amministrazione.

Non appena ho iniziato a crescere professionalmente, le possibilità di vim non mi bastavano più. C'era prima eclipse, poi netbeans, ora phpstorm.

Nell'ultimo semestre ho cercato eroicamente di padroneggiare emacs, incl. come principale ambiente di lavoro.

Quindi ho qualcosa con cui confrontarmi e, spero, la mia opinione sarà ragionevolmente fondata e fondata.

IDE? IDE...

Ho pensato a lungo in quale forma portare il confronto dei vantaggi e degli svantaggi delle parti. L'elenco non è molto adatto per questo, dal momento che un semplice elenco non riflette del tutto l'essenza del problema. L'editor e l'IDE non sono opposti, ma strumenti il ​​cui ambito si sovrappone in alcune aree. I vantaggi dell'editor non sono sempre gli svantaggi dell'ambiente e viceversa. Per questo motivo si va avanti un ragionamento più o meno strutturato sul tema.

Inizierò, forse, con uno degli indiscutibili vantaggi dell'editor: le sue ricche possibilità di lavorare con il testo e la capacità di fare tutto senza togliere le mani dalla tastiera. La maggior parte degli ambienti non lo fa. Ma hai davvero bisogno di tali capacità quando scrivi il codice? Quando scrivi un articolo o una lettera, penso che sia conveniente scambiare 2 parole con una sequenza di tasti o spostare un paragrafo nella parte superiore della pagina. Ma nel testo del programma è, nella maggior parte dei casi, privo di significato e richiede un refactoring. E devi pagare per questo sia con le scorciatoie da tastiera emacs che spaccano le dita, sia con i comandi altrettanto rompicapo in vim. Ma tutto questo va ricordato! Ciò che viene risolto semplicemente con un movimento del mouse, come spostare le finestre o ridimensionarle, si trasforma in un'intera ricerca. Sì, anche evidenziare il testo è più facile con il mouse - più precisamente, più velocemente e non devi contare quante parole ci sono fino al posto giusto nel testo. No, anche il programmatore Maggio Queste funzioni possono essere utili, ma il fatto è che il suo tempo speso per modificare effettivamente il codice è trascurabile, quindi non ci sarà praticamente alcun beneficio nel tempo. Ma una complicazione significativa dello strumento è evidente.

Un programmatore trascorre l'80% del suo tempo a comprendere e navigare nel codice scritto. Inoltre, il movimento avviene attraverso il codice, e non attraverso il testo! E qui l'editore non può aiutarlo con assolutamente niente. L'elenco dei parametri del metodo nella descrizione comando non verrà visualizzato, non ti consentirà di andare alla definizione del metodo, la sintassi non controllerà. E gli IDE, anche i più semplici, lo gestiscono in modo semplice ed elegante. Di recente ho trascorso 10 minuti alla ricerca di una definizione di un metodo in un progetto utilizzando silversearcher di emacs. Si è scoperto che la classe è stata definita in un altro modulo, ecc. 10 minuti invece di un clic del mouse! Ovviamente non ho abbastanza esperienza in emacs, quindi lascia che siano 5 minuti, anche un minuto. Ma il rapporto è ancora impressionante.

E qui l'IDE mostra il suo, forse, l'unico, ma molto audace vantaggio: questa è la presenza di un parser del linguaggio di programmazione. L'ambiente "capisce" che sta modificando il codice. L'editore no. E questo è il completamento automatico, la navigazione e l'evidenziazione di errori sintattici e, a volte, semantici. Sembra eccessivo, una piacevole sciocchezza, autoindulgenza. Ma si trasforma in una necessità dopo che la dimensione del progetto supera un certo limite. E tenendo conto dei voluminosi quadri moderni, questo limite arriva quasi immediatamente.

Sì, su un progetto di dozzine di file e un paio di migliaia di righe, questo vantaggio non si manifesta in tutta la sua gloria. L'editor può anche eseguire lo stesso completamento automatico, ma non eliminerà mai le opzioni senza senso. E se la dimensione del progetto si avvicina a 100 mila righe ed è composta da migliaia di file, senza contare le librerie, allora diventa problematico scegliere il nome desiderato da un miscuglio di nomi di variabili, metodi di altre classi e solo parole dai commenti (avevo questo in vim, non lo so, forse l'hanno risolto). I prompt intelligenti eliminano la necessità di ricordare i nomi delle funzioni desiderate e i relativi parametri. Spesso questo semplicemente non è fisicamente possibile.

Parlando di progetti. Tutti gli IDE hanno questo concetto. Le impostazioni, le risorse sono legate ad esso, puoi cercare, ecc. Negli editor, questa è nella migliore delle ipotesi una directory aperta sul filesystem. A volte un po' di più.

Anche l'integrazione con il debugger negli editor lascia molto a desiderare. Il test delle unità, la registrazione, in una certa misura, salvano la situazione, ma a volte non puoi andare da nessuna parte senza un debugger.

Qualcuno potrebbe obiettare che negli editor moderni molte di queste funzioni sono già state implementate e non sono in alcun modo inferiori agli IDE più sofisticati. Non sono d'accordo. Primo, non ci sono implementazioni complete. Non funzionano come dovrebbero. In secondo luogo, l'installazione di tutto questo è già un compito piuttosto difficile. Anche la configurazione delle funzioni interne dell'editor è già non banale. Prova, ad esempio, ad attivare la numerazione delle righe nello stesso emacs! Inoltre, spesso la funzionalità richiesta è implementata da una dozzina di plugin, non è chiaro come interagiscono tra loro. E spesso hanno anche una dozzina di versioni e branch, non sempre compatibili, stranamente personalizzabili, ecc. Puoi, ovviamente, passare un mese, configurare e installare tutto (che è anche il sacco di appassionati), ma questo non farà altro che avvicinare l'editor al livello IDE. Ad esempio, torniamo agli stessi progetti: ho provato Project sotto vim e proiettile sotto emacs e alcuni altri plugin. Se Project soddisfa ancora più o meno i miei requisiti (anche se nell'ultima versione non sono riuscito a creare un progetto a causa di bug), il proiettile ha lasciato un'impressione estremamente negativa.

Eppure, gli editor hanno diverse aree di applicazione in cui, come minimo, competono con gli ambienti di sviluppo.

Innanzitutto, si comportano meglio su piccoli progetti. Non ha senso scaricare un raccoglitore IDE per lavorare con un progetto di 10-20 file. È più facile correggere 3-4 righe nell'editor.

In secondo luogo, in alcune aree specifiche, tutti i vantaggi dell'IDE sono livellati. Ad esempio, sviluppo di basso livello per Linux. Non l'ho fatto, ma a giudicare dalla struttura del codice e dalle preferenze degli sviluppatori (circa il 70% - emacs e cloni, 25% - vim, 5% - una specie di esotico come jed), non c'è niente IDE fare lì. Tutto il codice necessario con cui lavori viene raccolto, di regola, in uno o due file e non è necessario saltare l'intero progetto. E il completamento automatico non sarà di grande aiuto quando si sceglie tra una dozzina o due funzioni con quasi gli stessi nomi.

Terzo, gli editor possono lavorare con più del semplice codice. Tutta la loro potenza può essere utilizzata quando si lavora con file csv o xml. O qualcos'altro, che a volte è necessario, come un articolo o una lettera. E non c'è bisogno di imparare di nuovo, cercare un programma conveniente o memorizzare i tasti di scelta rapida: tutto è a portata di mano, tutto è uguale.

In quarto luogo, la capacità di lavorare con lingue per le quali non esiste un IDE sano. Diciamo, con lo stesso rubino, l'ambiente non mi ha aiutato molto. SublimeText era sufficiente. Sebbene non abbia lavorato con un grande progetto Ruby, forse l'IDE si sarebbe mostrato lì.

E in quinto luogo, la famigerata possibilità di espansione. Con buoni plugin, l'editor diventa molto user-friendly! Inoltre vale molto il piacere specifico di accordare continuamente il proprio strumento principale e la sensazione di completo controllo su di esso.

Totale

Non mi piacciono molto gli IDE, anche se potrebbe sembrare così dal testo precedente. Li considero piuttosto mostruosi, con un mucchio di funzioni non necessarie, lenti e impegnative in termini di risorse. E i migliori sono piuttosto costosi. Inoltre, trovo che l'utilizzo di un IDE sia rilassante e autosufficiente. Per gli editori, di conseguenza, è vero il contrario. In più la disponibilità e la possibilità di affinare in proprio. Almeno vim ed emacs. Alla fine mi piacciono e basta. Ad esempio, sto scrivendo questo articolo in Emacs.

Ma l'industria (e i capi) dettano le proprie esigenze. Se non utilizzi un IDE, le prestazioni diminuiranno notevolmente. Ma nessuno ti darà mezz'ora per trovare la virgola mancante in 10mila righe di codice. Tutto questo dovrebbe essere fatto automaticamente e corretto automaticamente. A volte mi piace anche scavare nel codice senza strumenti, ma al lavoro è una perdita di tempo.

Dopo tutti i miei tentativi ed errori, sono giunto a questa conclusione - editore potere utilizzare per lo sviluppo, ma con un IDE, dopo un certo limite non si confronta e utilizzare un editor per qualcosa per cui vieni pagato è un lusso inaccettabile. Sì, se usi le giuste pratiche di sviluppo, progetti/documenti il ​​codice correttamente, segui gli standard: puoi appianare i difetti intrinseci degli editor. Ma non viviamo in un mondo ideale, quindi usare un IDE è una necessità, indipendentemente dal nostro desiderio.

Il compilatore converte il codice sorgente (file * .c, * .cpp) in un programma funzionante. Se non hai un compilatore, devi installarlo prima di iniziare a programmare. Ci sono molti compilatori disponibili per il download su Internet. Se sei un utente di Mac OS X, Linux o altri sistemi * nix (come Unix o FreeBSD), probabilmente hai già installato compilatori come GCC o G ++.

Concetti basilari

compilatore- un programma che traduce il codice sorgente (alto livello) del programma nel codice finale (basso livello).
Compilazione- il processo di conversione di un testo sorgente di un programma di alto livello in un testo di programma equivalente, ma già in un linguaggio di basso livello.
Linker(Linker) - un programma che genera un modulo eseguibile collegando i file oggetto del progetto.
IDE(Ambiente di sviluppo integrato) - Una combinazione di un editor di testo e un compilatore. Lo sviluppo, la compilazione e il lancio dei tuoi programmi vengono eseguiti direttamente nell'IDE. Gli ambienti di sviluppo integrati (IDE) semplificano il processo di composizione dei programmi perché scrivi codice, compili ed esegui programmi in un unico programma: l'IDE. Un'altra caratteristica importante dell'IDE è che l'IDE ti aiuta a trovare e correggere rapidamente gli errori di compilazione.

Comprensione dei processi di compilazione

Processi di compilazione e collegamento - Una breve descrizione di ciò che accade esattamente quando si compila un programma.
Errori di compilazione, in alcune righe il compilatore trova errori che devono essere eliminati.
Avvisi del compilatore: cosa sono gli avvisi del compilatore e come e perché vengono risolti.
Qual è la differenza tra dichiarazioni e definizioni in C/C++. Impara la differenza tra una dichiarazione e una definizione in C/C++ e perché è così importante.

Selezione del compilatore (IDE)

Per sistema operativo Windows:
Codice :: Blocchi con Mingw - il nostro IDE gratuito consigliato! Code :: Blocks è disponibile anche su Linux. Puoi vedere come installare questo IDE nel nostro articolo Installazione del codice :: Blocks e MINGW.
Microsoft Visual C++: informazioni su Visual C++. Guida all'installazione di Microsoft Visual Studio 2012

Presentiamo alla vostra attenzione un adattamento di un articolo di Martin Heller, programmatore ed editore della risorsa JavaWorld. Probabilmente hai già sentito parlare dei primi tre IDE per lo sviluppo Java. Circa il 90% dei programmatori industriali utilizza Eclipse, NetBeans o IntelliJ IDEA e ogni IDE ha i suoi vantaggi e svantaggi. In questo articolo cercheremo di descriverli in modo che tu capisca quale è giusto per te. Anche se, ovviamente, è meglio provarli tutti e tre al lavoro e scoprire quale funziona meglio per te. Questo non può essere sostituito da nessuna recensione. Ho già lavorato con questi IDE, ma per questa ricerca ho installato IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE e NetBeans 8.1 Java EE su un laptop MacBook Pro. Ho testato l'IDE su diversi progetti Java open source.

Cosa aspettarsi da un IDE

Un moderno IDE "sviluppatore Java sano" dovrebbe supportare Java 8, Scala, Groovy e altri linguaggi di macchine virtuali Java che utilizza regolarmente. Il supporto per i principali server di applicazioni e i framework Web più popolari, tra cui Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails e Vaadin, non sarebbe superfluo. L'IDE deve essere compatibile con qualsiasi build di sistemi di controllo della versione come Ant, Maven o Gradle, insieme a Git, SVN, CVS, Mercurial o Bazaar. Inoltre, è importante che l'ambiente di sviluppo sia in grado di lavorare con i database e il livello client del tuo stack, abbia il supporto per JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate e Java Persistence API incorporati. Infine, è logico sperare che l'IDE ti permetta di modificare, costruire, eseguire il debug e testare i sistemi senza stress inutili. È l'ideale se l'ambiente di sviluppo supporta non solo il completamento del codice intelligente, ma anche il refactoring intelligente e le metriche del codice. In molti casi, sarà utile il supporto per i framework di test e gli stub. Se il tuo team utilizza un sistema di ticket e CI/CD, hai bisogno dell'IDE per poterti connettere. Inoltre, decidi se hai bisogno di distribuzione e debug in contenitori e cloud. Abbiamo elencato solo le principali aspettative (forse hai qualcosa da aggiungere), e ora diamo uno sguardo più da vicino ai nostri rivali.

IntelliJ IDEA


IntelliJ IDEA è disponibile in due varianti in termini di caratteristiche e prezzo: l'edizione Community gratuita e l'edizione Ultimate a pagamento con funzionalità estese. L'edizione della community è per lo sviluppo di JVM e Android. La versione gratuita supporta Java, Kotlin, Groovy e Scala; Android; Maven, Gradle e SBT; funziona con i sistemi di controllo di versione Git, SVN, Mercurial e CVS. L'edizione Ultimate è pensata per lo sviluppo web e aziendale. Questa versione dell'IDE non funziona solo con Git, SVN, Mercurial e CVS, ma anche con Perforce, ClearCase e TFS; in esso puoi scrivere in JavaScript e TypeScript; naturalmente, c'è il supporto per Java EE, Spring, GWT, Vaadin, Play, Grails e una serie di altri framework. E, naturalmente, non senza SQL e strumenti di database. L'idea, che è guidata dagli sviluppatori di questo IDE, quando si forma una politica dei prezzi, è che la sua versione commerciale (Ultimate) prenderà il suo posto sui computer dei professionisti, grazie alla quale aumenterà la loro produttività. Se un programmatore Java guadagna $ 50 mila (o anche di più) all'anno, il ritorno sull'investimento speso per l'IDE IntelliJ IDEA a pagamento ($ 500 per abbonamento annuale) avverrà molto rapidamente a causa anche di una leggera accelerazione del suo lavoro. Negli anni successivi il prezzo per il business scende, per startup, freelance è decisamente più basso, e per studenti, docenti, Java champion e sviluppatori open source è completamente gratuito. IntelliJ IDEA colpisce per la sua profonda comprensione del codice, l'ergonomia intelligente, le funzioni di sviluppo integrate e il supporto per molte lingue.
Figura 1. IntelliJ IDEA mostra il numero di avvisi e ipotesi basati sull'analisi statistica del codice Java. Puoi esplorare le ipotesi in modo più dettagliato facendo clic su di esse, come mostrato nell'immagine; in molti casi, riceverai un elenco con scelte e opzioni per le correzioni.

Comprensione profonda del codice

L'evidenziazione della sintassi e il semplice completamento del codice sono comuni in qualsiasi moderno editor Java. IDEA ha fatto un ulteriore passo avanti offrendo "completamento intelligente". Questo termine significa che l'ambiente di sviluppo mostra un elenco dei simboli più rilevanti applicabili in un determinato contesto. L'elenco dei simboli dipende non solo dal contesto in quanto tale, "generalmente accettato", ma dallo stile di programmazione dello sviluppatore, dalla frequenza con cui utilizza determinati operatori. "Fine di una catena" mostra in realtà un elenco di caratteri applicabili consentiti tramite metodi o getter nel contesto corrente. Inoltre, nel caso di membri o costanti statici, IDEA aggiunge automaticamente tutte le istruzioni di importazione richieste. In tutti i casi di completamento automatico, IDEA cerca di indovinare il tipo di un simbolo in fase di esecuzione, perfeziona la sua scelta e, se necessario, applica anche un cast. Il codice Java include spesso frammenti di altre lingue come stringhe. IDEA può inserire codice SQL, XPath, HTML, CSS o JavaScript in letterali stringa Java. In questo senso, l'IDE può eseguire il refactoring del codice in più lingue. Ad esempio, se rinomini una classe nella mappatura JPA, IDEA aggiornerà l'entità JPA corrispondente e la classe di espressione. Quando si esegue il refactoring di un pezzo di codice, lo sviluppatore ha un desiderio (abbastanza naturale): che vengano rifattorizzati anche tutti i duplicati di questo codice. IDEA Ultimate trova duplicati e frammenti simili e li refactoring pure. IntelliJ IDEA analizza il codice al caricamento e direttamente all'input. Indica problemi sospetti (come nella nostra immagine sopra) e facoltativamente offre un elenco di probabili soluzioni rapide ai problemi rilevati.

Ergonomia


IntelliJ IDEA è progettato in modo da non far uscire lo sviluppatore dallo stato di produttività dello streaming se ci è già dentro. La finestra Progetto, mostrata nella prima figura a sinistra, scompare con un semplice clic del mouse in modo che il programmatore possa concentrarsi sulla finestra dell'editor di codice. Per tutte le azioni necessarie durante la scrittura del codice, ci sono scorciatoie da tastiera per la loro scorciatoia, inclusa la definizione dei simboli nelle finestre pop-up. All'inizio, tutte queste combinazioni sono difficili da ricordare, ma gradualmente ti abitui e le usi solo. Tuttavia, anche se il programmatore non utilizza le combinazioni di tasti, come dimostra la pratica, si abitua a lavorare in IDEA in modo rapido e semplice. Vorrei sottolineare in particolare il debugger IDEA: i valori delle variabili vengono visualizzati direttamente nella finestra dell'editor, accanto al codice sorgente corrispondente. Quando lo stato della variabile cambia, cambia anche il colore di evidenziazione.

Strumenti integrati

IntelliJ IDEA fornisce un'interfaccia coerente per interagire con la maggior parte dei sistemi di controllo della versione, inclusi Git, SVN, Mercurial, CVS, Perforce e TFS. Puoi gestire le modifiche direttamente nell'IDE, il che è molto conveniente. Quando ho testato IDEA, desideravo che l'ultima modifica al codice sorgente venisse mostrata nella finestra dell'editor come annotazione (come accade, ad esempio, in Visual Studio). Come si è scoperto, IDEA ha un plugin speciale per questo. IDEA ha anche strumenti di compilazione, un runtime di test, strumenti di copertura e una finestra di terminale integrata. IntelliJ non dispone di un proprio profiler, ma è possibile collegare plug-in di terze parti. Ad esempio, YourKit di un ex sviluppatore capo JetBrains o VisualVM (questa è una versione riconfezionata di NetBeans Profiler). Il debug in Java può essere atroce quando accadono cose strane a classi di cui non si dispone del codice sorgente. IDEA viene fornito con un decompilatore per questi casi. La programmazione Java lato server implica frequenti interazioni con il database, quindi i programmatori di IDEA Ultimate apprezzeranno la comodità di SQL e degli strumenti di database. Ma se le loro capacità non sono sufficienti per qualcuno, puoi acquistare la versione IDEA Ultimate con l'IDE SQL integrato (DataGrip). È vero, sarà un po' più costoso di un normale abbonamento IDEA Ultimate. IntelliJ IDEA supporta tutti i principali server di applicazioni JVM e consente di distribuire ed eseguire il debug su questi server, eliminando le difficoltà familiari con cui i programmatori Java Enterprise hanno familiarità. IDEA supporta anche Docker (utilizzando un plug-in che aggiunge una finestra degli strumenti Docker speciale all'ambiente di sviluppo. A proposito, IDEA ha un mare di plug-in).

Vero poliglotta

IDEA ha esteso il supporto del codice per Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS e altri framework. Probabilmente avrai notato che non tutti sono specifici per Java. IDEA immediatamente "capisce" altri linguaggi: Groovy, Kotlin, Scala, JavaScript, TypeScript e SQL. Se non trovi la lingua che desideri in questo elenco, al momento ci sono 19 plug-in di lingua IntelliJ, in particolare per supportare R, Elm e D.


Per molti anni, Eclipse ha mantenuto con sicurezza la popolarità tra gli IDE Java. Questo ambiente è completamente gratuito, open source, scritto principalmente in Java. Tuttavia, la sua architettura modulare consente di utilizzare Eclipse anche con altri linguaggi. Il progetto Eclipse, avviato da IBM, è apparso nel 2001. Volevano sostituire la famiglia di ambienti di sviluppo IBM Visual Age basati su Smalltalk. Bene, l'obiettivo principale, come dice anche il nome, era quello di eclissare Microsoft Visual Studio (eclipse in inglese significa eclipse). La portabilità di Java aiuta Eclipse a essere multipiattaforma: questo IDE funziona su Linux, Mac OS X, Solaris e Windows. Nel bene e nel male, il Java Standard Widget Toolkit (SWT) è almeno in parte responsabile dell'aspetto grafico di Eclipse. Eclipse deve le sue prestazioni (o, come dicono alcuni sostenitori, la sua mancanza) alla JVM. Eclipse è piuttosto lento perché ha le sue radici in hardware piuttosto vecchio e versioni antiche della JVM. Anche oggi sembra lento, soprattutto con molti plugin collegati. Parte del sovraccarico di Eclipse può essere attribuito al suo compilatore incrementale integrato, che viene eseguito ogni volta che viene caricato un file o viene aggiornato il codice. Una cosa utile, è lei che cattura gli errori durante l'inserimento del testo. Indipendentemente dall'assembly, un progetto Eclipse mantiene un modello di contenuto che contiene informazioni sulla gerarchia dei tipi, i riferimenti e le dichiarazioni degli elementi Java. La versione corrente di Eclipse si chiama Neon (4.6.0). Ho installato l'IDE Eclipse Java EE per sviluppatori Web (questa è tutt'altro che l'unica opzione, puoi scegliere qualcos'altro). Contiene un Eclipse SDK minimo e i plug-in vengono aggiunti su richiesta. A proposito, lavorare con i plugin in questo IDE non è per i deboli di cuore. I plug-in di terze parti spesso sono in conflitto tra loro, sebbene le loro specifiche ufficiali non dicano nulla al riguardo.
Figura 2. Da sinistra a destra, ci sono quattro barre degli strumenti in Eclipse: Package Explorer, Java Editor, Java Class Structure e Task List. Il progetto caricato in Eclipse in questa figura è il framework di test JUnit. I pannelli possono essere facilmente scambiati.

Supporto plugin

L'ecosistema dei plugin Eclipse è sia un punto di forza di questo IDE che uno dei suoi problemi principali. È a causa dell'incompatibilità dei plugin che a volte interi assembly si bloccano e i programmatori devono ricominciare da capo. Attualmente ci sono oltre 1.700 plugin scritti per Eclipse, ufficiali e non, che possono o meno funzionare molto bene. I plugin Eclipse supportano oltre 100 linguaggi di programmazione e quasi 200 framework di sviluppo di applicazioni. È supportata anche la maggior parte dei server Java: se si designa una nuova connessione al server da Eclipse, si verrà reindirizzati all'elenco delle cartelle dei fornitori, dove si trovano circa 30 server di applicazioni. Ci saranno nove varianti solo di Apache Tomcat. I fornitori commerciali tendono a raggruppare le loro soluzioni insieme: ad esempio, esiste un solo Red Hat JBoss Middleware e al suo interno troverai gli strumenti server WildFly ed EAP, oltre a JBoss AS.

Modifica, refactoring e debug

La prima esperienza con Eclipse può essere fonte di confusione e persino confusione. Innanzitutto, è necessario configurare Eclipse e abituarsi alla sua architettura concettuale per aree di lavoro, viste e viste. Tutto questo è determinato dai plugin che hai installato. Per lo sviluppo Java lato server, utilizzerai probabilmente le viste di navigazione Java, Java EE e Java, la vista Esplora pacchetti, la vista debug, la vista sincronizzazione comandi degli strumenti Web, la vista sviluppo database e la vista debug database. .. In pratica, tutto ha un senso quando apri le finestre che vuoi. Eclipse offre quasi sempre diversi modi per svolgere un determinato compito. Ad esempio, puoi visualizzare il codice utilizzando la prospettiva di navigazione in Java. Cosa scegliere è una questione di gusti e di scelta. Java Custom Search consente di trovare dichiarazioni, riferimenti e occorrenze di pacchetti, tipi, metodi e campi Java. Puoi anche utilizzare l'accesso rapido per la ricerca e l'anteprima. I modelli di codice comuni possono essere generati dai modelli di codice. Il refactoring Java in Eclipse supporta 23 operazioni, che vanno dalle comuni operazioni di ridenominazione a conversioni meno ovvie (come nel libro di Martin Fowler). Eclipse supporta il debug locale e remoto, a condizione che si utilizzi una JVM che supporti il ​​debug remoto. Il debug è piuttosto standard: si definiscono i punti di interruzione e quindi si visualizzano le variabili nella scheda di debug. Naturalmente, puoi scorrere il codice e valutare le espressioni. Eclipse ha un vasto database di documentazione di tutte le età, valori e utilità. Purtroppo, trovare un'immagine nel manuale che non corrisponde alla versione corrente, ad esempio con un'interfaccia e un layout dei pulsanti obsoleti, è una cosa comune per questo IDE. Sfortunatamente, il problema degli aggiornamenti tardivi della documentazione è molto comune per tutti i progetti con codice sorgente.


NetBeans è iniziato come progetto universitario studentesco a Praga nel 1996. Nel 1997, l'IDE è diventato un prodotto commerciale e nel 1999 è stato acquistato da Sun Microsystems (i genitori di Java) e ha presentato una versione open source l'anno successivo. L'attuale versione 8.1 funziona su macchine che eseguono Windows, Mac OS X, Linux e Solaris. Bene, il pacchetto portatile può essere eseguito su qualsiasi sistema per il quale esiste una macchina Java. Per conto mio, ho scaricato il bundle Java EE, che è uno dei sei possibili pacchetti di download. Questo bundle supporta JavaScript e HTML, GlassFish e Tomcat, ma non supporta PHP, C/C++/Fortran, Groovy e Grails: puoi ottenerli nel pacchetto All Inclusive (o solo All). Tuttavia, se lo desidero, posso in qualsiasi momento scaricare il supporto per le lingue di cui sopra selezionando il plug-in appropriato (e qualsiasi altro). NetBeans ne ha meno di Eclipse, ma di solito non entrano in conflitto tra loro. Questo autunno, Oracle (ha ereditato NetBeans dopo l'acquisizione di Sun Microsystems) ha deciso di spostare questo ambiente di sviluppo sotto l'ala della Apache Software Foundation, insieme a tutti i diritti, codice sorgente, marchio, dominio netbeans.org e una serie di altre infrastrutture elementi. Pertanto, il futuro del progetto è ancora vago, sebbene in precedenza il sistema avesse alcuni privilegi affini. Quindi, è stato NetBeans a ricevere per la prima volta il supporto per Java 8 quasi immediatamente dopo il rilascio della piattaforma aggiornata ed è stato nominato "l'IDE ufficiale per Java 8". Tuttavia, un mese dopo il rilascio, questo vantaggio è stato perso: è stato allora che anche altri IDE hanno ricevuto il supporto per l'ottavo Java. Tuttavia, voglio sottolineare che il supporto Java 8 di NetBeans è davvero buono e questo IDE è ottimo per intrecciare i trucchi della versione 8 nel codice "legacy". I suoi editor, analizzatori di codice e convertitori aiuteranno il programmatore ad aggiornare il codice utilizzando i costrutti tipici di Java 8: espressioni lambda, operatori di funzione e riferimenti di metodo. I plugin JavaScript in NetBeans 8 fanno un ottimo lavoro nel supportare Node.js e gli ultimi strumenti JavaScript come Gulp e Mocha, oltre a supportare l'interprete JavaScript Nashorn.
Figura 3. Qui NetBeans sta lavorando con lo stesso progetto basato su Maven in cui IntelliJ IDEA è stato aperto nella Figura 1. Notare la funzionalità espansa nel menu contestuale e nei sottomenu di refactoring

Modifica e refactoring

NetBeans Editor supporta le lingue, rileva gli errori durante la digitazione e ti aiuta con i suggerimenti e il completamento del codice intelligente. Soggettivamente, l'IDE affronta questo compito più velocemente di Eclipse, ma un po' più lentamente di IntelliJ IDEA. Inoltre, NetBeans dispone di una gamma completa di strumenti di refactoring (come mostrato nella Figura 3) che consentono al programmatore di ristrutturare il codice senza romperlo, eseguire l'analisi dei sorgenti e offre una vasta gamma di suggerimenti per correzioni rapide o estensioni del codice. NetBeans include uno strumento di progettazione per la GUI Swing, precedentemente noto come "Project Matisse". Gli sviluppatori apprezzano lo strumento di refactoring automatico Inspect & Transform introdotto in NetBeans 7.1. Consente di analizzare il codice del progetto e apportare miglioramenti suggeriti. Personalmente, però, preferisco prima testare tutto il mio codice con i test unitari, e solo dopo eseguire strumenti in grado di apportare cambiamenti radicali. Ho ripetutamente sofferto di tutti i tipi di correzioni automatiche, che hanno portato a conseguenze irreparabili.

Creazione, debug e creazione di profili

NetBeans ha un ottimo supporto integrato per Maven e Ant, oltre a un plug-in per Gradle. Sono stato felicissimo quando ho scoperto che i progetti Maven sono percepiti come nativi dal sistema. Ciò significa che possono essere semplicemente aperti e non importati. NetBeans contiene anche un display grafico attraente (e utile) per le dipendenze Maven. Il NetBeans Java Debugger non è male, ma con alcuni avvertimenti. Un debugger visivo separato consente al programmatore di acquisire schermate della GUI ed esaminare le interfacce delle applicazioni realizzate con JavaFX e Swing. NetBeans Profiler rende più evidente come vengono utilizzate CPU e memoria e dispone di strumenti eccellenti per trovare perdite di memoria.

Confronto tra i tre giganti

Ho usato tutti e tre gli IDE, Eclipse, NetBeans e IntelliJ IDEA, nel corso degli anni, in ordine cronologico. Ogni volta che passavo a un altro IDE, sentivo che la mia produttività aumentava. Ma anche quando ero fermamente convinto che la mia scelta finale fosse IDEA, a volte dovevo tornare a uno dei due IDE rimanenti. Questo era il caso, ad esempio, in un momento in cui Eclipse era l'unico strumento che supportava lo sviluppo per Android (oggi c'è Android Studio, l'attuale IDE ufficiale per Android, è basato su IntelliJ IDEA). Naturalmente, tutti e tre gli IDE hanno i loro fan e avversari. Conosco molti sviluppatori Java che amano IntelliJ IDEA, così come fedeli fan di Visual Studio C++ e C#. Il più delle volte, queste persone sono contente del fatto che la loro produttività è aumentata e il costo dell'abbonamento annuale viene restituito in poche settimane di utilizzo della versione a pagamento di IDEA. Tuttavia, anche gli utenti di NetBeans ed Eclipse sono spesso legati ai loro strumenti e si chiedono perché altri programmatori pagherebbero soldi per IDEA. Per gli aspiranti sviluppatori Java, consiglierei di stare lontano da Eclipse. Nonostante sia ancora l'IDE più popolare per Java, è difficile per i principianti con esso: è facile perdersi nelle terre selvagge di Eclipse, sia durante l'implementazione del sistema che durante il lavoro quotidiano. Eclipse ha l'ecosistema di plug-in più esteso tra tutti gli IDE e anche il più probabile che si blocchi a causa dell'installazione di un set incompatibile di questi stessi plug-in. Sfortunatamente, durante l'utilizzo di Eclipse, ho dovuto rimuovere ripetutamente un altro assembly rotto di questo IDE e installare un bundle "pulito". NetBeans va bene per la maggior parte degli sviluppatori, ha un ottimo profiler e lo uso occasionalmente. Tuttavia, preferisco pagare per IntelliJ IDEA Ultimate. E il futuro di NetBeans non è ancora chiaro. Per i principianti Java che non hanno ancora gli strumenti per acquistare strumenti, consiglio di utilizzare NetBeans o IntelliJ IDEA Community Edition a seconda delle loro esigenze. Il primo va scelto per chi sta codificando server Java, ma solo se non si rientra nella categoria di coloro che possono ottenere IntelliJ IDEA Ultimate gratuitamente o con uno sconto enorme (studenti o quei programmatori che sviluppano un progetto open source) .

IDE Java leggeri

La maggior parte degli sviluppatori Java oggi utilizza IDEA, NetBeans o Eclipse, ma a volte sorge la necessità di IDE più leggeri o persino di editor di codice come Sublime Text, emacs o vim che supportano i plug-in Java. Di seguito ho elencato opzioni ragionevoli per chi cerca qualcosa di più semplice:
  • DrJava è un piccolo ambiente di sviluppo gratuito. È stato creato per gli studenti della Rice University ed è diventato piuttosto popolare: DrJava è già stato scaricato oltre 2 milioni di volte. DrJava è impegnato nello sviluppo basato sui test. L'ambiente contiene un editor di codice intelligente, un pannello di interazione per valutare il codice dell'applicazione, un debugger a livello di origine e strumenti di test delle unità.
  • BlueJ è un ambiente di sviluppo Java gratuito creato dall'Università del Kent per aspiranti programmatori. Questo ambiente è supportato da Oracle. BlueJ ha un'interfaccia molto più concisa e semplice rispetto agli IDE professionali come NetBeans o Eclipse e contiene persino un tutorial dedicato sulle basi dell'OOP.
  • JCreator è un altro piccolo IDE Java per Windows scritto in C++ (per motivi di prestazioni). La versione Pro a pagamento ha un debugger, supporto Ant e procedure guidate del codice, ma la versione gratuita (LE) no.
  • Eclipse Che è un IDE cloud basato su browser che supporta Java, C++, JavaScript, Python, PHP, Ruby e SQL.

Scelta dell'IDE Java a seconda del progetto

Ho cercato di descrivere gli importanti vantaggi di ciascuno dei tre IDE Java più significativi e ho menzionato di sfuggita i loro utili piccoli rivali. Per scegliere l'IDE giusto devi soppesare i pro ei contro e abbinarli alle tue esigenze e alle esigenze dei tuoi progetti. Se ti unisci a un team, sarà saggio utilizzare lo stesso IDE degli altri sviluppatori, sebbene ciò non sia necessario. Se il tuo team ospita il sorgente su GitHub, sarà naturalmente più conveniente se il tuo IDE supporta GitHub. Sì, puoi gestire i trasferimenti di codice senza un IDE utilizzando il client GitHub o la riga di comando git. Ma quanto saranno efficaci questi salti tra sistemi diversi? È anche importante che l'IDE mantenga un sistema di compilazione. Ad esempio, se è Maven, probabilmente non vorrai ricostruire il sistema in Ant per i test locali. Fortunatamente, tutti e tre i grandi IDE Java supportano Ant, Maven e Gradle, sia pronti all'uso che con un plug-in. Ma per gli IDE "piccoli", questo potrebbe non essere vero. È un desiderio naturale che l'ambiente di sviluppo supporti la versione di JRE utilizzata nel progetto. Se le versioni non corrispondono, è probabile che otterrai molti bug non necessari, che, ad esempio, appariranno per te, mentre altri membri del team no. È improbabile che una situazione del genere abbia un buon effetto sul tuo karma. Francamente, è più probabile che si verifichino incoerenze JRE con errori di configurazione che senza supporto IDE, a meno che l'IDE non debba ancora essere aggiornato a una nuova versione di Java. Fidati di me: se il tuo IDE supporta pienamente i framework e le tecnologie utilizzate nel progetto, aiuta davvero a velocizzare il tuo lavoro. Probabilmente puoi farlo comunque. Ma se l'IDE comprende come le dichiarazioni JPA si riferiscono all'entità JPA e alle classi di espressioni (come IntelliJ), trascorrerai molto meno tempo sul codice relativo a JPA rispetto al caso di un malinteso totale. Bene, se l'IDE supporta il framework di test e il code runner utilizzato per il progetto, puoi eseguire i test senza modificare l'ambiente di lavoro. Il che accelererà anche il processo di sviluppo. Infine, le cose diventano più veloci se l'IDE è compatibile con il tracciamento dei bug e i sistemi di ticket del progetto. Di nuovo, puoi usare un client standalone o web, ad esempio JIRA, ma è difficile non essere d'accordo sul fatto che il controllo dei biglietti sia molto più veloce senza cambiare la finestra e rimanere direttamente nell'IDE.

Gratuito o a pagamento?

Dopo averlo testato da IntelliJ IDEA Ultimate, ho avuto la sensazione del giusto ambiente di sviluppo. Una sorta di Cadillac del mondo IDE. Ancora una volta, anche se non è gratuito, penso che i guadagni in termini di prestazioni derivanti dall'utilizzo valgano l'abbonamento annuale. Per i principianti che non possono permettersi l'abbonamento di 1 anno a IntelliJ IDEA Ultimate, consiglio di utilizzare NetBeans su Eclipse. Naturalmente, l'ecosistema dei plugin Eclipse oggi è molto più sviluppato di qualsiasi altro IDE, ma è molto cresciuto e trasandato: uno sviluppatore alle prime armi rischia di impantanarsi nella giungla dell'IDE invece di immergersi nel lavoro. Ho anche toccato alternative "leggere", due delle quali sono state progettate specificamente per scopi didattici. Bene, se hai appena iniziato con le lingue e preferisci un ambiente minimalista, perché no?

Scrivere in Python usando IDLE o Python Shell va bene quando si tratta di cose semplici, ma man mano che i progetti crescono di dimensioni, la programmazione diventa un problema. L'utilizzo di un IDE o anche di un buon editor di codice può semplificarti la vita. Ma la domanda è: cosa scegliere?

In questo articolo, esamineremo gli strumenti di base per scrivere in Python. Non sceglieremo l'opzione migliore per te, ma considereremo i pro e i contro di ciascuno e ti aiuteremo a prendere una decisione informata.

Che cos'è l'IDE e l'editor di codice?

Un IDE (o ambiente di sviluppo integrato) è un programma progettato per lo sviluppo di software. Come suggerisce il nome, l'IDE riunisce diversi strumenti specifici per lo sviluppo. Questi strumenti di solito includono un editor dedicato all'utilizzo del codice (ad esempio, l'evidenziazione della sintassi e il completamento automatico); costruire, eseguire ed eseguire il debug di strumenti; e una qualche forma di sistema di controllo della versione.

La maggior parte degli IDE supporta molti linguaggi di programmazione e ha molte funzionalità, che possono essere grandi, richiedere molto tempo per il download e l'installazione e richiedono una conoscenza approfondita per essere utilizzate correttamente.

D'altra parte, ci sono editor di codice, che sono un editor di testo con funzionalità di evidenziazione della sintassi e formattazione del codice. La maggior parte dei buoni editor di codice può eseguire codice e utilizzare un debugger e i migliori possono persino interagire con i sistemi di controllo del codice sorgente. Rispetto a un IDE, un buon editor di codice è solitamente più leggero e veloce, ma spesso a costo di meno funzionalità.

Requisiti per un buon ambiente di sviluppo

Quindi di cosa abbiamo bisogno da un ambiente di sviluppo? L'insieme delle funzioni dei diversi ambienti può essere diverso, ma esiste un insieme di elementi di base che semplificano la programmazione:

  • Salvataggio dei file. Se l'IDE o l'editor non ti danno la possibilità di salvare il tuo lavoro e in seguito di aprire tutto nello stesso stato in cui si trovava al momento della chiusura, allora questo non è un tale IDE;
  • Esecuzione del codice dall'ambiente. Allo stesso modo, se è necessario uscire dall'ambiente per eseguire il codice, questo non è altro che un semplice editor di testo;
  • Supporto per il debug. La capacità di scorrere il codice è una caratteristica di base di tutti gli IDE e della maggior parte dei buoni editor di codice;
  • Evidenziazione della sintassi. La capacità di trovare rapidamente parole chiave, variabili e così via rende la lettura e la comprensione del codice un ordine di grandezza più semplice;
  • Formattazione automatica del codice. Qualsiasi editor o IDE che sia realmente riconoscerà i due punti dopo il tempo o per l'espressione e indenterà automaticamente la riga successiva.

Naturalmente, ci sono molte altre funzionalità che ti piacerebbe prendere in considerazione, ma quelle sopra sono le caratteristiche principali che dovrebbe avere un buon IDE.

Ora diamo un'occhiata ad alcuni strumenti generici che puoi usare per lo sviluppo di Python.

Editor e IDE Python

Eclipse + PyDev

Se sei vicino alla comunità open source, probabilmente hai sentito parlare di Eclipse. Disponibile per Linux, Windows e OS X, Eclipse è di fatto l'IDE open source per lo sviluppo Java. Esistono molte estensioni e componenti aggiuntivi che rendono Eclipse utile per tutti i tipi di attività.

Una di queste estensioni è PyDev, che fornisce una console Python interattiva e funzionalità per il debug e il completamento del codice. Installarlo è semplice: avvia Eclipse, scegli Aiuto → Eclipse Marketplace, quindi cerca PyDev. Fare clic su Installa e riavviare Eclipse se necessario.

Vantaggi Nota: se hai già installato Eclipse, l'installazione di PyDev sarà rapida e fluida. Un utente Eclipse esperto non dovrebbe avere problemi ad apprendere questa estensione.

Screpolatura: Se stai appena iniziando con Python o lo sviluppo in generale, Eclipse può essere travolgente. Ricordi quando abbiamo detto che gli IDE sono grandi e richiedono più esperienza per usarli completamente? Tutto questo si può dire di Eclipse.

Testo sublime

Un tipo: editor di codice
Sito Web: http://www.sublimetext.com

Sublime Text, scritto da un ingegnere di Google con il sogno di un editor di testo migliore, è un editor di codice molto popolare. Disponibile su tutte le piattaforme, Sublime Text ha il supporto integrato per la modifica del codice Python, nonché un ricco set di estensioni chiamate pacchetti che estendono la sintassi e le capacità di modifica.

Installare un pacchetto Python aggiuntivo può essere complicato: tutti i pacchetti Sublime Text sono scritti in Python, quindi l'installazione di pacchetti della community può spesso comportare l'esecuzione di uno script Python direttamente nell'editor.

Vantaggi: Sublime Text ha un ampio seguito. Come editor di codice, Sublime Text è veloce, leggero e ben supportato.

Screpolatura: Sublime Text non è gratuito, anche se puoi utilizzare il periodo di prova per tutto il tempo che desideri. L'installazione delle estensioni può trasformarsi in un'altra ricerca. Inoltre, non è disponibile alcun supporto per il debug e l'esecuzione del codice nell'editor.

Atomo

Un tipo: editor di codice
Sito Web: https://atom.io/

Disponibile su tutte le piattaforme, Atom è stato definito "l'editor di testo hackerabile del 21° secolo". Atom è scritto utilizzando Electron, un framework per la creazione di applicazioni desktop multipiattaforma utilizzando JavaScript, HTML e CSS e ha molte estensioni. Il supporto per Python può anche essere collegato utilizzando un'estensione che può essere installata direttamente in Atom.

Vantaggi: supporto su tutte le piattaforme grazie a Electron. Atom è leggero e veloce da scaricare e caricare.

Screpolatura Nota: il supporto per la compilazione e il debug non è integrato, ma viene aggiunto tramite estensioni. Poiché Atom è scritto con Electron, viene sempre eseguito come processo JavaScript e non come applicazione nativa.

GNU Emacs

Un tipo: editor di codice
Sito Web: https://www.gnu.org/software/emacs/

Molto prima della guerra tra iPhone e Android, prima della guerra tra Linux e Windows, anche prima della guerra tra PC e Mac, c'è stata una guerra di editori con GNU Emacs come uno dei partecipanti alle ostilità. Descritto come "un editor di testo estensibile, personalizzabile e autodocumentante", GNU Emacs esiste da quasi quanto UNIX e ha conquistato molti fan.

Disponibile gratuitamente su ogni piattaforma (in una forma o nell'altra), GNU Emacs utilizza il linguaggio Lisp per la personalizzazione. Naturalmente, ci sono anche script di personalizzazione per Python.

Vantaggi: conosci Emacs, usi Emacs, ami Emacs. Il lisp è la tua seconda lingua e sai che puoi farci qualsiasi cosa.

Screpolatura: personalizzazione significa scrivere (o copiare e incollare) codice Lisp in vari script. Se non ce ne sono, potresti aver bisogno di imparare il Lisp per capirlo.

Vi / Vim

Un tipo: editor di codice
Sito Web: https://www.vim.org/

Dall'altra parte delle barricate nella guerra dell'editore c'è VI/VIM. Disponibile per impostazione predefinita su quasi tutti i sistemi UNIX e Mac OS X, VI ha conquistato lo stesso numero di fan. VI e VIM sono editor modali che separano la visualizzazione di un file dalla modifica. VIM include tutto ciò che è in VI, oltre ad alcuni miglioramenti come la disponibilità di estensioni. Per tutti i tipi di attività Python, puoi usare VIMScript.

Vantaggi: conosci VI, stai usando VI, ami VI. I VIMScript non ti spaventano e sai come piegarli alla tua volontà.

Screpolatura: Come con Emacs, non sei molto a tuo agio nel cercare o creare script per aggiungere lo sviluppo Python e non hai idea di come dovrebbe funzionare un editor modale.

Studio visivo

Vantaggi Nota: come con Eclipse, se hai già installato Visual Studio per altre attività, l'installazione di PTVS funzionerà correttamente.

Screpolatura: Come con Eclipse, Visual Studio è un po' travolgente se hai solo bisogno di Python. Inoltre, se utilizzi Linux, sei fuori discussione: Visual Studio non è disponibile per questa piattaforma.

Codice di Visual Studio

Un tipo: editor di codice
Sito Web: https://code.visualstudio.com/
Strumenti Python: https://marketplace.visualstudio.com/items?itemName=ms-python.python

Visual Studio Code (da non confondere con Visual Studio) è un editor di codice completo disponibile su Windows, Linux e Mac OS X. VS Code è un editor open source estensibile che può essere personalizzato per qualsiasi attività. Come Atom, VS Code è basato su Electron, quindi ha gli stessi vantaggi e svantaggi.

Aggiungere il supporto per Python a VS Code è facile: cerca "Python" nel Marketplace, fai clic su Installa e riavvia l'editor se necessario. VS Code rileverà automaticamente l'interprete Python e le librerie installate.

Vantaggi Grazie a Electron, VS Code è disponibile su tutte le piattaforme con funzionalità sorprendentemente grandi. Inoltre, il codice sorgente può essere trovato nel pubblico dominio.

Screpolatura: poiché Electron è coinvolto, VS Code non è un'applicazione nativa. Inoltre, alcune persone potrebbero non essere autorizzate a utilizzare i prodotti Microsoft a causa della loro religione.

Editor e IDE progettati per Python

PyCharm

Uno dei migliori IDE Python completi è PyCharm. Esistono sia IDE gratuiti (Community) che IDE a pagamento (Professionali). PyCharm è disponibile su Windows, Mac OS X e Linux.

PyCharm supporta lo sviluppo Python immediatamente: apri un nuovo file e inizia a codificare. Puoi eseguire ed eseguire il debug del codice direttamente da PyCharm. Inoltre, l'IDE ha il supporto del progetto e il controllo del codice sorgente.

Vantaggi: Questo è un IDE Python con supporto per tutto e tutti e una buona comunità. In esso "pronto all'uso" puoi modificare, eseguire ed eseguire il debug del codice Python.

Screpolatura Nota: PyCharm potrebbe caricarsi lentamente e potrebbe essere necessario modificare le impostazioni predefinite per i progetti esistenti.

Spyder

Spyder è un IDE Python open source ottimizzato per la scienza dei dati. Spyder viene fornito con il gestore di pacchetti Anaconda, quindi è possibile che tu lo abbia già installato.

La cosa interessante di Spyder è che il suo pubblico di destinazione sono gli scienziati dei dati che utilizzano Python. Ad esempio, Spyder funziona bene con le librerie di data science come SciPy, NumPy e Matplotlib.

Spyder ha tutte le funzionalità che ti aspetteresti da un IDE standard, come un editor di codice con evidenziazione della sintassi, completamento del codice e persino un browser di documentazione integrato.

Una caratteristica distintiva di Spyder è il suo esploratore variabile. Consente di visualizzare i valori delle variabili sotto forma di tabella direttamente all'interno dell'IDE. Anche l'integrazione con IPython/Jupyter funziona bene.

Si può dire che Spyder sia più pratico di altri IDE. Può essere pensato come uno strumento per uno scopo specifico, piuttosto che un ambiente di sviluppo primario. La cosa fantastica è che è gratuito, open source e disponibile su Windows, macOS e Linux.

Vantaggi: sei uno scienziato dei dati che utilizza Anaconda.

Screpolatura: Gli sviluppatori Python più esperti potrebbero trovare Spyder non abbastanza funzionale per il loro lavoro quotidiano e opteranno per un IDE o un editor più funzionale.

Thonny

Thonny è chiamato un IDE per principianti. Scritto e gestito dall'Istituto di informatica dell'Università di Tartu in Estonia, Thonny è disponibile su tutte le principali piattaforme.

Per impostazione predefinita, Tonny è installato con la versione in bundle di Python, quindi non è necessario installare nient'altro. Gli utenti avanzati potrebbero dover modificare questa impostazione affinché l'IDE trovi e utilizzi le librerie già installate.

Vantaggi: sei un programmatore Python principiante e hai bisogno di un IDE con cui puoi andare direttamente in battaglia.

Screpolatura: gli utenti avanzati non disporranno di funzionalità sufficienti e sostituiranno l'interprete integrato. Inoltre, vista la novità dell'IDE, potrebbero sorgere problemi che attualmente non hanno soluzione.

Quindi quale scegliere?

  • I Python alle prime armi dovrebbero prendere qualcosa con il minor numero di opzioni di personalizzazione. Meno ostacoli ci sono, meglio è;
  • Se usi già qualche editor per altre attività, guarda verso gli editor di codice;
  • Bene, se hai già un IDE per un'altra lingua, prova ad aggiungere il supporto per Python.

Ti interessa anche il web? Quindi dai un'occhiata al nostro simile per lo sviluppo web.

Principali articoli correlati