it-swarm.it

Cosa giustifica l'uso di un IDE rispetto a un editor standard?

Mi ritrovo a utilizzare il mio editor di testo preferito (vim, nano, gedit, scegli il tuo veleno) molto più spesso di qualsiasi IDE in ritardo.

Dopo aver notato che le mie scorciatoie ide sono diventate polverose, ho iniziato a pensare a questo e mi chiedo: cosa giustifica l'uso di un IDE per te al contrario di un editor di testo?

Del resto, quale logica avresti per no usando un IDE e basandoti semplicemente su un editor?

39
Chris

L'I: integrazione. Un buon editor di testi può essere utile per scrivere codice, ma la maggior parte della programmazione non viene spesa per scrivere; ha impiegato test e debug e per questo vuoi che il tuo editor di testo si integri con il tuo compilatore e il tuo debugger. Questa è la più grande forza di un IDE.

70
Mason Wheeler

Queste sono le mie funzionalità preferite del mio IDE preferito, IntelliJ, che mi piace usare per Java, PHP, Javascript, HTML e persino ActionScript.

  • Controllo errori - Come il controllo ortografico in tempo reale per il codice. Assolutamente essenziale.
  • Navigazione codice - Ctrl+click su una funzione, variabile, digitare per passare alla definizione. (IntelliJ è molto bravo in questo in tutte le lingue sopra)
  • Completamento del codice - Uso Ctrl+space costantemente per compilare il nome della classe o del metodo di cui ho bisogno. Questo accelera la codifica di una ton e aiuta persino a rilevare i bug prima che si verifichino quando qualcosa di cui hai bisogno non è accessibile dal contesto in cui ti trovi. IntelliJ aiutarti ad espandere gli acronimi: digita NPE, premi Ctrl+space e mostrerà "NullPointerException", "NoPageError", ecc. Colpire Alt+enter per aggiungere automaticamente import è davvero bello.
  • Generazione di codice - Genera getter e setter, implementa metodi da un'interfaccia con un paio di clic.
  • Molto buono colorazione del codice - IntelliJ non solo fa la parola chiave standard, la stringa, la colorazione del nome della variabile, ma colora anche le variabili membro, le variabili locali, i parametri. In ActionScript una variabile che è in realtà un setter/getter verrà colorata come una funzione.
  • Refactoring - La ridenominazione senza errori è la più grande. IntelliJ è molto bravo a rinominare anche setter e getter o utilizzi di stringhe. Ovviamente c'è una ricerca basata su regex e sostituisci quando ne hai bisogno, e un'opzione "preserva caso" per permetterti di sostituire "myNumber", "MyNumber" e "MYNUMBER" con "myString", "MyString" e "MYSTRING" in una sola operazione
  • Integrazione controllo versione - Utilizziamo SVN e il mio preferito IDE VC sono in grado di creare, eliminare, spostare classi senza pensando a SVN, cronologia di navigazione facile, un ottimo strumento diff, buona capacità di fusione e annotazione dei file (che mostrano la cronologia riga per riga) nell'editor.
  • Importazione delle dipendenze - Quando si fa affidamento su una libreria di terze parti per cui si dispone della fonte, è possibile accedere facilmente al codice per riferimento, debug, ecc.
  • Digitazione intelligente - incollare il codice e farlo incollare automaticamente nella posizione corretta della scheda, completamento automatico delle parentesi, parentesi, virgolette, ecc.
  • Un ottimo Test runner per JUnit, FlexUnit, PHPUnit
  • Debugging - ovviamente. Esegue il debug di JBoss, Jetty e persino Flash in modo impeccabile. Ctrl + clic sulle tracce dello stack per andare direttamente al codice.

Cose come la colorazione del codice che potresti dare per scontato, ma una buona colorazione del codice è come la visione periferica: ti consente di concentrarti sulle cose importanti senza prendere quel secondo in più per identificare la Parola completa.

IntelliJ utilizza anche Ctrl+space per suggerire nomi di variabili. In Java, se dichiari una nuova variabile EventMessageItem e premi Ctrl+space, suggerirà "eventMessageItem", "eventMessage", "item", ecc.

