El desarrollador típico ya no necesita poseer el mismo nivel de conocimientos de Linux que tenía en el pasado. Aquí te explico las razones.
Durante décadas, las habilidades de Linux fueron un recurso fundamental para prácticamente todos los desarrolladores. A menos que te hayas centrado exclusivamente en la creación de aplicaciones de escritorio para Windows, la familiaridad con las herramientas de interfaz de línea de comandos (CLI) de Linux, las convenciones del sistema de archivos y las rutinas de administración del sistema era importante para programar aplicaciones, dado que muchas de esas aplicaciones estarían alojadas en servidores Linux.
Podría decirse, sin embargo, que las habilidades de Linux son menos importantes para los programadores de la actualidad. Todavía es útil tenerlos, pero ya no son la base de conocimiento esencial que alguna vez fueron.
Desarrollo de software y Linux: una breve historia
Para comprender lo que ha cambiado, comencemos observando cómo solían ser las cosas.
Históricamente, los desarrolladores necesitaban conocimientos de Linux porque, independientemente de los sistemas que ejecutaran los usuarios finales. Recordemos que los entornos de alojamiento de aplicaciones a menudo consistían en servidores que ejecutaban Linux (o algún otro sistema operativo similar a Unix cuyas convenciones y herramientas eran similares a las de Linux).
La mayoría de los sitios web y las aplicaciones web están alojados en Linux u otros servidores similares a Unix. Las aplicaciones de Android se ejecutan en un sistema operativo que es más o menos una forma de Linux. Y cualquier aplicación diseñada para ser multiplataforma y ejecutarse localmente debe funcionar en Linux si quiere ser digna del apodo de "multiplataforma".
Por estas razones, los desarrolladores necesitaban saber cómo trabajar con las herramientas de línea de comandos de Linux, administrar archivos en un sistema Linux, instalar paquetes de Linux, etc., si iban a probar el software antes de la implementación. Los desarrolladores incluso necesitaban conocer Linux si se esperaba que desempeñaran un papel en la implementación y administración del software posterior a la implementación.
Por qué Linux importa menos para los programadores de la actualidad
Hoy, sin embargo, conocer Linux se ha vuelto menos crucial, por varias razones.
1. Implementaciones de aplicaciones sin servidor y PaaS
Lo primero y más importante es el auge de la plataforma como servicio (PaaS) y los servicios informáticos sin servidor. Ambos tipos de soluciones hacen posible hospedar aplicaciones sin preocuparse mucho por la infraestructura de hospedaje subyacente o el sistema operativo.
Si implementas tu aplicación en un
servicio PaaS como Heroku, por ejemplo, o la ejecutas como funciones sin
servidor en AWS Lambda, no tendrás que interactuar mucho directamente con un
entorno Linux para probarla e implementarla, incluso si termina alojada en
servidores Linux. En su lugar, puedes confiar principalmente en las
herramientas de tu PaaS o plataforma sin servidor para aprovisionar servidores
Linux y ejecutar la aplicación en ellos.
2. Subsistema de Windows para Linux
Otro cambio de juego importante para la relación de los desarrolladores con Linux fue la llegada del Subsistema de Windows para Linux (WSL), un framework que hace posible ejecutar aplicaciones Linux "de forma nativa" en un sistema Windows.
Por supuesto, el uso de WSL requiere cierto nivel de conocimientos de Linux porque el objetivo del subsistema es emular un entorno nativo de Linux dentro de Windows. Pero debido a que el entorno está integrado en Windows, el nivel de experiencia en Linux que exige de los desarrolladores es menor.
No necesitan habilidades de administración de sistemas Linux a gran escala o la capacidad de trabajar con administradores de paquetes Linux convencionales, por ejemplo. En su mayoría, sólo necesitan conocer las herramientas básicas de la CLI de Linux.
3. Macs como cajas de desarrollo
Otra forma de acceder a las utilidades principales de Linux sin ejecutar realmente Linux es usar macOS. Aunque algunas herramientas que los desarrolladores encontrarán en una Mac no son idénticas a las de los sistemas Linux y macOS carece de compatibilidad binaria con Linux, ambos sistemas ofrecen acceso a las mismas herramientas básicas de Unix. También administran archivos y usuarios de la misma manera.
Este ha sido el caso desde que Apple adoptó un sistema operativo similar a Unix para alimentar sus computadoras, por supuesto. Pero lo que ha cambiado es que la participación de mercado de macOS ha aumentado constantemente.
En la década de 1990, pocos desarrolladores usaban Mac porque pocas personas en general usaban Mac. Pero ahora que el sistema operativo de Apple está muy extendido, es una solución más obvia para los programadores que quieren un entorno tipo Unix para escribir y probar aplicaciones pero que no quieren usar Linux.
Las habilidades de Linux siguen siendo importantes
Nada de lo anterior quiere decir que Linux ya no importa en absoluto para la mayoría de los desarrolladores. Una comprensión de Linux siempre es beneficiosa. Y es absolutamente fundamental para los programadores que crean aplicaciones que se implementarán directamente en servidores Linux, sin abstracciones ni servicios administrados, para reducir la cantidad de experiencia en Linux requerida para probar, implementar y administrar esas aplicaciones.
Pero, en general, los desarrolladores de hoy no necesitan saber tanto sobre Linux como antes. El desarrollador típico puede salirse con la suya con una solución como el Subsistema de Windows para Linux o elegir un servicio de alojamiento que proporcione acceso a entornos Linux sin necesidad de conocimientos tradicionales de administración de sistemas Linux.
Linux está dejando de ser popular entre programadores
Fuente: ITProToday