Los desarrolladores tienen un conjunto especial de necesidades de su sistema operativo, como el rendimiento y el acceso a una amplia gama de herramientas de desarrollo. Sabiendo esto, ¿podemos elegir la "mejor" distribución de Linux para programadores?
¿Es Linux bueno para el desarrollo de software?
Hubo un tiempo en que era habitual oír describir Linux como un sistema operativo para desarrolladores. No era recomendable para el usuario ocasional o no técnico. Tenías que ser al menos parcialmente experto en código para usar Linux. Eso puede haber sido cierto para Linux en sus primeros días, pero ese no ha sido el caso durante mucho tiempo. Distribuciones como Ubuntu, Pop!_OS y Linux Mint han allanado el camino a los recién llegados al mundo Linux.
Puede leer también | Debian GNU/Linux 30 años despues está en el corazón de las distribuciones Linux
Por supuesto, los desarrolladores también siguen aquí, porque Linux es una gran plataforma para desarrollar. Con Linux, obtienes privacidad, estabilidad y rendimiento. Tienes acceso a todas las herramientas de desarrollo que necesitas, y gratis. Tienes una selección de lenguajes de scripting flexibles en la ventana de terminal, lo que te permite automatizar los procesos de compilación, pruebas y mucho más.
Si la distribución que utilizas no tiene una herramienta determinada instalada por defecto, normalmente basta con abrir el gestor de paquetes e instalarla. Todas las partes de tu cadena de herramientas están a un solo comando de distancia.
Linux también es compatible con la contenedorización, a través de soluciones como Docker y Vagrant, y sistemas de gestión de contenedores como Kubernetes. De este modo, resulta sencillo y rápido crear y gestionar entornos aislados que utilizan muchos menos recursos que las máquinas virtuales clásicas.
Puede leer también | Lo que necesita saber sobre las distribuciones Gnu/Linux y sus Kernels
Es posible adaptar casi cualquier distribución de Linux para que sea lo que usted quiere que sea, y hay un montón de distribuciones de Linux para elegir. Pero algunas distribuciones se acercan más a lo que necesitas como plataforma de desarrollo, nada más sacarlas de la caja, lo que te ahorra algo de trabajo. Todo lo que tienes que hacer es utilizar el gestor de paquetes para completar tu cadena de herramientas y adaptarla a tu flujo de trabajo.
Dado que Linux es tan personalizable y maleable, ¿tiene siquiera sentido nominar algunas distribuciones como mejores que otras para el desarrollo? Yo creo que sí, pero tendremos que enfocarlo desde un ángulo diferente. En lugar de listar una colección de distribuciones y comparar sus pros y contras para el desarrollo, vamos a examinar lo que necesitas de tu sistema de desarrollo, y luego ver si eso pone a alguna distribución en el marco como opciones obvias.
Necesitas privacidad, estabilidad y rendimiento
Hay dos tipos de estabilidad a considerar. Una es la fiabilidad de la instancia de Linux que se ejecuta en su ordenador, ya sea en hardware, en una máquina virtual o en un contenedor. Los bloqueos del sistema y las caídas del núcleo del kernel le cuestan tiempo, generan estrés y merman su productividad.
En el peor de los casos, pueden incluso perder tu trabajo, haciendo que tengas que rehacer lo que estabas haciendo en el momento del fallo. Trabajar con una distribución de Linux defectuosa es claramente inviable. Necesitas seleccionar una distribución que sea lo más sólida posible.
Puede leer también | Las mejores distribuciones Linux basadas en GNOME
Esto nos lleva al segundo tipo de estabilidad. Necesitas considerar la estabilidad de la organización detrás de la distribución. No es necesario que sea una entidad corporativa como Canonical o Red Hat, pero sí que tenga suficientes miembros en la comunidad como para que puedas estar seguro de que no va a decaer y morir, y que los parches y actualizaciones se publican de manera oportuna para hacer frente a los problemas, errores y vulnerabilidades.
Las distribuciones con comunidades grandes y activas y muchos colaboradores tienden a identificar los problemas antes, porque tienen más ojos puestos en la distribución. También consiguen resolverlos antes porque disponen de más recursos.
Puede leer también | blendOS 3 promete compatibilidad con 9 distribuciones Linux y actualizaciones sin repositorios
Las distribuciones renovables ya cuentan con los mecanismos y procesos necesarios para distribuir parches y actualizaciones a sus usuarios antes que las distribuciones tradicionales. La otra cara de la moneda es que las distribuciones renovables pueden introducir sus propias inestabilidades. En contra de la intuición, esto no siempre es malo.
Dado que una rolling release se actualiza continuamente, recibirás una notificación lo antes posible de cualquier cambio que afecte a tu flujo de trabajo, proyecto de desarrollo o producto final. Entonces podrás contrarrestar el problema modificando tu proceso de compilación, solucionándolo en tu código, actualizando o buscando nuevas herramientas, o lo que necesites hacer.
En cuanto a las secuencias de comandos, en Linux hay mucho donde elegir. Puedes tener instalados tantos shells de terminal diferentes como quieras, y saltar entre Bash, csh, Zsh, Fish y todos los demás según tus necesidades.
Puede leer también | Análisis de distribuciones Linux: KDE Neon
Si quieres compilar proyectos complejos en un tiempo razonable, vas a necesitar un PC decente. Piensa en un procesador rápido, discos SSD y mucha RAM. Esto tendrá un gran impacto en la velocidad de tus compilaciones, mucho más que tu elección de distribución Linux. Esto no quiere decir que quieras tener una distribución hinchada y sobrecargada en tu equipo de desarrollo, no es así, pero las grandes y fáciles victorias están en el hardware.
Y si vas a utilizar contenedores o máquinas virtuales, las grandes ganancias de velocidad también van a estar en tu CPU, discos duros y RAM.
¿Tiene Linux herramientas de desarrollo?
No hay escasez de herramientas de desarrollo, frameworks e IDEs para Linux. Incluso puedes instalar Visual Studio Code, el editor de código gratuito de Microsoft.
En Linux, hay soporte para todos los lenguajes y paradigmas que puedas imaginar. De hecho, muchos de ellos comenzaron su andadura en Linux. Eso no quiere decir que los que quieras estarán preinstalados en tu ordenador Linux, pero puedes añadirlos fácilmente.
Si el paquete está en los repositorios de tu distribución, puedes instalarlo con tu gestor de paquetes. A veces se publican como FlatPak, AppImage o Snap. Si el código fuente está disponible, puedes clonar su repositorio Git (o descargar un archivo TAR) y compilar la herramienta en tu propio equipo.
Puede leer también | Las mejores distribuciones Linux Live USB que puedes usar sobre la marcha
Si esas soluciones no existen, normalmente puedes descargar un paquete de instalación desde el sitio web de la herramienta. Normalmente proporcionan descargas de archivos DEB para distribuciones basadas en Debian, archivos RPM para distribuciones derivadas de Red Hat y, a veces, archivos TAR que contienen el código fuente.
Sospechosos que se ajustan al perfil para programar en Linux
Buscamos una distribución que sea estable y no esté hinchada. No queremos cuelgues y no queremos ciclos de CPU desperdiciados en procesos de fondo innecesarios. Nuestra distribución debe tener una comunidad grande, comprometida y entusiasta. El respaldo de una corporación tampoco estaría de más.
Necesita tener repositorios bien surtidos. Si utiliza alguno de los gestores de paquetes RPM o DEB, mucho mejor. Cuando un sitio web permite descargar directamente los archivos de instalación, estos dos formatos de paquete siempre son compatibles.
Puede leer también | Las mejores distribuciones ligeras de Linux
La distribución que más se ajusta a esta descripción es Fedora. Tiene una envidiable y justificada reputación de estabilidad, cuenta con el respaldo de Red Hat, y si una pieza de software está disponible en Linux, está disponible para Fedora. También es rápido y libre de problemas de hinchazón y telemetría, algo que persigue a Ubuntu. Para empezar, vaya a la página de descarga de Fedora Workstation.
Fedora es una distribución puntual. Si prefiere una distribución continua, probablemente sea mejor optar por uno de los derivados casi desnudos de Arch, como EndeavourOS o ArcoLinux, que por el propio Arch. Los desastres siempre parecen ocurrir justo antes de las fechas límite. Si necesitas reinstalar tu sistema operativo, necesitas estar listo y funcionando en el menor tiempo posible.