Comparación de IDEs para el desarrollo de C ++ y C en Linux: KDevelop, Eclipse, NetBeans, CodeBlocks y Anjuta [cerrado]

49

Me gustaría señalar su experiencia con IDEs a escala completa en Linux.

Personalmente trabajo principalmente con vim, sin embargo, a otros programadores les gustaría ver un IDE real. Por lo tanto, me gustaría escuchar su opinión personal sobre los diferentes IDE y la comparación entre ellos, en el siguiente contexto:

  • C ++ y tal vez algo de desarrollo en C (no Java, Python y otras cosas)
  • Programación del lado del servidor (sin necesidad de desarrollo de GUI)
  • Trabajando en Linux no en el desarrollo "multiplataforma".

Opinión necesaria respecto:

  1. ¿Qué tan estable es? Si IDE falla, no lo necesito.
  2. Cómodo de usar.
  3. Potente para la depuración.
  4. Integración con varios sistemas de construcción.
  5. Escalabilidad sobre grandes proyectos (proyectos de cientos de miles de líneas de código)

Solía ​​trabajar con KDevelop y fue un IDE muy bueno y parece que KDevelop 4 es un gran progreso. Parece también que muchos prefieren usar Netbeans y Eclipse.

Artyom
fuente
99
Estoy muy interesado en las respuestas que obtendrá y agradecería a las personas que brinden respuestas si se preocupan por otros dos puntos que me interesan. La escalabilidad para proyectos en el rango de 50 mil archivos / 30 millones de líneas y adaptabilidad a una estructura de proyecto que no es la utilizada por defecto por el IDE. Mis experimentos tienen varios años, pero en ese momento todo lo que intenté falló en esos aspectos.
Programador del
@AProgrammer: muy buen punto, agregado a la lista.
Artyom
También puede echar un vistazo a CodeLite- codelite.org . Desafortunadamente no tengo mucha experiencia en usarlo con grandes proyectos. Sin embargo, puede valer la pena echarle un vistazo.
rsc
Con los complementos project y clang_complete y make configurado correctamente, vim le dará casi todo lo que IDE haría (excepto la depuración). Con los que sospecho que te quedarás con vim de todos modos; Ciertamente lo hago.
Jan Hudec
Me preguntaba por mí mismo. Gracias por publicar esta pregunta.
Suspendido

Respuestas:

39

Aquí está mi experiencia personal con IDEs. Instalé todos los IDEs que pude encontrar y jugué con todos ellos (eso es lo que te aconsejaría que hicieras):

  • kdevelop

Yo personalmente lo uso. La versión que instalé falla, pero descargué la última versión de su sitio y funciona bien. Es simple de configurar y excelente para usar. Admiten un sistema de construcción personalizado a través de complementos. Es posible que encuentre algunas características extrañas (como analizar solo encabezados directamente incluidos), pero en general funciona bien para grandes proyectos.

  • eclipse

Súper complejo de configurar, pero permite literalmente todo. Si tiene tiempo suficiente para encontrar una configuración correcta que satisfaga a todos, entonces hágalo. Pero tratar de cambiar algo es muy molesto porque tiene muchas opciones.

  • anjuta y codeblocks

Lo intenté en breve y no fue tan bueno como los dos anteriores. Codeblocks es bueno para proyectos cortos, pero no para medianos y grandes.

  • netbeans

Otro buen IDE, pero como mi hogar está en la red compartida, y el proyecto que trabajo es bastante grande, fue muy lento. Se analiza todo el tiempo.

  • qtcreator

Simple de configurar, pero le faltan muchas opciones. Por ejemplo, lo más extraño es que no puede analizar y completar automáticamente las clases qt. Admite sistema de compilación personalizado.


Para concluir :

  • Si es lo suficientemente paciente (o si encuentra una buena configuración), vaya con eclipse. Es realmente el mejor IDE gratuito.
  • Si desea algo simple de configurar, vaya con kdevelop.

Otra opción es instalar ambos y dejar que sus desarrolladores elijan lo que mejor les convenga.

