¿Cuáles son las ventajas del desarrollo de C ++ en Linux sobre Windows?

(Desarrollo bajo Windows, Linux y OSX. Prefiero Linux ya que puedo ser mucho más productivo).

Linux es un sistema operativo desarrollado por desarrolladores para desarrolladores, en el sentido más amplio del término. A través del shell, las herramientas se integran entre sí para el desarrollo de una manera que simplemente no lo hacen en otros sistemas operativos. (Quizás Mac puede ser similar, pero el trabajo de shell en una Mac me parece “piratería informática”).

Los IDE en Windows (MSVS) generalmente están restringidos a “solo desarrollo de software”. Lo mismo con XCode en Mac. Tal vez obtenga algunas herramientas de repositorio o SCM, pero en su mayor parte se trata de construir un ejecutable, no construir un producto de software.

En Linux, todo el sistema operativo es la cadena de herramientas. Como parte de su proceso de compilación, verifica los cambios en los activos como audio o gráficos y actualiza en consecuencia, puede formatear los activos (es decir, hacerme una compilación con videos tutoriales MP4 con una nueva resolución), cargar y descargar desde servidores, enviar notificaciones etc.

En Linux también es probable que tenga código fuente para cada biblioteca con la que se vincule su aplicación. Es fácil rastrear errores que no están en su código.

También tendrá controladores de dispositivo de depuración con fuente y puede hacer cosas como los mensajes del bus de registro. Mucho más fácil si estás tratando de descubrir por qué tu software no funciona con un dispositivo en particular.

Hay muchas más opciones de biblioteca en Linux. ¿Necesitas una interfaz gráfica de usuario? Hay como 100 de ellos. Todo gratis y con fuente.

Los enlaces simbólicos también son mucho más fáciles de usar en Linux y potentes para el desarrollo. (Windows no los tuvo por MUCHO tiempo. Los cajeros automáticos siguen siendo limitados). Desea probar una nueva versión de un compilador, un conjunto diferente de encabezados, diferentes versiones de objetos compartidos (“.dll”), una versión radicalmente modificada versión de algún subdirectorio fuente mientras se mantiene el original? Una ‘ln -s’ para crear un enlace simbólico y una ‘rm’ para eliminarlo y revertirlo.

Casi todos los sabores de Linux tienen un compilador C ++ incorporado, así como todo tipo de herramientas de enlace y editores que son gratuitos de instalar o vienen preinstalados. Normalmente, las máquinas con Windows requieren un software externo de terceros para compilar código C ++ que puede o no costar dinero. Linux generalmente está basado en terminales, lo que permite un desarrollo mucho más rápido siempre que uno se sienta cómodo con los comandos necesarios. Si no está familiarizado con las opciones comunes de línea de comandos, puede utilizar un editor como Eclipse, que también es gratuito.

Mayor probabilidad de portabilidad a otros sistemas operativos de la familia UNIX, como FreeBSD, Darwin, Solaris. Hay una mayor coherencia entre los compiladores y las bibliotecas en los sistemas tipo UNIX que en las plataformas propietarias, especialmente cuando las bibliotecas están disponibles para múltiples plataformas.