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

38

Mi trovo a usare il mio editor di testo di scelta (vim, nano, gedit, scegli il tuo veleno) molto più spesso di qualsiasi IDE ultimamente.

Dopo aver notato che le mie scorciatoie ideologiche si sono impolverate ho iniziato a pensarci e mi chiedo: cosa giustifica l'uso di un IDE per te contrario a un editor di testo ?

Per quale motivo avresti per non utilizzare un IDE e basarti semplicemente su un editor?

    
posta Chris 31.08.2012 - 20:23
fonte

16 risposte

68

I: integrazione . Un buon editor di testo può essere utile per scrivere codice, ma la maggior parte della tua programmazione non è dedicata alla scrittura; viene speso test e debugging, e per questo si desidera integrare l'editor di testo con il compilatore e il debugger. Questa è la più grande forza di un IDE.

    
risposta data 23.11.2010 - 20:42
fonte
47

Queste sono le mie caratteristiche preferite del mio IDE preferito, IntelliJ, che mi piace usare per Java, PHP, Javascript, HTML, anche ActionScript.

  • Controllo errori : come il controllo ortografico dal vivo per il codice. Assolutamente essenziale.
  • Navigazione codice - Ctrl+click su una funzione, variabile, digita per andare alla definizione. (IntelliJ è molto bravo in questo in tutte le lingue sopra)
  • Completamento del codice : utilizzo costantemente Ctrl+space per aiutare a compilare il nome della classe o del metodo di cui ho bisogno. Questo velocizza la codifica di ton e aiuta persino a catturare i bug prima che accadano quando qualcosa di cui hai bisogno non è accessibile dal contesto in cui ti trovi. IntelliJ ti aiuterà anche ad espandere gli acronimi - digita NPE, hit Ctrl+space , e mostrerà "NullPointerException", "NoPageError", ecc. Colpire Alt+enter per aggiungere automaticamente import è davvero bello.
  • Generazione codice : genera getter e setter, implementa metodi da un'interfaccia con un paio di clic.
  • Molto buono colorazione del codice - IntelliJ non solo la parola chiave standard, la stringa, la colorazione del nome della variabile, ma anche le variabili dei membri dei colori, le variabili locali, i parametri. In ActionScript una variabile che in realtà è un setter / getter sarà colorata come una funzione.
  • Refactoring - La ridenominazione senza errori è la più grande. IntelliJ è molto bravo a rinominare anche setter e getter o stringhe. Naturalmente c'è una ricerca e sostituzione basata su espressioni regolari quando ne hai bisogno, e un'opzione "salva caso" che ti consente di sostituire "myNumber", "MyNumber" e "MYNUMBER" con "myString", "MyString" e "MYSTRING" in una sola operazione
  • Integrazione del controllo della versione - Usiamo SVN e le mie caratteristiche IDE VC preferite sono in grado di creare, eliminare, spostare classi senza pensare a SVN, facilmente la cronologia di navigazione, uno strumento diff molto buono, una buona capacità di fusione, e annotando i file (mostrando la cronologia linea per riga) nell'editor.
  • Importazione delle dipendenze - Quando ti basi su una libreria di terze parti di cui hai la fonte, puoi navigare facilmente sul codice per riferimento, debugging, ecc.
  • Smart typing - incollando il codice e facendolo incollare automaticamente nella posizione della tabulazione corretta, completamento automatico di parentesi, parentesi, citazioni, ecc.
  • Un ottimo Test runner per JUnit, FlexUnit, PHPUnit
  • Debug - ovviamente. Debugs JBoss, Jetty, anche Flash in modo impeccabile. Ctrl + clic su stack trace per andare direttamente al codice.

Cose come la colorazione del codice che potresti dare per scontata, ma una buona colorazione del codice è come una visione periferica - ti permette di concentrarti su cose importanti senza prendere quella porzione di secondo in più per identificare la parola completa.

IntelliJ utilizza anche Ctrl+space per 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 all'architettura, e meno alla correzione della formattazione, alla gestione del file system, alla correzione degli errori di copia e incolla, al passaggio tra applicazioni, inseguimento della documentazione, ecc. ecc. Non so come si possa dire di no a quel tipo di aumento della produttività.

    
risposta data 24.11.2010 - 07:04
fonte
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 prolissi come Java è un God-send,

    
risposta data 23.11.2010 - 20:57
fonte
18
[To the IDE] You had me at intellisense/autocomplete
    
risposta data 23.11.2010 - 23:43
fonte
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 del codice, utilizzo del controllo del codice sorgente, debugging, interazione con gli strumenti di gestione del progetto, comunicazione con altri programmatori, creazione di documentazione, esecuzione di test automatici - riduce drasticamente l'attrito del processo che riduce la mia produttività.

Inoltre, anche se sento che ho bisogno di sapere come usare ogni strumento individualmente, non voglio farlo. Per me almeno, un clic con il pulsante destro del mouse è infinitamente preferibile all'apertura di una CLI e alla digitazione.

Ne ho usati molti, ma gli IDE a cui torno sono over-and-over sono Visual Studio, Wing IDE e NetBeans. Tutti aggiungono un valore significativo al tempo che spendo in programmazione.

    
risposta data 23.11.2010 - 20:58
fonte
9

