¿IDE de C++ para Linux? [cerrado]
Quiero ampliar mis horizontes de programación a Linux. Un conjunto de herramientas básico bueno y confiable es importante, y ¿qué es más básico que un IDE?
Pude encontrar estos temas SO:
- IDE ligero para Linux y
- ¿Qué herramientas utiliza para desarrollar aplicaciones C++ en Linux?
No estoy buscando un IDE ligero . Si un IDE vale la pena, entonces lo pagaré, por lo que no tiene por qué ser gratuito.
Mi pregunta entonces:
¿De qué sirve el IDE de programación C++ disponible para Linux?
Los mínimos son bastante estándar: resaltado de sintaxis, finalización de código (como intellisense o su contraparte Eclipse) y depuración integrada (por ejemplo, puntos de interrupción básicos).
Lo he buscado yo mismo, pero hay tantos que es casi imposible separar los buenos de los malos a mano, especialmente para alguien como yo que tiene poca experiencia en codificación C++ en Linux. Sé que Eclipse es compatible con C++ y realmente me gusta ese IDE para Java, pero ¿es bueno para C++ y hay algo mejor?
La segunda publicación en realidad tiene algunas buenas sugerencias, pero lo que me falta es qué hace exactamente que el IDE sugerido sea tan bueno para el usuario, ¿cuáles son sus (des)ventajas?
Por lo tanto, tal vez mi pregunta debería ser:
¿Qué IDE propones (dada tu experiencia) y por qué?
Inicialmente: confusión
Cuando escribí originalmente esta respuesta, recientemente hice el cambio de Visual Studio (con años de experiencia) a Linux y lo primero que hice fue intentar encontrar un IDE razonable. En aquel momento esto era imposible: no existía ningún buen IDE.
Epifanía: UNIX es un IDE. Todo ello. 1
Y luego me di cuenta de que el IDE en Linux es la línea de comando con sus herramientas:
- Primero configuras tu shell
- Bash, en mi caso, pero mucha gente prefiere
- pescado o
- (Oh Dios) Zsh ;
- y su editor; Elige tu veneno: ambos son de última generación:
- Neovim 2 o
- Emacs .
Dependiendo de tus necesidades, tendrás que instalar y configurar varios complementos para que el editor funcione bien (esa es la parte molesta). Por ejemplo, la mayoría de los programadores de Vim se beneficiarán del complemento YouCompleteMe para el autocompletado inteligente.
Una vez hecho esto, el shell es su interfaz de comando para interactuar con las diversas herramientas: depuradores (gdb), perfiladores (gprof, valgrind), etc. Usted configura su proyecto/entorno de compilación usando Make , CMake , SnakeMake o cualquiera de los diversos alternativas. Y administras tu código con un sistema de control de versiones (la mayoría de la gente usa Git ). También usa tmux (anteriormente también pantalla) para multiplexar (= pensar en varias ventanas/pestañas/paneles) y conservar su sesión de terminal.
El punto es que, gracias al shell y algunas convenciones de escritura de herramientas, todas se integran entre sí . Y de esa manera, el shell de Linux es un entorno de desarrollo verdaderamente integrado , completamente a la par de otros IDE modernos. (Esto no significa que los IDE individuales no tengan características de las que la línea de comando pueda carecer, pero lo contrario también es cierto).
A cada cual lo suyo
No puedo exagerar lo bien que funciona el flujo de trabajo anterior una vez que haya adquirido el hábito. Pero algunas personas simplemente prefieren los editores gráficos, y en los años transcurridos desde que se escribió originalmente esta respuesta, Linux ha obtenido un conjunto de excelentes IDE gráficos para varios lenguajes de programación diferentes (pero no, hasta donde yo sé, para C++). Pruébalos incluso si, como yo, terminas sin usarlos. He aquí sólo una pequeña y sesgada selección:
- Para el desarrollo de Python, existe PyCharm
- Para R, está RStudio
- Para JavaScript y TypeScript, existe Visual Studio Code (que también es un buen editor completo)
- Y finalmente, a mucha gente le encanta el editor Sublime Text para la edición de código general.
Tenga en cuenta que esta lista está lejos de ser completa.
1 Robé ese título del comentario de dsm.
2 Solía referirme a Vim aquí. Y aunque Vim simple sigue siendo más que capaz, Neovim es un reinicio prometedor y ha modernizado algunas viejas verrugas.
Mi favorito personal es el IDE CodeLite 2.x.
ver: http://www.codelite.org
La decisión de utilizar CodeLite se basó en una investigación sobre el siguiente IDE de C++ para Linux:
- Eclipse Galileo con el complemento CDT
- NetBeans 6.7 (que también es la base del IDE de SunStudio)
- KDesarrollar4
- Bloques de código 8.02
- CódigoLite 2.x
Después de todo, he decidido utilizar CodeLite 2.x.
A continuación, enumero algunos pros y contras de los IDE de C++ mencionados. ¡Tenga en cuenta que esto refleja únicamente mi opinión personal!
EDITAR : qué lástima que SOF no admita tablas, así que tengo que escribir en párrafos...
Eclipse Galileo con el complemento CDT
Ventajas:
- razonablemente rápido
- también es compatible con Java, Perl (con complemento EPIC)
- comúnmente usado y bien mantenido
- también disponible para otros tipos de sistemas operativos (Windows, MacOS, Solaris, AIX(?))
Contras:
- La GUI es muy confusa y algo inconsistente, nada intuitiva
- peso pesado
- Solo admite CVS (AFAIK)
NetBeans 6.7 (tenga en cuenta que esta también es la base para SunStudio IDE)
Ventajas:
- Una de las GUI más intuitivas que he visto jamás.
- también es compatible con Java, Python, Ruby
- integra CVS, SVN, Mercurial
- comúnmente usado y bien mantenido
- también disponible para otros tipos de sistema operativo (Windows, MacOS, Solaris)
Contras:
- extremadamente lento
- peso pesado
- utiliza espacios para sangría, que no es la política en mi trabajo. Estoy seguro de que esto es configurable, pero no pude encontrar cómo hacerlo.
KDevelop4 (nota: no le hice muchas pruebas)
Ventajas:
- comúnmente utilizado en Linux
- integra CVS, SVN, Mercurial
Contras:
- la GUI parece algo pasada de moda
- peso pesado
- muy específico para el entorno KDE
CodeBlocks 8.02 (nota: no hice muchas pruebas)
Ventajas:
- razonablemente rápido
Contras:
- la GUI parece algo pasada de moda (aunque tiene una bonita pantalla de inicio)
- las fuentes en el editor son muy pequeñas
- algunos iconos (por ejemplo, los iconos relacionados con el depurador de inicio/paso a paso) son muy pequeños
- sin integración de control de fuente
CodeLite 2.x (nota: este es mi favorito personal)
Ventajas:
- la mejor GUI intuitiva y de aspecto moderno que he visto en Linux
- ligero
- razonablemente rápido
- integra SVN
- también disponible en otras versiones de sistema operativo (Windows, MacOS, Solaris(?))
Contras:
- sin integración CVS (eso es importante para mí porque tengo que usarlo en el trabajo)
- no hay soporte para Java, Perl, Python (sería bueno tenerlo)