Sono probabilmente una persona terribile per parlare di questo, dal momento che trovo l'utilizzo di IDE come la programmazione con pesi di piombo sulle mie braccia, ma immagino che possa essere utile per ottenere la prospettiva di quel lato del recinto. Qualsiasi idea interessante o sperimentale che le persone hanno ancora bisogno di affrontare le esigenze di base degli strumenti di sviluppo.
Un IDE è in genere un editor di qualche tipo, un debugger e un compilatore. Dal momento che questi sono tre parti distinte dello strumento, corro attraverso di loro separatamente
Ecco quello che voglio da un editore
- essere veloce. non voglio mai essere in attesa di cose da caricare. mai.
- dammi potenti modi per manipolare e saltare nel codice. Non mi importa di imparare le curve quando si tratta di uno strumento che uso per circa 10 ore al giorno in media, il rovescio della medaglia è che non voglio sprecare il mio tempo a diventare bravo con strumenti che non sono potenti.
- dammi un modo decente per aprire i file. le finestre di dialogo aperte per i file non sono abbastanza buone, né gli alberi dei progetti.
- buon supporto per avere molte cose aperte allo stesso tempo. Ho uno schermo da 27 ", le schede non sono neanche lontanamente abbastanza, attualmente vivo con split, ma non sarebbe difficile trovare qualcosa di meglio
- non farmi mai toccare un mouse durante la modifica del codice. Mi interessa la curva di apprendimento, quello che voglio sono la velocità, l'efficienza e la potenza
- Se mi dai un visual designer, è meglio renderti più produttivo quindi digitare, producendo codice con lo stesso livello di flessibilità di cui sono in grado di produrre con il testo.Devo ancora trovare un visual designer che faccia questo, ogni altro che io abbia mai usato fondamentalmente abbassa la barra per imparare a fare qualcosa, ma ti fa pagare la strada in manutenibilità e flessibilità. Considero ogni singolo esempio di programmazione disegnando immagini che ho fino ad ora come un fallimento, se usato per scopi seri (cioè non sbattere qualcosa e non preoccuparsi della qualità)
- refactoring automatizzato. Ora sto usando vim, e l'unica cosa che mi manca è riuscire a estrarre metodi da altri metodi, o premere un pulsante per rinominare qualcosa e sentirsi al sicuro con ciò che lo strumento farà.
- analisi del codice. Voglio vedere gli errori di sintassi mentre accadono, vedere se sto scrivendo codice ridondante, o vedere suggerimenti se c'è un modo migliore per fare qualcosa.
- ottimo test runner. Pratico TDD, e i corridori di test scadenti mi spingono fino al muro, poiché ha un tale impatto su tutto ciò che faccio.
quello che voglio da un debugger
- un REPL. questo mi ha fatto impazzire quando ero bloccato con Visual Studio, e probabilmente ho trascorso più tempo nella finestra immediata di chiunque altro nella squadra. L'intero punto di un debugger è la possibilità di esplorare cosa sta succedendo durante l'esecuzione, se non riesco a digitare codice arbitrario e vedere cosa valuta, mi sento come se avessi una mano legata dietro la schiena
- possibilità di cambiare codice al volo, anche se con un REPL e una lingua decenti, questo tipo si prende cura di sé
- capacità di spostarsi avanti e indietro in esecuzione.
- velocità, non farmi aspettare
- buoni modi per saltare nel codice. se sono in linea 1, e voglio saltare per la linea 500 per vedere cosa sta succedendo, dovrei essere in grado di farlo
quello che voglio da un compilatore
- velocità, almeno in modalità di sviluppo. google go è in grado di compilare 500, 000 loc in millisecondi su un laptop, questo è ciò di cui sto parlando. Se il linguaggio deve essere compilato, ogni secondo guardando l'output del compilatore sta rendendo più difficile fare qualsiasi cosa tu stia facendo (rintracciare un bug, testare una funzionalità, eseguire test, ecc.)
- hai bisogno di un modo per agganciare in metodi arbitrari per pre e post esecuzione, o pre-elaborazione dei file di codice in un modo più generale (si pensi alle macro del lettore Lisp). se non puoi farlo con la lingua, devi essere in grado di farlo con il compilatore
- buona analisi. dimmi dove ho incasinato al momento della compilazione se non riesci a catturarlo prima della trasparenza
- . in realtà non voglio nemmeno saperlo, a meno che non stia interagendo direttamente con esso.
Quello che ho
Attualmente, io uso vim, che mi dà 1, 2, 3 (con fuzzyfinder.vim/rails.vim), 4, 5, e un pessimo 8 (con syntastic .vim). Non ho refactoring o analisi del codice, e mi manca davvero, ma IMO vale più del compromesso.
per il debug, io uso ruby-debug, che in realtà non è eccezionale. in pratica ottieni 1, 2 (più causa di ruby e ruby-debug), e 3, ma questo è tutto.
Non usare più un compilatore (grazie a Dio), ma non usarne uno dopo averne usato uno per 7 anni (almeno professionalmente) evidenzia davvero quale terribile impatto hanno sul processo di sviluppo.
fonte
2010-06-18 03:07:49
"Sono interessante", e modesto troppo :-p –