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


39

Mi ritrovo a usare il mio editor di testo preferito (vim, nano, gedit, scegli il tuo veleno) molto più spesso di qualsiasi IDE negli ultimi tempi.

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

Del resto, quale logica avresti per non usare un IDE e fare semplicemente affidamento su un editor?



che cosa realmente fa nei tuoi editori?

Scrivi codice, sviluppa applicazioni, ... praticamente tutto di recente.
Chris,

15
Personalmente, trovo che l'IDE sia molto più utile quando leggo il codice di altre persone (specialmente progetti di grandi dimensioni) rispetto a quando scrivo il mio codice. Gli IDE ti consentono di navigare attraverso la fonte più facilmente, facilitando la comprensione rapida del codice sorgente di altre persone.
Charles Salvia,

3
Vorrei invertire la domanda. Cosa giustifica NON usare un IDE.
Nailer,

Risposte:


70

L'I: integrazione . Un buon editor di testo può essere utile per scrivere codice, ma la maggior parte della programmazione non è 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.


Se solo potessi trovarne uno che non mi ostacolava :)
Tim Post

5
Sono appena arrivato ad accettare l'editing secondario come prezzo che pago per la comodità dell'integrazione.
TMN,

Non sta testando la programmazione se lo fai bene? Se passi la maggior parte del tuo tempo a eseguire il debug e il test delle scimmie, penso di vedere dov'è il tuo problema.
Tom Hawtin: affronta il

8
@Tom, Testing sta programmando quando puoi automatizzare i test che fai sempre. Altrimenti, verificare con qualsiasi metodo che produca la massima qualità.
Andres Jaan Tack,

49

Queste sono le mie funzioni 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+clicksu una funzione, variabile, digitare per passare alla definizione. (IntelliJ è molto bravo in questo in tutte le lingue sopra)
  • Completamento del codice : utilizzo Ctrl+spacecostantemente per compilare il nome della classe o del metodo di cui ho bisogno. Questo accelera la codifica di una tonnellata e aiuta persino a catturare i bug prima che accadano quando qualcosa di cui non hai bisogno non è accessibile dal contesto in cui ti trovi. IntelliJ ti aiuterà anche ad espandere gli acronimi: digita NPE, premi Ctrl+spacee mostrerà "NullPointerException", "NoPageError", ecc. Anche colpire Alt+enterper aggiungere automaticamente importè davvero bello.
  • Generazione di codice : genera getter e setter, implementa metodi da un'interfaccia con un paio di clic.
  • Colorazione del codice molto buona - IntelliJ non solo esegue 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 "conserva il caso" per permetterti di sostituire "myNumber", "MyNumber" e "MYNUMBER" con "myString", "MyString" e "MYSTRING" in una sola operazione
  • Integrazione del controllo versione - Utilizziamo SVN e le mie funzionalità IDE VC preferite sono in grado di creare, eliminare, spostare classi senza pensare a SVN, cronologia di navigazione facile, un ottimo strumento diff, buona capacità di fusione e annotazione di file (mostrando riga- cronologia per riga) nell'editor.
  • Importazione delle dipendenze : quando si fa affidamento su una libreria di terze parti per cui si dispone dell'origine, è possibile accedere facilmente al codice per riferimento, debug, ecc.
  • Digitazione intelligente : incollare il codice e incollarlo automaticamente nella posizione corretta della scheda, completamento automatico di parentesi graffe, parentesi, virgolette, ecc.
  • Un ottimo test runner per JUnit, FlexUnit, PHPUnit
  • Debugging - ovviamente. Esegue il debug di JBoss, Jetty, 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 usa anche Ctrl+spaceper suggerire nomi di variabili. In Java, se si dichiara una nuova variabile EventMessageItem e si preme Ctrl+space, verrà suggerito "eventMessageItem", "eventMessage", "item", ecc.

Tutte queste cose mi danno modo più tempo per pensare al mio codice e l'architettura, e pensare di meno circa la riparazione formattazione, che fare con il file system, la fissazione di copia-e-incolla errori, il passaggio tra le applicazioni, inseguire la documentazione, ecc ecc Non so come si possa dire di no a quel tipo di aumento della produttività.


4
+ 1 per citare IntelliJ Idea - Lo adoro
artjom

3
+1, la maggior parte dei punti qui si applica a qualsiasi IDE decente, o dovrebbe :)
Matthieu

21

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,


1
Si noti che tutta questa comprensione richiede memoria per l'archiviazione. Quindi gli IDE tendono ad essere piuttosto affamati di risorse rispetto a un editor "fit-on-a-floppy".

19
Sì, ma la mia macchina di sviluppo i7 da 8 GB deve fare qualcosa mentre sto scrivendo. : D
Dominique McDonnell,

Gli IDE non devono essere affamati di risorse. Ma Smalltalk è probabilmente un caso limite: la sintassi della riflessione è semplice, molto semplice e così via.
Frank Shearar,

@Frank, dipende da cosa vuoi che facciano e da quanto sia facile.

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

1
+1 Anche se è sempre sconcertante rendersi conto che non scrivo mai più un nome completo di classe, metodo o proprietà e sapere esattamente quante sequenze di tasti sono necessarie per individuare l'opzione di completamento automatico corretta ... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
grossvogel

5
@gross, ma è giusto ! La digitazione manuale frequente implica errori di battitura.

