2009-03-06 12 views
56

così come da una delle mie precedenti domande, sto rispolverando le mie abilità C.Qual è il miglior IDE per lo sviluppo C/Perché utilizzare Emacs su un IDE?

La mia domanda è: cosa usano le persone per lo sviluppo di C?

Un sacco di persone usano Emacs, e lo hanno fatto per anni, ma è meglio imparare emacs che basta usare un IDE come Geany o KDevelop?

sarebbe anche interessato a sentire da quei ancora utilizzando emacs, e perché usarlo su altre applicazioni?

Si prega di notare che sono interessato solo agli IDE/editor gratuiti.

EDIT:

Grazie per la pubblicazione di link che rispondono alcune delle mie domande, ma credo che quello che sto veramente chiedendo circa è:

Sia imparando a modificare utilizzando emacs/vim e la compilazione/il debugging con gcc-toolchain vale la pena invece di usare solo un IDE e perché?

Quali sono le ragioni per cui i cittadini non eseguono la migrazione a un IDE?

Qualcuno si è spostato dallo sviluppo del terminale allo sviluppo di IDE e perché si sono mossi?

+0

Non credo che si possa ottenere una risposta di qualsiasi valore reale a questa domanda. Otterrai a) preferenze personali di poche persone b) elenchi di funzionalità o punti salienti. Hai dichiarato che eri interessato solo a quelli gratuiti. Scarica alcuni, provali, scegli quello che è meglio per te. –

+0

In futuro, cerca di chiarire nella tua domanda che vuoi un editor C/IDE E ASSOLUTAMENTE NON UN EDITOR C++ PERCHÉ NON SONO LO STESSO. –

+3

Ho scaricato la versione di Eclipse per C e C++. Era lo stesso. –

risposta

59

Ho iniziato utilizzando IDE, Microsoft o no. Poi, mentre lavoravo a QNX molto tempo fa, ero costretto a farlo con un editor di testo + compilatore/linker. Ora preferisco questa semplice combinazione - un editor di evidenziazione della sintassi + compilatore C e linker cli + make - a qualsiasi IDE, anche se l'ambiente lo consente.

Le ragioni sono, per me:

  1. è dappertutto. Se si programma in C, si ha il compilatore e di solito si può ottenere un editor. La prima cosa che faccio - mi trovo nedit su Linux o Notepad ++ su Windows. Vorrei andare con vi, ma gli editor GUI forniscono font migliori, e questo è importante quando si guarda il codice tutto il giorno

  2. è possibile programmare in remoto, tramite ssh, quando è necessario. E a volte aiuta molto a ssh nel target e fa alcune cose veloci lì

  3. mi tiene vicino alla CLI, preferibilmente CLI UNIX/Linux. Quindi tutti i comandi sono sulla punta delle dita, e quando ho bisogno di loro non devo andare a leggere un libro di consultazione. E UNIX CLI può fare cose che spesso gli IDE non riescono a fare - perché i loro sviluppatori non pensavano ne aveste bisogno

  4. la cosa più importante, è molto simile a vedere Matrix in codice grezzo. Gestisco file, quindi sono costretto a tenerli gestibili. Sto trovando le cose nel mio codice manualmente, il che mi rende semplice e organizzato. Gestisco la gestione delle configurazioni in modo esplicito, quindi so quando sono sincronizzato e come.Conosco i miei Makefile perché li scrivo e fanno solo quello che dico loro a

    (se ti chiedi se questo funziona in "progetti veramente grandi" - funziona, e più grande è il progetto più prestazioni esso mi guadagna)

  5. quando la gente mi chiede di guardare il loro codice, non ho per imparare l'IDE che utilizzano

+0

ehi, grazie per l'ottima risposta. Suppongo che ti costringa a imparare davvero anche le librerie. Questo è un ostacolo per me, non so quali parametri dovrebbero prendere tutte le funzioni, quindi usando solo un editor ho bisogno di un libro di riferimento accanto a me in ogni momento che mi rallenti. –

+21

Che dire di un debugger ...? –