Tutte queste cose mi danno modo più tempo per pensare al mio codice e alla mia architettura e pensare meno alla correzione della formattazione, alla gestione del file system, alla correzione della copia -e incollare errori, passare da un'applicazione all'altra, inseguire la documentazione, ecc. ecc. Non so come si possa dire di no a quel tipo di aumento della produttività.

49
Nicole

Gli IDE comprendono il tuo codice molto meglio di un editor. Ciò consente ad esempio il completamento e il refactoring dell'identificatore, che per linguaggi dettagliati come Java è un invio di Dio,

21
user1249
[To the IDE] You had me at intellisense/autocomplete
18
JohnFx

Produttività. C'è qualche altra giustificazione che abbia senso? Per me, un ben progettato IDE che centralizza molte delle funzioni che eseguo durante la programmazione: creazione e modifica di codice, utilizzo del controllo del codice sorgente, debug, interazione con gli strumenti di gestione del progetto, comunicazione con altri programmatori, creando documentazione, eseguendo test automatizzati - riduce drasticamente l'attrito del processo che riduce la mia produttività.

Inoltre, anche se mi sento come se avessi bisogno di sapere come utilizzare ogni strumento singolarmente, non voglio farlo. Almeno per me, un clic con il tasto destro del mouse è infinitamente preferibile all'apertura di una CLI e alla digitazione.

Ne ho usati molti, ma gli IDE che restituisco ripetutamente sono Visual Studio, Wing IDE e NetBeans. Tutti aggiungono un valore significativo al tempo che dedico alla programmazione.

14
Adam Crossland

Storicamente, gli IDE offrivano una convenienza senza pari su un computer a singolo compito. Il mio primo compilatore C ha richiesto i seguenti passaggi nel ciclo di esecuzione della modifica-compilazione:

  • Avvia l'editor
  • Modifica programma
  • Salva programma, esci dall'editor
  • Programma di compilazione
  • Montare il programma compilato
  • Collegamento compilato e programma assemblato
  • Eseguire il programma

sul mio sistema CP/M. (Avrei potuto automatizzare gran parte di questo come programma batch se le mie unità disco fossero state più grandi.)

Quando ho ottenuto Turbo Pascal, sono stato felice di poter tenere l'editor disponibile durante la compilazione e il debug.

Questo, credo, è ciò che ha reso gli IDE popolari in primo luogo.

9
David Thornley

Se si codifica in LISP, Emacs ha funzionalità simili a Intellisense come la ricerca dei parametri del metodo e il completamento automatico, quindi si potrebbe dire che è l'IDE originale. È anche bello poter utilizzare un programma per più attività (modifica in generale, prompt dei comandi Shell/comandi, lettura di notizie).

In generale, l'editor vs. IDE sembra dipendere dal linguaggio di programmazione. Da quello che ho visto, Ruby e Haskell, per esempio, sembrano preferire il loro editor di testo preferito.

7
Larry Coleman
  • Compilazione con un clic
  • Debug
  • Modelli di codice
  • Completamento del codice
  • Integrazione con strumenti di controllo versione e refactoring
  • Test unitario più semplice

per dirne alcuni

4
ysolik

Penso che la risposta dipenderà molto dal linguaggio di programmazione che stai usando e da quanto sei bravo a farlo. Per linguaggi come Java an IDE è necessario se stai facendo qualcosa di serio. Ovunque come quando si tratta di linguaggi di scripting come JS o Ruby IDES non sono di grande utilità.

Uso notepad ++ e un set di script Shell (per backup, commit git) per il mio sviluppo e funziona perfettamente.

3
Eastern Monk

Alcuni argomenti a favore degli "editori":

  1. Ci sono casi in cui un IDE non è stato ancora sviluppato o non lo sarà mai.
  2. Con un editor puoi apportare modifiche "più velocemente" e in modo più chirurgico.
  3. Ha bisogno di molte meno risorse (quindi è più facile usarne molte aperte contemporaneamente)
  4. Perché è l'unico modo per risolvere alcuni problemi come quelli descritti qui .
  5. (personale) A volte quando devo digitare tutto, sto lavorando di più usando il mio coscienzioso e sono più impegnato in ciò che sto scrivendo. Molte volte ho trovato ad esempio un errore di ortografia in un metodo (formaqString), che sarebbe passato inosservato usando un IDE.
  6. Semplifica il lavoro solo con l'uso della tastiera (velocità/flusso)
  7. Mentalità nell'uso di macro o altri risparmiatori di tempo.