BЈовић
fuente
16
Eclipse es una pieza lenta de Java ... No hay razón para usar uno a menos que no haya absolutamente ninguna alternativa. En mi PC comenzó en poco menos de un minuto. Nuff dijo que no?
Codificador
10
@Coder Bueno, lo comenzará una vez y lo usará todo el día sin reiniciar. Esa es una idea. 1 minuto no es nada comparado con el tiempo que lo usará en un día.
Bћовић
66
@VJovic: Cambiar entre pestañas toma de 18 segundos a 1 segundo dependiendo de la pestaña, y las ralentizaciones no son solo ralentizaciones de primer uso. Incluso Visual Studio parece ágil en comparación con eso.
Codificador
77
@Coder Como dijo Edison, su instalación o entorno no es bueno. Mi eclipse es súper rápido. El cambio de pestañas es casi instantáneo.
Bћовић
44
Ecilpse pierde la memoria como un tamiz. La caja Linux para múltiples usuarios, con 16 Gig RAM, se queda sin RAM con algunas instancias de Eclipse (CDT) ejecutándose durante más de unos pocos días. Por lo tanto, el inicio lento es un problema, ya que debe reiniciar al menos una vez al día, o reducir la velocidad y luego confiar el equipo de desarrollo. Uso de RAM Eclispe: 600Meg / instancia creciendo a 100 / día. IDE 50Meg / instancia con todas las funciones creciendo a 0 / día, VIM, 10Meg creciendo a 0 / día. Un IDE comercial, con un precio de $ US250 / asiento, mostró menos de 1 año de retorno de inversión basado en la pérdida de productividad para cargar Eclipse una vez al día.
mattnz
13

Echa un vistazo a Qt Creator.

  • Es bastante estable No recuerdo ningún accidente con eso.
  • Puede llevar algún tiempo acostumbrarse a la ausencia de pestañas, pero la interfaz general es buena.
  • Utiliza gdb. La depuración no es tan buena como en Visual Studio, pero sigue siendo bastante buena. También se integra con profiler (Valgrind) ahora.
  • Se integra con qmake y CMake. Pero puede ejecutar comandos personalizados, por lo que debería ser posible usar casi todo.
  • No puedo decir nada sobre grandes proyectos, pero está hecho y utilizado por los mismos tipos que escriben Qt, por lo que los requisitos son altos.
  • No parece suponer nada sobre la estructura del proyecto.

Probé KDevelop 4 hace algún tiempo. Ciertamente se está moviendo en la dirección correcta, pero con errores. Es posible que desee probarlo de todos modos.

Usé CodeBlocks por muy poco tiempo, pero recuerdo que no me gustó porque la interfaz era fea.

Anton Barkovsky
fuente
8

Muchos desarrolladores de GCC (y GCC tiene de 5 a 9 millones de líneas de código fuente, dependiendo de cómo se cuenten) sólo tiene que utilizar emacs o vicon utilidades como grep, ctagso etags, make, svn, gcc, etc.).

No necesita un IDE para desarrollar un gran software.

Si su software es lo suficientemente grande (por ejemplo, al menos 0.3 millones de líneas), incluso podría considerar personalizar GCC a través de complementos o extensiones MELT , para fines de métricas de software, navegación de software, advertencias específicas, reglas de codificación, etc.

Basile Starynkevitch
fuente
10
Esa no era la pregunta. Como señalé, uso principalmente vim (con grep, ctags, etc.). Sé lo bueno que es. Sin embargo, muchos programadores prefieren IDE
Artyom
1
Los IDE son especialmente útiles para las funciones relacionadas con la clase C ++, que son muy difíciles de configurar bien en Vim. Raw C está bien con ctags.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
6

Principalmente trabajo con Eclipse. Usé KDevelop con gran satisfacción durante años, pero ahora trabajo en proyectos multilingües (C, C ++, PHP, Java, Python, Base de datos, Web, etc.).