@ TThorbjørnRavnAndersen A meno che tu non abbia due cose con nomi simili, e per sbaglio non digiti abbastanza caratteri per ottenere quello giusto. Ho inserito accidentalmente una proprietà "NumberOfPoints" in alcune aree che necessitavano di "NumberOfSegments" a causa della mancanza di sufficiente attenzione al mio completamento automatico: p. Detto questo, preferirei il completamento automatico piuttosto che no.
KChaloux,

14

Produttività. C'è qualche altra giustificazione che abbia senso? Per me, un IDE ben progettato che centralizza molte delle funzioni che eseguo durante la programmazione: creazione e modifica di codice, utilizzo del controllo del codice sorgente, debug, interazione con strumenti di gestione del progetto, comunicazione con altri programmatori, creazione di documentazione, esecuzione di 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. 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, IDE Wing e NetBeans. Tutti aggiungono un valore significativo al tempo che dedico alla programmazione.


9

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.


Ma tutte queste cose possono essere fatte da molti editor; Emacs, per esempio.
JasonFruit

@JasonFruit: Certamente. Sto spiegando cosa mi ha attratto per primo. A quei tempi, stavo eseguendo CP / M su un TRS-80 Mod 4, e credo che Emacs fosse ancora basato su TECO allora.
David Thornley,

Va bene, punto. :-) (Emoticon per compilare il numero richiesto di personaggi.)
JasonFruit

2
@JasonFruit, le macchine CP / M-80 avevano un massimo di 64 Kb di RAM. Considera quanto Emacs puoi inserirvi.

7

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 di shell / comandi, lettura di notizie).

In generale, la domanda tra editor e IDE sembra dipendere dal linguaggio di programmazione. Da quello che ho visto, i programmatori di Ruby e Haskell, per esempio, sembrano preferire il loro editor di testo preferito.


Emacs può davvero farlo in quasi tutte le lingue. La modalità PHP è abbastanza buona, sono le modalità per Javascript, Haskell, Erlang e SQL. (Anche gli altri possono essere buoni, ma non li ho usati).
Zaccaria K,

Una volta aggiunte tutte quelle campane e fischietti a emacs (o qualsiasi editor per quella materia) quello che hai è un IDE. Integrated-Sviluppo-Ambiente. Lo paragono all'acquisto di una torta da una panetteria (IDE) rispetto alla sua creazione da zero (editor ingannato)
sal

+1, Per Coq, Haskell e Lisp Emacs è l'unica cosa con un supporto decente
Daniel Gratzer

4
  • 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


3

Penso che la risposta dipenderà molto dal linguaggio di programmazione che stai usando e da quanto sei bravo a farlo. Per lingue come JAVA è necessario un IDE 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 di shell (per backup, commit git) per il mio sviluppo e funziona perfettamente.


Uso GVIM per Javascript e scopro che è MOLTO più veloce di un IDE. Inoltre utilizza molta meno memoria. Aggiungo circa 3-4 script di shell per cose come jsLint, formattazione e controllo del selenio e trovo che non ho quasi mai bisogno di togliermi la mano dalla tastiera. (E a dire il vero probabilmente potrei trasformare tutti quegli script in plugin VIM se mi importasse)
Zachary K,

3

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): sostanzialmente 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.


2

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

Uso l'IDE per test / debugging / integrazione e KEDIT per l'editing perché l'IDE è gravemente carente nelle capacità di editing.
Poiché l'IDE .NET riconosce le modifiche esterne, tutto ciò che devo fare è salvare nell'editor e accettare la richiesta di ricaricare l'origine. Ciò mi consente di ottimizzare le mie capacità di modifica e debug allo stesso tempo.
Per altri IDE utilizzo KEDIT come processore modello e programma di ricerca di sorgenti e copia / incolla quella fonte nell'IDE.


Cosa fai in kedit che l'IDE non può fare? Sono sinceramente curioso, non ho mai usato altro che un IDE per la maggior parte dei miei codici seri ...
Dean Harding

KEDIT, come altri editor intelligenti, ha funzionalità di scripting che mi consentono di fare cose che l'IDE non può fare. Ad esempio, utilizzo KEDIT per eseguire più operazioni di copia e incolla di buffer (fino a 100 per sessione di kedit) e di colonne a cui l'IDE non riesce nemmeno ad avvicinarsi.
Dave,

1

Per IDE: -
Le funzioni 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: -
Tenere le mani sulla tastiera.
--il tuo ambiente di sviluppo è lo stesso su tutti i sistemi
- script migliori per il tuo editor -
alcune funzionalità di un IDE sono disponibili con strumenti o script esterni. (intellisense, vai a definizione, trova riferimenti)


0

Breve curva di apprendimento. Questo è tutto.


4
Immagino tu non abbia massimizzato nessun tipo di IDE
Harald Scheirich,

4
Con Vim come mio copilota, non ho bisogno di farlo.
c nate

Breve curva di apprendimento per ....? scusa ma questo non era ovvio per me.
Chris,

0

L'unico che consiglierei davvero è il debugger. Un 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 hai bisogno di un IDE. Se puoi impegnarti in SCM facendo clic con il pulsante destro del mouse su Explorer e selezionando 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 hanno bisogno di intellisense e completamento automatico (specialmente per linguaggi prolissi 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 quotidiano, è quello integrato in VS.


0

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

  • La lingua ha una ricca API standard che nei popup IDE potrebbe aiutare a velocizzare lo sviluppo.
  • C'è molto codice targa caldaia. (Try / catch forzato, 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.