Uso un IDE ogni giorno per lavorare, altrimenti è difficile scrivere Java/C #.

(2) rispetto a (3): praticamente solo un'opzione per modificare i file in remoto (su ssh/desktop remoto) e apportare modifiche minime alla configurazione o ai file di un server distante.

3

Uso IDE per test/debug/integrazione e KEDIT per l'editing perché IDE è gravemente carente nelle capacità di editing.
Poiché .NET IDE riconosce le modifiche esterne, tutto ciò che devo fare è salvare nell'editor e accettare il Prompt per ricaricare la fonte. Questo mi permette di ottimizzare il mio editing e funzionalità di debug allo stesso tempo.
Per altri IDE utilizzo KEDIT come processore modello e programma di ricerca sorgente e copia/incolla quella fonte nell'IDE.

2
Dave

A seconda ovviamente della tua lingua, alcuni IDE includono anche designer di moduli visivi/finestre.

Sebbene debba essere sottolineato, la linea tra l'editor di testo di un programmatore e un IDE non è ben definita. Molti editor possono essere estesi per gestire la compilazione, il completamento del codice, il debug, ecc.

2
GrandmasterB

Per IDE:
- le funzionalità avanzate sono cablate e pronte all'uso.
- Alcune funzionalità sono così specifiche per il tuo framework che gli editor non hanno equivalenti.

Per l'editor:
- Tenendo le mani sulla tastiera.
- l'ambiente di sviluppo è lo stesso su tutti i sistemi
- scripting migliore per il tuo editor
- Alcune funzionalità di un IDE sono disponibili con strumenti o script esterni. (intellisense, vai a definizione, trova riferimenti)

1
mike30

Breve curva di apprendimento. Questo è tutto.

0
nate c

L'unico che consiglierei davvero è il debugger. An IDE è in realtà un editor con un sacco di altre gubbin aggiunte, ma se puoi compilare digitando make (o freccia su + invio) in un prompt dei comandi, allora non - bisogno un IDE. Se puoi impegnarti in SCM facendo clic con il tasto destro su Explorer e scegliendo la voce di menu corretta, non hai bisogno di un IDE.

Ora so che alcune persone hanno bisogno di cose come il supporto del refactoring (scrivi il tuo codice la prima volta :)) o alcuni designer di GUI integrati (ma anche allora, usando Visual Studio, utilizzo Expression per fare il mio lavoro con la GUI, non il maledetto supporto XAML in VS ) e molte persone necessità intellisense e completamento automatico (specialmente per linguaggi verbosi come Java e C # che hanno nomi possibilmente lunghi).

Ma per me, il debugger della GUI è l'unica vera ragione per usare l'IDE. Uso ancora un debugger da "riga di comando" (beh, windbg) ma per il giorno per giorno, è quello incorporato in VS.

0
gbjbaanb

Ci sono vantaggi per un IDE. Non tutte le lingue hanno un IDE completo per dare davvero la mancia alle scale o potrebbe essere proibitivo crearne una per una lingua detta. Ragioni per cui dovrebbe desiderare un IDE? Bene, cominciamo con questi:

  • Il linguaggio ha una ricca API standard che in IDE popup potrebbe aiutare a velocizzare lo sviluppo.
  • C'è un sacco di codice targa caldaia. (Prova/cattura forzata, getter/setter, ecc.)
  • Il completamento automatico può soddisfare con precisione le tue esigenze di codifica
  • La tua suite di test delle unità linguistiche è integrata in detto IDE.
  • IDE è a conoscenza e supporta numerose librerie linguistiche comuni relative alle migliori pratiche.
  • Plugin disponibili per rendere il lavoro mo'betta
  • Non è così pesante che rallenta il tuo sistema
  • Debugger altamente integrato? Questo aiuta.

Il problema non è che tutte le lingue ottengono davvero un grande aumento di produttività da un IDE completo. Uso gli IDE per alcuni lavori (Java, C #) ma non per altri (Python, Ruby, Coldfusion). Tutto è davvero un atto di bilanciamento. Alcune lingue non richiedono una suite così completa.

Ci sono IDE per ciascuno? Sicuro. Ne hai sempre bisogno? Non proprio.

0
Rig