Confronto di IDE per lo sviluppo di C ++ e C su Linux: KDevelop, Eclipse, NetBeans, CodeBlocks e Anjuta [chiuso]


49

Vorrei sottolineare la tua esperienza di IDE su larga scala su Linux.

Personalmente lavoro principalmente con vim, tuttavia altri programmatori vorrebbero vedere un vero IDE. Quindi mi piacerebbe sentire la tua opinione personale sui diversi IDE e il confronto tra loro, nel seguente contesto:

  • C ++ e forse un po 'di sviluppo C (non Java, Python e altre cose)
  • Programmazione lato server (non è necessario lo sviluppo della GUI)
  • Lavorare su Linux non è uno sviluppo "multipiattaforma".

L'opinione necessaria riguarda:

  1. Quanto è stabile? Se l'IDE si blocca non ne ho bisogno.
  2. Comodo da usare.
  3. Potente per il debug.
  4. Integrazione con vari sistemi di compilazione
  5. Scalabilità su grandi progetti (progetti di centinaia di migliaia di righe di codice)

Lavoravo con KDevelop ed è stato molto bello IDE e sembra che KDevelop 4 sia un grande progresso. Sembra anche che molti preferiscano usare Netbeans ed Eclipse.


9
Sono molto interessato dalle risposte che riceverai e sarei grato alle persone che forniscono risposte se si lamentano di altri due punti che mi interessano. La scalabilità ai progetti nella gamma di 50 mila file / 30 milioni di righe e adattabilità a una struttura di progetto che non è quella utilizzata di default dall'IDE. I miei esperimenti hanno diversi anni, ma a quel tempo tutto ciò che provavo falliva in quegli aspetti.
AProgrammer

@AProgrammer - ottimo punto, aggiunto all'elenco.
Artyom,

Puoi anche dare un'occhiata a CodeLite- codelite.org . Sfortunatamente non ho molta esperienza nell'usarlo con grandi progetti. Tuttavia può valere la pena di provarlo.
rsc,

Con i plugin project e clang_complete e make correttamente configurati, vim ti darà quasi tutto ciò che IDE vorrebbe (tranne il debug). Con quelli che sospetto rimarrai comunque con Vim; Certamente.
Jan Hudec,

Me lo stavo chiedendo da solo. Grazie per aver pubblicato questa domanda.
Sospeso il

Risposte:


39

Ecco la mia esperienza personale con gli IDE. Ho installato tutti gli IDE che ho trovato e ho giocato con tutti (è quello che ti consiglierei di fare):

  • kdevelop

Lo uso personalmente. La versione che ho installato si arresta in modo anomalo, ma ho scaricato l'ultima versione dal loro sito e funziona bene. È semplice da configurare e ottimo da usare. Supportano il sistema di compilazione personalizzato tramite plug-in. Potresti trovare alcune strane funzionalità (come l'analisi solo delle intestazioni incluse direttamente), ma generalmente funziona bene per i grandi progetti.

  • eclisse

Super complesso da configurare, ma consente letteralmente tutto. Se hai abbastanza tempo per trovare una configurazione corretta che piaccia a tutti, allora provaci. Ma provare a cambiare qualcosa è molto fastidioso perché ha così tante opzioni.

  • anjuta e blocchi di codice

L'ho provato a breve, e non era buono come i due precedenti. Codeblocks è utile per progetti brevi, ma non per medie e grandi dimensioni.

  • NetBeans

Un altro buon IDE, ma poiché la mia casa è in condivisione di rete e il progetto che lavoro è abbastanza grande, è stato molto lento. Analizza tutto il tempo.

  • QtCreator

Semplice da configurare, ma mancano molte opzioni. Ad esempio, la cosa più strana è che non può analizzare e completare automaticamente le classi qt. Supporta il sistema di generazione personalizzato.


Concludere :

  • se sei abbastanza paziente (o se trovi una buona configurazione), vai con eclissi. È davvero il miglior IDE gratuito.
  • Se vuoi qualcosa di semplice da configurare, vai con kdevelop.

Un'altra opzione è installare entrambi e lasciare che i tuoi sviluppatori scelgano ciò che si adatta meglio a loro.


