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