+2

@rathboma: ecco a cosa servono windows: uno per il tuo editor, altro per la tua documentazione – Javier

5

Emacs sarebbe meglio se avesse un editor di testo in esso ... :-)

+1

In qualità di utente Vim, non ti sento bene. Puoi spiegare di più? –

+4

+1 Sì, vero editore, come vim! Che la guerra santa abbia inizio! – qrdl

+17

In realtà ne ha uno. Penso che tu possa premere META-CTRL-LEFT_ALT-Q + R + W per farlo apparire! –

1

Se stai cercando un editor multipiattaforma gratuito, prova, Komodo Edit. Non è potente come l'IDE di Komodo, tuttavia non è gratuito. Vedi feature chart.

Un altro editor gratuito ed estendibile è jEdit. Crossplatform in quanto è puro al 100% Java. Non è l'IDE più veloce al mondo, ma per Java in realtà è molto veloce, molto flessibile, anche se non molto bello.

Entrambe dispongono di una piegatura del codice molto sofisticata, l'evidenziazione della sintassi (per tutte le lingue che si possono immaginare!) E sono molto flessibili per quanto riguarda la configurazione per le proprie esigenze personali. jEdit è BTW molto facile da estendere per aggiungere qualsiasi funzionalità di cui si possa aver bisogno (ha un linguaggio di scripting ultra semplice, che assomiglia a Java, ma in realtà è "programmato").

-1

Se sei su Windows, è un gioco da ragazzi: ottieni Visual C++ Express.

+2

Perché? Questo non contribuisce veramente a nulla. – WhyNotHugo

+4

Nel decennio precedente, sarei stato d'accordo con te. Tuttavia, gli IDE alternativi sono migliorati. Eclipse, NetBeans, Code :: Blocks, Emacs per Windows e, ultimo ma non meno importante: Qt Creator. Oltre a questo, altre piattaforme rispetto a Windows hanno acquisito un'importanza enorme, da OS X e Linux (Ubuntu, embedded o server) a iOS e Android per dispositivi mobili. Per parafrasare la tua affermazione, non è più un mondo di "totale assenza di cervelli". Anche se sei su Windows, potresti dover sviluppare anche per altre piattaforme (o renderlo possibile), e certamente non devi scegliere Visual C++. – Alexander

+2

Visual C++ non supporta i moderni standard C. È un IDE C++ principalmente, non adatto allo sviluppo C. – Alex

8

Ho usato Eclipse con il plug in CDT abbastanza bene.

+1

Anch'io, Eclipse può essere piuttosto "impegnativo" all'inizio. Ma è ben speso lo sforzo di apprendimento però. –

+3

Non mi sono mai sentito a mio agio con CDT. Non posso metterci il dito sopra. Era strano fare C in un ambiente Eclipse. –

+0

La maledizione di apprendimento è troppo ripida e, IMO, non è veramente giustificata. Imparare a usare GCC e pkg-config era molto più veloce. – WhyNotHugo

14

Emacs è un IDE.

modifica: OK, elaborerò. Cos'è un IDE?

Come punto di partenza, espandiamo l'acronimo: Integrated Development Environment. Per analizzare questo, parto dalla fine.

Un ambiente è, in generale, la parte del mondo che circonda il punto di vista. In questo caso, è ciò che vediamo sul nostro monitor (forse sentiamo dai nostri diffusori) e manipoliamo attraverso la nostra tastiera (e forse un mouse).

Sviluppo è ciò che vogliamo fare in questo ambiente, il suo scopo, se volete. Usiamo l'ambiente per sviluppare software. Questo definisce quali sottoparti di cui abbiamo bisogno: un editor, un'interfaccia al REPL, risp. il compilatore, un'interfaccia per il debugger e l'accesso alla documentazione online (questo elenco potrebbe non essere esaustivo).