Ventajas de Eclipse: muchas herramientas para todo (incluido el control de versiones); funciona muy bien para verificación de sintaxis y autocompletado. Buen trabajo al compilar / construir / depurar. Es multiplataforma (Linux, Windows, Solaris, etc.)
Desventajas: algunas funciones o configuraciones son una pesadilla (por ejemplo, cuando tiene que implementar el proyecto desde su estación de trabajo en el servidor, Eclipse mantiene una especie de caché, y si piensa que el archivo en el servidor está 'actualizado', el archivo no se sobrescribe). Eclipse es enorme , ahoga la mayor parte de su CPU y agota toda su memoria. Más información en http://www.ihateeclipse.com .

KDevelop es rápido y excelente para proyectos C / C ++ y KDE / Qt, pero carece de algunas funciones como el soporte para Mercurial (KDevelop 3.3.4, no sé para versiones más recientes).

AndrewQ
fuente
4

Visual SlickEdit - comercial, como cualquier buena herramienta, "simplemente funciona". Maneja todos los idiomas bajo el sol, listos para usar, altamente configurables y, si es necesario, totalmente programables, coloca una interfaz gráfica de usuario alrededor de GDB para la depuración. Maneja proyectos muy grandes (lo uso para una base de código de 5 millones + SOLC, de los cuales juego con aproximadamente 1 millón de ellos). Ganó numerosos premios hace mucho tiempo y ha mejorado desde entonces. Intentalo

Eclipse: herramienta de elección al programar en Java, OK para cualquier lenguaje único compatible. Escrito en Java para desarrolladores Java que desarrollan programas Java. Pero necesita complementos para cada pequeña característica y característica principal. No "solo funciona" para más de un idioma a la vez.

Mattnz
fuente
4

Netbeans es un IDE lento, lento. No estamos usando "computadoras de dinosaurios", pero esto IDE HANGS durante bastante tiempo. Si accedemos al IDE de Netbeans a través de la red (por ejemplo, usando VNC), ¡entonces olvídalo! ¡El retraso es tan malo que hace que Netbeans sea inutilizable!

Encuentro que Eclipse es intimidantemente difícil de configurar para el uso inicial, pero si persevera, terminará con un IDE que tiene todo lo que pueda desear o necesitar (posiblemente a través de complementos).

No quiero usar más de un IDE, y sospecho que tú tampoco. Recomiendo Eclipse, con todas sus fallas.

Miguel
fuente
4

Entonces ... acabo de agregar otra opinión, pero no creo que pueda elegirlo como usuario vim, así que

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

En primer lugar, será el IDE más ligero (incluso puedo llamarlo sistema operativo) y más personalizable para que pueda hacer todo con un uso mínimo de recursos, excepto algunos recursos de trabajo de configuración de lisp.

Personalmente cuando tengo un proyecto serio estoy usando Visual Studio. Pero cuando necesito trabajar en Linux ejecuto emacs. (tampoco me gusta qt en absoluto)

Además (principalmente porque me gusta el complemento last.fm y el soporte de clojure allí) encontré un buen IDE para Linux (todavía intento cambiar a emacs de él == 'por algunas razones) IDEA , no recomiendo usarlo para C ++ pero tal vez tampoco está mal, así que puedes agregarlo a tu lista.

cnd
fuente
1

QT y CodeBlocks están bien. Yo uso CodeBlocks últimamente.

Se puede configurar para proyectos de archivo MAKE, la finalización del código funciona principalmente y no se cuelga como en MSVS, la definición es increíblemente rápida. La función de navegación también está bien hecha.

Hay algunos problemas menores, pero para el trabajo diario en Linux es muy bueno, en mi humilde opinión.

Descifrador
fuente
0

Mi único intento de usar un IDE en Linux sucedió en 2005, pero en ese momento ningún IDE que probé (KDevelop, eclipse, Anjuta) fue bueno, así que volví a vim + ctags + gdb y todavía lo uso para la codificación de Linux.

Nemanja Trifunovic
fuente
Probablemente usted sea el hombre que conoce la respuesta: cómo ir a la implementación de algún método en otra clase de jerarquía (implementación padre / hijo) en vim.
Sergei
por ejemplo, en Eclipse, la combinación es Ctrl + T en el nombre de un método.
Sergei
@Sergei Lo sentimos, ctags no es compatible con eso. Puede tener mejor suerte con algo como YCM: github.com/Valloric/YouCompleteMe
Nemanja Trifunovic