16
Eclipse è un pezzo lento di Java .... Non c'è motivo di usarne uno a meno che non ci siano assolutamente alternative. Sul mio PC è appena iniziato in poco meno di un minuto. Nuff ha detto, no?
Coder

10
@Coder Bene, lo avvierai una volta e lo userai tutto il giorno senza riavviare. Questa è un'idea. 1 minuto è nulla rispetto a quanto tempo lo userai in un giorno.
BЈовић,

6
@VJovic: il passaggio da una scheda all'altra richiede da 18 secondi a 1 secondo, a seconda della scheda, e i rallentamenti non utilizzano solo i rallentamenti. Anche Visual Studio sembra scattante rispetto a quello.
Coder

7
@Coder Come diceva Edison, l'installazione o l'ambiente non vanno bene. La mia eclissi è super veloce. La commutazione della scheda è quasi istantanea.
BЈовић,

4
Ecilpse perde memoria come un setaccio. Il box Linux multiutente, con 16 Gig RAM, esaurisce la RAM con alcune istanze di Eclipse (CDT) in esecuzione per più di qualche giorno. Quindi l'avvio lento è un problema, in quanto è necessario riavviare almeno una volta al giorno o rallentare e quindi accedere al team di sviluppo. Utilizzo della RAM Eclispe - 600Meg / istanza in crescita a 100 / giorno. IDE 50Meg / istanza completamente in crescita a 0 / giorno, VIM, 10Meg in crescita a 0 / giorno. Un IDE commerciale, con un prezzo di $ US250 / posto, ha mostrato un ROI inferiore a 1 anno basato esclusivamente sulla perdita di produttività per caricare Eclipse una volta al giorno.
mattnz,

13

Dai un'occhiata a Qt Creator.

  • È abbastanza stabile. Non ricordo alcun incidente con esso.
  • Potrebbe essere necessario del tempo per abituarsi all'assenza di schede, ma l'interfaccia generale è buona.
  • Usa gdb. Il debug non è eccezionale come in Visual Studio ma è comunque abbastanza buono. Ora si integra anche con il profiler (Valgrind).
  • Si integra con qmake e CMake. Ma puoi eseguire comandi personalizzati, quindi dovrebbe essere possibile usare quasi tutto.
  • Non posso dire nulla di grandi progetti, ma è realizzato e utilizzato dagli stessi ragazzi che scrivono Qt, quindi i requisiti sono elevati.
  • Non sembra fare ipotesi sulla struttura del progetto.

Ho provato KDevelop 4 qualche tempo fa. Si sta certamente muovendo nella giusta direzione ma leggermente difettoso. Potresti provare comunque.

Ho usato CodeBlocks per pochissimo tempo ma ricordo che non mi piaceva perché Interface era brutta.


8

Molti sviluppatori GCC (e GCC ha da 5 a 9 milioni di linee di codice sorgente, a seconda di come li si conta) basta usare emacs o vicon programmi di utilità come grep, ctagso etags, make, svn, gcc, etc.).

Non è necessario un IDE per sviluppare un software di grandi dimensioni.

Se il tuo software è abbastanza grande (ad esempio almeno 0,3 milioni di righe), potresti anche considerare di personalizzare GCC tramite plug-in o estensioni MELT , a fini di metriche del software, navigazione del software, avvisi specifici, regole di codifica, ecc.


10
Non era questa la domanda. Come ho notato, uso principalmente vim (con grep, tag ecc.) - So quanto sia bello. Tuttavia, molti programmatori preferiscono IDE
Artyom il

1
Gli IDE sono particolarmente utili per le funzionalità relative alla classe C ++, che sono molto difficili da configurare bene in Vim. Raw C è OK con tag.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

6

Lavoro principalmente con Eclipse. Ho usato KDevelop con grande soddisfazione per anni, ma ora lavoro su progetti multilingue (C, C ++, PHP, Java, Python, Database, Web, ecc.).

