Quali caratteristiche di un IDE lo renderebbero più utile di un editor per scopi generici


10

Sto creando un IDE per la lingua Lua. Trovo che a molti programmatori non piaccia usare IDE e preferire VIM (che è in voga al momento), SCiTE o.

Nel tentativo di ottenere un po 'di condivisione della mente, sono interessato a quali funzionalità potrebbe fornire un IDE che lo renderebbe un'alternativa convincente a un editor per scopi generici.

Esiste un "killer-app" per così dire per un IDE che lo renderebbe un "must-have"?

Questo potrebbe essere pensato come il contrario di

Funzionalità più utili di VIM che non sono standard in un IDE

Non collegherò al mio IDE a meno che qualcuno non lo chieda, ma puoi praticamente solo il mio nome Google e trovarlo.

EDIT: Il mio IDE è in realtà un plugin di lingua per un IDE esistente, quindi eredito molte funzionalità dall'IDE host - ad un certo livello sebbene il mio supporto linguistico sia un IDE in sé e per sé - almeno per quanto riguarda gli aspetti specifici della lingua ha riguardato.

Risposte:


19
  1. Strutture di refactoring (la ridenominazione influisce sulle dipendenze / Metodo di estrazione / Interfaccia di estrazione, ecc.)
  2. Intellisense (o qualsiasi altra funzionalità di completamento del codice)
  3. Controllo errori (l'IDE in realtà conosce i suoi simboli)
  4. Nessuna seccatura di installazione
  5. Compilatore integrato
  6. Debugger integrato
  7. Migliore navigazione da e verso riferimenti / dichiarazioni
  8. Modelli di progetto / modelli di file
  9. Costruttori di GUI
  10. Può generare automaticamente il codice del boilerplate
  11. È intuitivo e può essere utilizzato senza conoscere tutte le chiavi magiche (ehi, ecco perché le GUI hanno avuto successo in primo luogo)

Nel complesso, come affermato da @Thomas Owens, il più grande vantaggio dell'IDE è l'integrazione dello strumento con i suoi effetti sinergici nel suo complesso, mentre è ancora intuitivo e facile da usare.


3
Nel complesso, direi l'integrazione dello strumento nel suo insieme - integrazione con controllo versione, server di integrazione continua, bug tracker, compilatore, debugger, profiler, analisi statica e così via. Direi che il compilatore e il debugger integrati sono un grosso problema, ma avere tutto in un unico piccolo pacchetto pulito è utile.
Thomas Owens

@Thomas Owens: Molto vero, ma non ho elencato il controllo del codice sorgente, ad esempio, poiché puoi integrare facilmente il controllo del codice sorgente in vim, quindi non è un grosso problema, dopo tutto è solo una chiamata da riga di comando e ad esempio mi piace meglio Tortoise di AnkhSVN. Avrei elencato i profiler ma non tutti gli IDE ne hanno uno (VS, ad esempio, non ne ha nessuno fuori dalla scatola). Le metriche sono un bel punto, ma ancora una volta, solo il VS più recente lo offre afaik.
Falcon,

In Eclipse e NetBeans, molto di ciò che ho menzionato è basato su plug-in, anche se ci sono molti plug-in (o moduli o estensioni) anche per vim ed emacs, con diverse funzionalità. Penso che sia questo il bello di tutti gli strumenti: è facile scegliere ciò che vuoi per essere produttivo.
Thomas Owens

Penso di avere la maggior parte di quella lista in un modo o nell'altro. Inoltre, formattazione del codice. e persino supporto per aiuto integrato per API e librerie personalizzate. Il tuo elenco è piuttosto completo però. Forse alla fine dipende solo dalle preferenze personali e non c'è molto altro che posso fare. (Il mio IDE è un plugin IntelliJ - forse è troppo per alcuni)
sylvanaar,

2
Vorrei chiarire che cose come Refactor / Rename sono multi-file (a livello di progetto) - quando rinominerò un metodo o una variabile, PyCharm (ad esempio) applicherà la ridenominazione su ogni file nel progetto, non solo quello attualmente modificato come farebbe un editore. Altrimenti, sono certamente d'accordo con questo elenco. Ho comprato e iniziato a usare PyCharm di recente, e più lo imparo, più mi piace (nonostante anomalie occasionali :)
Ciclope

8

La grande differenza tra un IDE e un editor di testo generale è che gli IDE comprendono il linguaggio di programmazione con cui si sta lavorando e possono completare automaticamente funzioni / metodi, verificare errori come tipo errato e grammatica errata. Un IDE ha anche strumenti come un compilatore integrato in modo da poter compilare ed eseguire il programma con comandi nel tuo IDE.

Ma penso che VIM possa fare più di un semplice editor di testo, forse in alcuni casi puoi vederlo come un IDE.


2
+1 per "comprendere la lingua". Quasi tutto il resto segue da questo, penso.
Dean Harding,

sì - la mia implementazione del supporto linguistico è sia sintatticamente che semanticamente consapevole.
sylvanaar,

4

Strumenti di refactoring

L'unico motivo per cui non sto usando il mio editor di testo per scopi generici preferito per la codifica. Perché se hai bisogno di eseguire il macro-refactoring di codici comuni nel tuo scopo generale preferito, potresti anche utilizzare un IDE su cui sono installati questi strumenti.

Almeno per dire che la maggior parte degli IDE ha l'utile funzionalità di emacs, è semplicemente sepolto in una combinazione di tasti di scelta arbitraria.


2

Bello avere funzionalità di un IDE che non si trova nell'editor di testo: 1. Intellisense (completamento automatico e suggerimenti)

  1. Integrazione con il compilatore

  2. Integrazione con il sistema di debug

  3. Integrazione con il controllo versione

  4. Integrazione con il sistema di database

  5. Controllo e assistenza della sintassi al volo

  6. Sintassi colorazione

  7. Gestisce progetti non solo file di codice

  8. Trova dove viene utilizzato un metodo e disegna un grafico (non trovato finora nella maggior parte degli IDE)

  9. Registra i componenti (a seconda della lingua)

  10. Integrazione con gli editor della GUI

  11. Segnalibri segmenti di codice

  12. Sicurezza e condivisione del codice sorgente tra gli sviluppatori

  13. Ripristino del progetto alle versioni precedenti

  14. Configurazioni multiple di progetto (test, sviluppo, produzione)

  15. Le funzionalità IDE possono essere configurate

  16. Confronto intelligente del codice sorgente

  17. Rinominazione automatica di variabili, metodi, ecc.

Non penso che sia utile creare un nuovo IDE.


Avrei dovuto menzionare che si tratta di un plug-in per un IDE esistente. Modificherò la mia domanda.
sylvanaar,

2

Mi piacerebbe avere un IDE con un editor completamente personalizzabile come Emacs. Non voglio scrivere plugin e quindi riavviare l'IDE per testarli. Voglio definire le azioni in un linguaggio di scripting (ad esempio python, ruby) ed essere in grado di usarle immediatamente, associarle a sequenze chiave, ecc. Il linguaggio dovrebbe essere in grado di manipolare l'intero spazio di lavoro.


1

3 cose decidono sempre se userò o meno un IDE particolare:

  • Completamento automatico
  • Un costruttore di GUI visiva
  • Strumenti di dati per una sorta di ORM integrato

In genere utilizzo l'IDE che ha la maggior parte di queste funzionalità o che le fa meglio. Queste sono le tre cose che tendono ad aumentare maggiormente la produduttività riducendo la codifica del plateplate (GUI e DAL) e riducendo il tempo di riflessione (il completamento automatico mi consente di saltare un sacco di errori nell'API).


Avrei classificato gli strumenti di refactoring molto più in alto rispetto ai costruttori della GUI. Non tutti i programmi dispongono di GUI, ma a un certo punto potrebbero essere tutti oggetto di refactoring.
FrustratedWithFormsDesigner,

@FrustratedWithFormsDesigner - A ciascuno il suo credo. Uso raramente strumenti di refactoring. Non ho davvero nulla contro di loro; Preferisco spesso refactoring a mano per assicurarmi di non rompere nulla.
Morgan Herlocker,

Lo facevo anch'io, credo che all'inizio non mi fido di questi strumenti. Ed è vero che se sono mal implementati, spesso è meglio eseguire il refactoring a mano, ma quando questi strumenti sono fatti bene sono INCREDIBILI !
FrustratedWithFormsDesigner,
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.