Integrated significa che tutte le parti dell'ambiente sono in qualche modo sotto una superficie uniforme. In un IDE, possiamo accedere e utilizzare le diverse sottoparti con un minimo di commutazione; non dobbiamo lasciare il nostro ambiente definito. Questa integrazione consente alle diverse sottoparti di interagire meglio. Ad esempio, l'editor può sapere su quale lingua scriviamo, e darci il completamento automatico dei simboli, il salto a definizione, l'indentazione automatica, l'evidenziazione della sintassi, ecc. Può ottenere informazioni dal compilatore, saltare automaticamente agli errori e evidenziali. Nella maggior parte, se non tutti gli IDE, l'editor è naturalmente al centro del processo di sviluppo.

Emacs fa tutto questo, lo fa con una vasta gamma di lingue e attività, e lo fa con eccellenza, dal momento che è facilmente espandibile dall'utente ovunque gli manchi qualcosa.

Controesempio: è possibile sviluppare l'utilizzo di qualcosa come Blocco note, accedere alla documentazione tramite Firefox e XPdf e guidare il compilatore e il debugger da una shell. Questo sarebbe un ambiente di sviluppo, ma non sarebbe integrato.

+6

emacs è integrato come le pietre sono integrate con la malta in una rovina etrusca. Seriamente, emacs è la prima cosa che inizio al mattino, ma chiamarla IDE integrata? No, a meno che tu non sia un mago elitario. – Cheeso

+10

Non devi essere un mago elitario da solo. Puoi semplicemente usare ciò che altri hanno fatto. Ad esempio, prova a confrontare SLIME (modalità di interazione lisp superiore per emacs) con una modalità Lisp (o si chiama plugin?) Per Eclipse. – Svante

32

ho spostato da un editor di testo terminale + rendere ambiente Eclipse per la maggior parte dei miei progetti. Spanning da C e C++, a Java e Python per nominare alcune lingue con cui lavoro attualmente.

La ragione era semplicemente la produttività. Non potevo permettermi di spendere tempo e sforzi per mantenere tutti i progetti "nella mia testa" mentre altre cose diventavano più importanti.

Ci sono vantaggi dell'utilizzo dell'approccio "hardcore" (terminale) - ad esempio uno strato molto più sottile tra te e il codice che ti consente di essere un po 'più produttivo quando sei "dentro" il progetto e tutto è in cima alla tua testa. Ma non credo sia possibile difendere quel modo di lavorare solo per il proprio interesse, quando la tua mente è necessaria altrove.

Di solito quando si lavora con gli strumenti della riga di comando, si dovranno spesso risolvere molti problemi di caldaia che vi impediranno di essere produttivi. Avrai bisogno di conoscere gli strumenti in dettaglio per sfruttare appieno le loro potenzialità. Anche il mantenimento di un progetto richiederà molto più impegno. Refactoring porterà ad aggiornamenti in make-file, ecc.

Per riassumere: Se lavori solo su uno o due progetti, preferibilmente a tempo pieno senza troppe distrazioni, la "codifica basata su terminale" può essere più produttiva di una piena IDE soffiato. Tuttavia, se hai bisogno di spendere la tua energia per pensare a qualcosa di più importante, un IDE è sicuramente la strada da percorrere per mantenere la produttività.

Fai la tua scelta di conseguenza.

+0

ben spiegato. –

5

Netbeans ha great C and C++ support. Alcune persone si lamentano che è gonfio e lento, ma lo sto usando quasi esclusivamente per progetti personali e lo adoro. La funzionalità di assistenza al codice è una delle migliori che abbia mai visto.

+0

Ho davvero apprezzato Netbeans quando ho programmato in Java. Apprezzerei anche l'uniformità dell'IDE. –

+0

In passato ho trovato Netbeans e Komodo Edit simili in funzionalità con Netbeans più pesanti/più lenti. – Chinasaur

2

Come mai nessuno menziona Bloodshed Devc++? L'ha usato in un attimo, ma ho imparato c/C++ su di esso. molto simile a MS Visual C++.

+0

L'hai menzionato. Forse perché si chiama DevC++ e questa è una domanda C? –

+2

Uso DevC++ per scrivere C e C++ – CrackSmoker9000