Vantaggi di Eclipse: molti strumenti per tutto (incluso il controllo della versione); funziona molto bene per il controllo della sintassi e il completamento automatico. Ottimo lavoro durante la compilazione / costruzione / debug. Si tratta di
svantaggi multipiattaforma (Linux, Windows, Solaris, ecc.) : Alcune funzioni o impostazioni sono un incubo (ad esempio, quando è necessario distribuire il progetto dalla workstation al server, Eclipse mantiene una sorta di cache e se pensa che il file sul server sia "aggiornato", il file non viene sovrascritto). Eclipse è enorme , soffoca la maggior parte della tua potenza della CPU e scarica tutta la tua memoria. Maggiori informazioni su http://www.ihateeclipse.com .

KDevelop è veloce e ottimo per i progetti C / C ++ e KDE / Qt, ma manca di alcune funzioni come il supporto per Mercurial (KDevelop 3.3.4, non lo so per le versioni più recenti).


4

Visual SlickEdit - commerciale, come ogni buon strumento, "funziona". Gestisce ogni lingua sotto il sole, pronta all'uso, altamente configurabile e, se necessario, completamente programmabile, mette una gui intorno a GDB per il debug. Gestisce progetti di grandi dimensioni (lo uso per una base di codice di 5 milioni + SOLC, di cui gioco con circa 1 milione di loro.) - Ho vinto numerosi premi e da allora è migliorato. Provalo

Eclipse - Strumento di scelta durante la programmazione in Java, OK per qualsiasi lingua supportata. Scritto in Java per sviluppatori Java che sviluppano programmi Java. Ma ha bisogno di plugin per ogni piccola piccola funzione e caratteristica principale. Non "funziona" solo per più di una lingua alla volta.


4

Netbeans è un IDE lento, lento. Non stiamo usando "computer per dinosauri", ma questo IDE HANGS da molto tempo. Se accediamo all'IDE Netbeans tramite la rete (diciamo, usando VNC), allora dimenticalo !!! Il ritardo è così grave da rendere inutilizzabile Netbeans!

Trovo Eclipse intimidatorio difficile da configurare per l'uso iniziale, ma se persisti, finirai con un IDE che ha tutto ciò che potresti desiderare o di cui hai bisogno (possibilmente tramite plug-in).

Non voglio usare più di un IDE, e sospetto che neanche tu. Consiglierei Eclipse, con tutti i suoi difetti.


4

Quindi ... aggiungo solo un'altra opinione ma non penso che tu possa sceglierla come utente VIM, quindi

emacs + gdb http://www.cs.bu.edu/teaching/tool/emacs/programming/

prima di tutto questo sarà l' IDE più leggero (posso persino chiamarlo sistema operativo) e più personalizzabile in modo da poter fare tutto con il minimo utilizzo delle risorse tranne alcune risorse di brainwork di configurazione lisp.

Personalmente quando ho un progetto serio sto usando Visual Studio. Ma quando ho bisogno di lavorare su Linux, eseguo emacs. (anche a me non piace affatto qt)

Inoltre (soprattutto perché mi piace il plug-in last.fm e il supporto clojure lì) ho trovato un IDE carino per Linux (sto ancora cercando di passare a emacs da esso == 'per alcuni motivi) IDEA , non consiglio di usarlo per C ++ ma forse non è male, quindi puoi aggiungerlo al tuo elenco.


1

QT e CodeBlocks sono ok. Di recente uso CodeBlocks.

Può essere configurato per progetti makefile, il completamento del codice funziona principalmente e non si blocca come uno in MSVS, andare alla definizione è incredibilmente veloce. Anche la navigazione delle funzioni è ben eseguita.

Ci sono alcuni problemi minori, ma per il lavoro quotidiano su Linux è molto buono, IMHO.


0

Il mio unico tentativo di utilizzare un IDE su Linux è avvenuto nel 2005, ma a quel tempo nessun IDE che ho provato (KDevelop, eclipse, Anjuta) è stato positivo, quindi sono tornato a vim + ctags + gdb e lo uso ancora per la codifica Linux.


Probabilmente sei tu l'uomo che conosce la risposta: come andare all'implementazione di un metodo in un'altra classe di gerarchia (implementazione genitore / figlio) in vim.
Sergei,

ad esempio in Eclipse la combinazione è Ctrl + T sul nome di un metodo.
Sergei,

@Sergei Siamo spiacenti, ctags non lo supporta. Potresti avere più fortuna con qualcosa come YCM: github.com/Valloric/YouCompleteMe
Nemanja Trifunovic
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.