Storicamente, gli IDE offrivano una comodità ineguagliabile su un computer single-tasking. Il mio primo compilatore C ha richiesto i seguenti passaggi nel ciclo di esecuzione della modifica:

  • Avvia editor
  • Modifica programma
  • Salva programma, chiudi editor
  • Compila programma
  • Assembla programma compilato
  • Link compilato e assemblato programma
  • Esegui programma

sul mio sistema CP / M. (Avrei potuto automatizzare molto di ciò in quanto un programma batch aveva le mie unità disco più grandi.)

Quando ho ottenuto Turbo Pascal, mi ha fatto piacere essere in grado di mantenere l'editor disponibile durante la compilazione e il debug.

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

    
risposta data 23.11.2010 - 23:19
fonte
7

Se si esegue il codice 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, shell / prompt dei comandi, leggere notizie).

In generale, l'editor contro la domanda IDE sembra dipendere dal linguaggio di programmazione. Da quello che ho visto, i codificatori di Ruby e Haskell, ad esempio, sembrano preferire il loro editor di testo preferito.

    
risposta data 24.11.2010 - 17:00
fonte
4
  • Compilazione con un clic
  • Debug
  • Modelli di codice
  • Completamento codice
  • Integrazione con strumenti di controllo della versione e di refactoring
  • Test unità più semplice

per citarne alcuni

    
risposta data 23.11.2010 - 21:00
fonte
3

Penso che la risposta dipenderà molto da quale linguaggio di programmazione stai usando e quanto sei bravo a farlo. Per le lingue come JAVA è necessario un IDE se stai facendo qualcosa di serio. Ovunque come quando si parla di linguaggi di scripting come JS o Ruby, gli IDES non sono molto utili.

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

    
risposta data 13.05.2011 - 10:56
fonte
3

Alcuni argomenti a favore di "editor":

  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 più chirurgicamente.
  3. Ha bisogno di molto 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 la mia attenzione e sono più impegnato su 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'utilizzo della tastiera (velocità / flusso)
  7. Mentalità di utilizzo di macro o altri risparmiatori di tempo.

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

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

    
risposta data 23.05.2017 - 14:40
fonte
2

A seconda della lingua, alcuni IDE includono anche designer visuali di forme e finestre.

Anche se va 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 debugging, ecc.

    
risposta data 23.11.2010 - 21:38
fonte
2

Uso l'IDE per test / debug / integrazione e KEDIT per la modifica perché l'IDE è seriamente carente nelle funzionalità di modifica.
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 consente di ottimizzare le mie capacità di editing e debug allo stesso tempo.
Per altri IDE, utilizzo KEDIT come programma di elaborazione template e di ricerca sorgente e copia / incolla tale origine nell'IDE.

    
risposta data 23.11.2010 - 23:12
fonte
1

Per IDE:
- Le funzionalità avanzate sono cablate fuori dalla scatola.
- Alcune funzionalità sono così specifiche per il tuo framework che gli editor non hanno equivalenti.

Per l'editor:
- Tenendo le mani sulla tastiera.
- il tuo ambiente di sviluppo è uguale su tutti i sistemi
- migliore script per il tuo editor
- Alcune funzionalità di un IDE sono disponibili con strumenti o script esterni. (intellisense, goto definition, find references)

    
risposta data 31.08.2012 - 20:54
fonte
0

Breve curva di apprendimento. Ecco.

    
risposta data 23.11.2010 - 22:53
fonte
0

L'unico che raccomando veramente è il debugger. Un IDE è in realtà un editor con un carico di altri gubbin aggiunti, ma se riesci a compilare digitando make (o freccia su + invio) in un prompt dei comandi, allora non hai bisogno di un IDE . Se puoi eseguire il commit su SCM facendo clic con il pulsante destro del mouse su explorer e scegliendo la voce di menu corretta, non è necessario un IDE.

Ora so che alcune persone hanno bisogno di cose come il supporto del refactoring (scrivi il tuo codice per la prima volta :)) o qualche designer GUI integrato (ma anche in questo caso, usando Visual Studio uso Expression per fare il lavoro con la GUI, non lo schifoso XAML supporto in VS), e molte persone hanno bisogno di intellisense e autocomplete (specialmente per linguaggi prolissi come Java e C # che hanno nomi molto interessanti).

Ma per me, il debugger della GUI è l'unica vera ragione per usare l'IDE. Uso ancora un debugger 'command-line' (beh, windbg) ma per il giorno per giorno, è quello incorporato a VS.

    
risposta data 31.08.2012 - 20:44
fonte
0

Ci sono vantaggi per un IDE. Non tutte le lingue hanno un IDE completo per dare veramente un tocco alla bilancia o potrebbe essere proibitivamente difficile crearne una per una determinata lingua. Ragioni per cui vorrebbe un IDE? Bene, iniziamo con questi:

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

Il problema non è che tutte le lingue ottengano davvero un grande guadagno di produttività da un IDE completo. Uso IDE per un lavoro che faccio (Java, C #) ma non per altri (Python, Ruby, Coldfusion). Tutto ciò è davvero un atto di equilibrio. Alcune lingue semplicemente non richiedono una suite così completa.

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

    
risposta data 31.08.2012 - 20:47
fonte

Leggi altre domande sui tag