Opinión
Pequeños lenguajes esenciales para el futuro de la programación
Durante los últimos años, los lenguajes de alto nivel han dominado la programación del desarrollo de software, como Python, Java, C, C++ o JavaScript. Estos lenguajes, cada uno con su propósito y capacidad de resolver determinados problemas, han permitido la creación de prácticamente todo el espacio digital como lo conocemos hoy. Sin embargo, a medida que la tecnología avanza, el código de los sistemas de software se vuelve cada vez más grande y complejo, lo que actúa en detrimento de la productividad y la eficiencia en la programación. En este contexto, surge la necesidad de simplificarlos y en el futuro veremos un mayor uso de los «pequeños lenguajes», más conocidos como DSL o lenguajes específicos de dominio, diseñados para resolver problemas muy específicos y que ayudarán a facilitar el mantenimiento.
Actualmente, la comunidad de ingenieros de software se enfrenta a un desafío que crece debido al aumento del tamaño y complejidad del código, por un lado, y por otro, el alto crecimiento en el número de aplicaciones existentes, y todo ello mientras la capacidad para comprender las grandes bases de código sigue siendo, en gran medida, limitada.
En “The Emergence of Big Code”, una encuesta realizada por Sourcegraph, la mayoría de los programadores estimaron que su base de código había crecido entre 100 y 500 veces en los últimos diez años, y que el tamaño de su base de código causaba ruptura de código por cuestiones como aumento de la deuda técnica, falta de comprensión de las dependencias, dificultad a la hora de realizar cambios (mantenimiento o correcciones) e incluso dificultad creciente a la hora de incorporar nuevos empleados que pudieran adquirir competencias para mantener dicho código en tiempo razonable.
Pero, ¿de dónde procede todo este código? Tradicionalmente y, sobre todo si pensamos en aplicaciones monolíticas, la forma en la que se ha construido el software se ha basado en “apilar” nuevas funciones a un programa sobre lo que ya se tiene, de forma parecida a como se construye una pirámide, añadiendo más líneas de código. En este sentido, muchas empresas, especialmente las grandes en las que están presentes este tipo de situaciones, tienen ante sí un reto al que han de prestar atención.
Una de las posibles soluciones a plantear, pasaría por definir un sistema capaz de simplificar el código aplicando un DSL a través de dos aproximaciones posibles:
- DSL Interno, para el que se utilizaría el mismo lenguaje de programación de la aplicación aplicando características propias de ese lenguaje y técnicas como el encadenamiento de métodos y la sobrecarga de operadores.
- DSL Externo, a través de la creación o uso de un lenguaje independiente y específico para un dominio particular, contando con su propia sintaxis y reglas (como por ejemplo aquellos que construyen SQL para consultas a BBDD o HTML para estructura de páginas).
Cada vez resulta más importante el abordar, y con premura, el desafío que supone el “Big Code” y encontrar nuevos enfoques orientados a la resolución de problemas y que además permitan limitar o incluso reducir este volumen de código, especialmente en un contexto en el que grandes y pequeñas empresas necesitan ser más eficientes en el proceso de desarrollo y mantenimiento de sus productos.
Nunca es un proceso sencillo y, en este sentido, los pequeños lenguajes se erigen como una de las opciones para dar con la solución al problema del “Big Code”, y en los próximos años ganarán relevancia, pues son soluciones específicas para problemáticas concretas con una menor curva de adopción y aprendizaje.
Firmado: Íñigo Chaso Rico, BDM para la Industrialización del SDLC en knowmad mood
-
OpiniónHace 6 días
10 predicciones para los proveedores de servicios gestionados en 2025
-
NoticiasHace 2 días
El Capitan es el nuevo superordenador más potente y rápido del mundo
-
NoticiasHace 6 días
La Comisión Europea multa a Meta con 798 millones por perjudicar a la competencia de Marketplace
-
NoticiasHace 6 días
AMD despedirá al 4% de su plantilla mientras se centra en IA y centros de datos