La IA transforma la investigación en lenguajes de programación

El artículo argumenta que la investigación en lenguajes de programación (PL) no está en declive, sino que entra en una nueva era de exploración impulsada por la inteligencia artificial. El autor, un investigador de la academia, critica la narrativa de crisis existencial que circula en la comunidad a

Diferencias fundamentales entre typeclasses y sistemas de módulos

Los sistemas de programación modernos presentan una confusión persistente entre los typeclasses, presentes en lenguajes como Haskell o Rust, y los sistemas de módulos, típicos de OCaml. Aunque ambos mecanismos comparten una base técnica común, sus objetivos semánticos son distintos. Los typeclasses

Sweetener: macros para TypeScript que permiten personalizar el código

El proyecto Sweetener introduce macros para TypeScript, una herramienta que permite a los desarrolladores definir constructos de lenguaje personalizados, rompiendo con la tradición de lenguajes de programación rígidos. Este enfoque responde a la creciente flexibilidad del software moderno, donde las

Cómo evolucionarán los lenguajes de programación en la era de la IA

El artículo explora las implicaciones de la inteligencia artificial en la evolución de los lenguajes de programación, centrándose en dos ejes: la reflexión sobre el impacto en las comunidades y ecosistemas, y la propuesta de herramientas más robustas para agentes de código. El autor argumenta que, s

Reglas de diseño para lenguajes de programación y sus configuraciones

El artículo propone un conjunto de directrices fundamentales para el diseño de nuevos lenguajes de programación y sus sistemas de configuración, argumentando que estas decisiones deben tomarse desde el inicio para evitar problemas de compatibilidad y usabilidad. El autor destaca la importancia de re

C*: un lenguaje que une programación y verificación en C

Investigadores presentan C*, una extensión del lenguaje C que incorpora de forma nativa capacidades de verificación formal, con el objetivo de acercar las prácticas de demostración de correctitud a los programadores de sistemas. El trabajo, publicado en arXiv el 3 de abril de 2025, aborda una de las

Rust: cuando el tipo vacío no es el tipo bottom

El tipo `!` (never) se añadió recientemente a Rust como anotación válida en cualquier posición del código, con su estabilización prevista para Rust 1.100. Aunque suele presentarse como el tipo bottom de la teoría de tipos, el artículo explica que en Rust se trata en realidad del tipo vacío, no del t

Por qué los argumentos de función no son colores de función

Este ensayo técnico distingue entre dos tipos de cambios que puede sufrir una función en una pila de llamadas. Un cambio "normal" —como añadir un parámetro— afecta solo al llamador directo y puede encapsularse mediante programación estructurada; en la práctica, la cadena de propagación suele rompers

La inferencia de tipos tiene problemas de usabilidad

La inferencia de tipos —la capacidad de un compilador de deducir automáticamente el tipo de una variable a partir de una asignación, sin que el programador lo declare— se ha convertido en una característica estándar en los lenguajes modernos. Go, Rust, Swift, Scala, Kotlin, Zig o Nim la incluyen de

Python Iceberg: trampas y sorpresas del lenguaje que enganchan a programadores

Python Iceberg es un recopilatorio didactico de comportamientos del lenguaje Python que parecen evidentes a primera vista pero esconden resultados inesperados. La pagina reune, en formato de fichas breves, decenas de casos donde la sintaxis habitual produce errores sutiles o directamente fallos de s

Métodos genéricos en Go 1.27: la limitación que duró desde 2022

Go 1.27 elimina una antigua restricción del lenguaje: los métodos ya pueden declarar sus propios parámetros de tipo sin necesidad de añadirlos al struct receptor. Hasta ahora, quien quisiera implementar, por ejemplo, un método Map que transformara un nodo genérico Node[T] en otro de tipo U estaba ob

Los LLM hacen viables lenguajes 'duros' como Rust y Zig

La irrupción de los modelos de lenguaje grandes está cambiando los criterios con los que los desarrolladores eligen un lenguaje de programación. Históricamente, la familiaridad con la sintaxis y las peculiaridades de cada lenguaje suponía una barrera de entrada importante, pero los agentes basados e

Introducción amigable a Racket: el dialecto de Lisp para crear lenguajes

Racket es un lenguaje de la familia Lisp nacido en 1995 como PLT Scheme en el grupo de Matthias Felleisen y rebautizado en 2010. Su apuesta diferencial es la programación orientada al lenguaje: si un problema exige su propia sintaxis, Racket permite definirla en cuestión de horas. El artículo recorr

Russ Cox explica cómo la simplicidad impulsó el crecimiento de Go

Russ Cox, responsable principal del desarrollo de Go durante una década, explica que el lenguaje nació en 2007 para responder a los problemas de ingeniería de Google: grandes bases de código, miles de ingenieros, redes de máquinas y procesadores multinúcleo. Go fue diseñado desde cero para mejorar l

Los obstáculos reales que impiden reemplazar al lenguaje C

El lenguaje C no solo es un estándar sintáctico: es todo un ecosistema de herramientas, compiladores, analizadores estáticos y soporte multiplataforma consolidado durante décadas. Sustituirlo exige que la alternativa aporte mejoras tangibles que justifiquen rehacer la cadena de producción. Este artí

El código como artefacto y la persistencia de los lenguajes de programación

La irrupción de los modelos de lenguaje agénticos está replanteando qué se entiende por "código" dentro del ciclo de vida del software. Hasta ahora el código era el producto final de la ingeniería de software; sin embargo, los LLM ya pueden generarlo de múltiples formas a partir de una especificació

Hacia una informática que no privilegie el inglés: el reto de Nasser

Ramsey Nasser, diseñador de juegos, artista y educador, sostiene que toda herramienta de programación moderna exige conocimientos de inglés, lo que perpetúa una ventaja cultural difícil de justificar. En su charla, presentada como respuesta al artículo seminal de Alan Kay de 1972 «A Personal Compute

La experiencia de programar en Zig viniendo de Rust: una comparativa práctica

Un desarrollador con siete años de experiencia en Rust relata su transición a Zig al reimplementar en este lenguaje la librería jsonpath-rust, un procesador del lenguaje de consulta JSONPath definido en RFC 9535. El nuevo proyecto, llamado zig-jsonpath, le sirvió como banco de pruebas para comparar

λλ: un lenguaje de programación para fotónica de silicio

λλ es un lenguaje de programación diseñado específicamente para programar interruptores fotónicos de silicio, un tipo de hardware óptico usado en centros de datos de alta velocidad y en computación analógica en red. Su elemento diferenciador es un sistema de tipos lineales que codifica las restricci

Historias fascinantes de la informática reunidas en una sola lista

El programador y divulgador Al Sweigart ha publicado en su blog una amplia recopilación de anécdotas, fallos y conceptos decisivos en la historia de la informática y el desarrollo de software. La lista parte del célebre comentario de Tony Hoare sobre la invención de la referencia nula como su «error

Jaithon: un lenguaje dinámico con máquina virtual y compilador propio

Jaithon es un lenguaje de programación dinámico con recolección de basura y una máquina virtual de bytecode. Combina la arquitectura de Java con la sintaxis inspirada en Rust, Python y JavaScript, y todo su código está escrito mayoritariamente en sí mismo (es bootstrapped), lo que facilita añadir nu

Writergate: la reorganización del sistema de E/S en Zig

Writergate es el nombre informal con el que la comunidad de Zig bautizó la profunda reforma de la interfaz de entrada y salida del lenguaje, iniciada a finales de 2023 y culminada en agosto de 2025 con la eliminación completa de GenericWriter, GenericReader, AnyWriter y AnyReader. El cambio afecta a

Roc se acerca a su primera versión numerada 0.1.0

El lenguaje de programación Roc avanza hacia su primera versión numerada, la 0.1.0, según avanzó Richard Feldman en una charla organizada por el canal Func Prog Sweden. Roc es un lenguaje diseñado para programación funcional con ambiciones de cubrir casos de uso típicos de Go, Rust y los entornos de

C3 0.8.3 introduce los feature flags con el atributo @feat

C3, lenguaje de programación de sistemas derivado de C, ha publicado la versión 0.8.3, cuya novedad principal es el atributo @feat, destinado a sustituir al antiguo @if en las declaraciones de nivel superior. Hasta ahora, @if aceptaba cualquier expresión constante en tiempo de compilación, lo que ob

Por qué usar Lisp como objetivo del código generado por IA

Este artículo explica por qué un programador veterano de Common Lisp elige ese lenguaje como destino del código que genera con un modelo de lenguaje, en lugar de recurrir a opciones más populares como Python, TypeScript o Java. La tesis central es que la popularidad de un lenguaje es un mal indicado

Por qué Go encaja en el desarrollo de software asistido por IA

El desarrollo de software atraviesa un cambio de paradigma: las herramientas de IA generan grandes bloques de código, pero los humanos siguen siendo responsables de revisarlos, depurarlos, definir la arquitectura y garantizar la fiabilidad del sistema. En este nuevo escenario, la productividad de un

Choral: un lenguaje para programar coreografías distribuidas

Choral es un lenguaje de programación orientado a objetos diseñado para especificar coreografías, es decir, protocolos multiparte que definen cómo varios roles (los clásicos Alice, Bob, Carol…) deben coordinarse para llevar a cabo una tarea conjunta. Su objetivo es simplificar la construcción de sis

Hacia la enumeración bottom-up en miniKanren mediante poda y memoización

Un artículo preprint publicado en arXiv propone dos combinadores de biblioteca sobre miniKanren para trasladar la enumeración ascendente (bottom-up) con deduplicación observacional —técnica habitual en los sintetizadores relacionales programa-a-ejemplo (PBE)— al ámbito de la programación lógica rela

Futhark incorpora funciones recursivas tras casi una década sin ellas

Futhark, un lenguaje funcional orientado a la computación paralela sobre datos, ha carecido de soporte para funciones recursivas durante casi toda su existencia. La ausencia no respondía a una postura ideológica contra la recursión —el propio compilador contiene definiciones recursivas—, sino a la f

Los lenguajes de programación son herramientas de autoría para plataformas

Este ensayo sostiene que los lenguajes de programación deben entenderse, ante todo, como herramientas de autoría para plataformas, y no únicamente como productos académicos definidos por su paradigma o su sistema de tipos. La argumentación se organiza en torno a tres preguntas: por qué se crea un le

Verse: ¿un nuevo lenguaje de scripting para el Unreal Engine 6?

El vídeo del canal Logan Smith analiza Verse, el lenguaje de scripting que Epic Games está desarrollando para sustituir al sistema de Blueprints en Unreal Engine 6. El autor parte de una pregunta provocadora: ¿tiene sentido aprender un nuevo lenguaje de programación en plena era de la inteligencia a

Paralelización de compiladores: ¿en proceso o multiproceso?

Un diseñador de un nuevo lenguaje de programación plantea una pregunta abierta sobre arquitectura de compiladores: ¿por qué los lenguajes modernos optan por compiladores paralelos en lugar de generar procesos independientes por cada archivo, como hace C? La motivación es pragmática: persigue tiempos

AP8L: un lenguaje inspirado en APL que se ejecuta dentro de PICO-8

AP8L es un lenguaje de programación inspirado en APL e integrado dentro de PICO-8, la consola virtual de creación de juegos. No es totalmente compatible con APL/360, aunque reproduce casi todas sus capacidades y adopta principios modernos como el indexado por eje principal (leading-axis). El entorn

Camino a Lisp: una guía para elegir dialecto

Lisp no es un único lenguaje, sino una familia con más de veinte dialectos que comparten una sintaxis fundamental pero divergen en operadores, bibliotecas y capacidades. Esta guía, primera entrega de una serie, ayuda a principiantes a superar la indecisión inicial: cualquier dialecto enseña los conc

Solod (So): un subconjunto estricto de Go que compila a C

Solod (So): un subconjunto estricto de Go que compila a C En un ecosistema saturado de nuevos lenguajes de programación que prometen ser "como Go pero con más características" o "como Rust pero más simples", Solod (So) irrumpe con una propuesta radicalmente diferente: no añade complejidad, sino que

El puntero nulo y el espacio de direcciones sin memoria

El concepto de puntero nulo resulta conceptualmente extraño si se examina más allá de su función de seguridad: se trata de un único valor insertado dentro de un tipo puntero que, en lugar de almacenar una dirección, transmite información semántica distinta según el contexto. En C suele señalar un er

Julia y el problema de los dos lenguajes en la computación científica

La computación científica arrastra desde hace décadas un dilema conocido como el problema de los dos lenguajes: los investigadores prototipan en Python por su facilidad, pero reescriben las partes críticas en C++ o Rust para ganar rendimiento, porque Python resulta demasiado lento. En 2012, cuatro c

Construyamos un intérprete sencillo de APL en Python (parte 1)

El programador Rodrigo Girão Serrão inicia una serie de artículos en los que documenta paso a paso la construcción de un intérprete para el lenguaje APL escrito en Python. El proyecto, inspirado en la serie «Let's build a simple interpreter» de Ruslan Spivak (centrada en Pascal), nace como un ejerci

Rust 1.97.0 adopta el esquema de mangling v0 por defecto en stable

El equipo de Rust publicó la versión 1.97.0 del lenguaje de programación, disponible mediante `rustup update stable`. La novedad principal es la activación por defecto del esquema de mangling v0, específico de Rust, que sustituye al basado en el ABI de Itanium. Hasta ahora, este esquema solo podía h

El autor de Zig opina sobre el cambio de Bun de Zig a Rust

Andrew Kelley, creador del lenguaje Zig y presidente de la Zig Software Foundation (ZSF), publica una larga reflexión sobre la decisión de Jarred Sumner, responsable de Bun, de reescribir el proyecto en Rust tras la adquisición de Bun por Anthropic. Kelley relata la evolución de su relación con Sumn

Fortran en el siglo XXI: pervivencia, declive y necesidad de modernización

A pesar de los repetidos anuncios de su defunción, Fortran sigue siendo, casi siete décadas después de su creación, el lenguaje de referencia para aplicaciones científicas y de ingeniería a gran escala y masivamente paralelas en supercomputadores. Ningún lenguaje moderno —ni C ni C++— compite con él

Una nueva perspectiva sobre el manejo de errores en Rust

Rust dispone de múltiples estrategias para tratar errores en una función: provocar un pánico con `expect`, devolver un `Option<T>`, retornar un `Result<T, E>` enriquecido con contexto, o recuperar la ejecución sustituyendo el valor fallido por uno por defecto (por ejemplo, `unwrap_or(0)`). Esta últi

Volviendo a Zig: de Rust a Zig tras seis años

Un programador que abandonó Zig por Rust en 2020 por la inestabilidad del lenguaje y la inmadurez de su ecosistema narra su regreso a Zig en 2026. Asegura que, aunque el lenguaje sigue siendo inestable —la versión 0.17 romperá sistemas de compilación— y conserva muchos de sus problemas de antaño, su

Rhombus: metaprogramación flexible con sintaxis tipo Python

Rhombus es un lenguaje de programación reciente que combina la potencia de la metaprogramación de Racket con una sintaxis sencilla inspirada en Python, basada en indentación y el delimitador ":". Su núcleo se distribuye bajo licencia MIT o Apache 2.0 y se ejecuta sobre el runtime de Racket, lo que l

Contraejemplos en sistemas de tipos: una colección de casos sutiles

Counterexamples in Type Systems es una obra de referencia compilada por Stephen Dolan —con colaboraciones reconocidas de Andrej Bauer, Leo White y Jeremy Yallop— que reúne treinta y un contraejemplos cuidadosamente seleccionados para ilustrar los puntos delicados, las trampas y las excepciones de lo

Alan Kay aclara el significado original de «programación orientada a objetos»

Dos correos electrónicos enviados por Alan Kay —aclamado coinador del término «object-oriented programming»— a Stefan Ram en julio de 2003 arrojan luz sobre el sentido original de la orientación a objetos. En el primero, fechado el 23 de julio, Kay sitúa la primera mención pública del concepto hacia

El operador 'or' en guards de Elixir no es conmutativo

Los guards de Elixir permiten componer comprobaciones con los operadores booleanos `and` y `or`, pero su comportamiento difiere del esperado cuando se invierte el orden de las cláusulas. La entrada analiza un módulo de ejemplo con dos funciones, `Foo.a/1` y `Foo.b/1`, cuyas guardas son idénticas sal

Hybrid ClojureScript: un lenguaje que combina código textual y visual

Los lenguajes de programación dominantes obligan a los desarrolladores a expresar ideas geométricas de dominio específico únicamente mediante texto lineal. Un artículo reciente propone una solución: lenguajes híbridos que permitan crear construcciones sintácticas visuales combinables con el código t

Rhombus 1.0: un nuevo lenguaje de programación extensible sobre Racket

Rhombus es un lenguaje de programación de propósito general, funcional, dinámico y extensible que acaba de alcanzar su versión 1.0. Está construido sobre Racket, del que hereda herramientas como el entorno DrRacket y la suite de línea de comandos raco, y se activa simplemente iniciando un módulo con

La programación en 1992 según un texto recuperado de hace más de tres décadas

Un texto escrito en 1992, recuperado al ordenar un despacho, reflexiona sobre por qué los problemas de la programación informática no se habían resuelto pese a los avances en compiladores. Para ilustrarlo, su autor recurría a un caso de IBM: en la década de 1970, la compañía decidió sustituir su com

Cómo escribir un intérprete de Lisp en Python

Este artículo es un tutorial paso a paso para construir un intérprete de Scheme (un dialecto de Lisp) utilizando Python. El texto parte de la premisa de Steve Yegge según la cual, si no se sabe cómo funcionan los compiladores, no se entiende de verdad cómo funcionan los ordenadores, y aplica esa ide

CS 6120 de Cornell: curso autoguiado y abierto sobre compiladores avanzados

CS 6120 es un curso de nivel doctoral de la Cornell University, impartido por Adrian Sampson, que ahora se ofrece como itinerario autoguiado y abierto en la web. El programa aborda la implementación de lenguajes de programación desde una perspectiva tanto clásica como de investigación: representacio

Se estrena en YouTube 'C++: The Documentary', crónica de 40 años del lenguaje

El documental 'C++: The Documentary' se estrenó hoy en YouTube con un recorrido por los 40 años de historia del lenguaje de programación C++, desde su creación en los laboratorios Bell de AT&T a manos de Bjarne Stroustrup hasta su actual adopción global. El filme reúne a figuras clave del lenguaje y

SQL, el lenguaje que premia a quien se queda quieto

El artículo argumenta que SQL es el único lenguaje de programación que un desarrollador puede aprender una vez y usar durante décadas sin necesidad de reescribir su modelo mental. La razón, explica el autor, es que SQL se sostiene sobre el álgebra relacional, una rama de las matemáticas que no tiene

Mis impresiones tras un mes programando en Clojure

Tras un mes utilizando Clojure para reconstruir su sitio web personal, el autor comparte sus impresiones sobre el lenguaje y por qué piensa seguir con él. El autor se acercó a Clojure esperando la sintaxis engorrosa que suele asociarse a los dialectos de Lisp, pero en la práctica lo encontró más er

Elixir v1.20 ya es un lenguaje de tipado gradual sin anotaciones

El equipo de Elixir ha publicado la versión 1.20 del lenguaje de programación, que incorpora un sistema de tipado gradual sin necesidad de añadir anotaciones de tipo. Se trata del primer hito de desarrollo del proyecto de tipos, iniciado en 2022, que convierte a Elixir en un lenguaje gradualmente ti

Por qué deberías probar Janet, un dialecto de Lisp minimalista

En un panorama de lenguajes de programación cada vez más complejos, Janet se presenta como una propuesta singular: un pequeño dialecto de Lisp que combina simplicidad, potencia expresiva y portabilidad. Este artículo del autor del libro 'Janet for Mortals' —publicado en abierto— defiende por qué cua

Lua: el lenguaje eficiente para reducir la huella de carbono

En el marco de la Agenda 2030 de la ONU, la eficiencia energética del software ha dejado de ser un lujo para convertirse en una necesidad crítica para reducir la huella de carbono global. Este artículo, titulado "The Green Side of the Lua", explora cómo las decisiones de arquitectura de software, es

Bun detecta error de referencia colgante en código unsafe

Este issue reporta un error de 'Undefined Behavior' (comportamiento indefinido) en el código de Bun, un runtime de JavaScript/TypeScript escrito en Rust. El error específico es un 'dangling reference' (referencia colgante), que ocurre cuando se intenta acceder a memoria que ya ha sido liberada. El p

Así es Flightsim, el simulador de vuelo hecho con Spectre

Flightsim es un proyecto de código abierto que implementa un simulador de vuelo básico en 3D. Se trata de una demostración práctica del lenguaje de programación Spectre, creada por el desarrollador navid-m, que permite experimentar con la física de vuelo de una manera sencilla y accesible. El proyec

R vs. Kap: análisis de datos, ¿cuál es mejor?

Este artículo compara la experiencia de trabajar con R y Kap, dos lenguajes de programación, especialmente en el contexto del análisis de datos. El punto de partida es un artículo que critica la 'torpeza' de Pandas, la biblioteca de análisis de datos de Python, al compararla con R. El autor, familia

Jubbly: Nuevo enfoque para asignar valores en programación

El proyecto 'Jubbly' explora una idea innovadora en diseño de lenguajes de programación, enfocada en simplificar y mejorar la forma en que se realizan las reasignaciones de valores, especialmente en estructuras de datos complejas. Tradicionalmente, en muchos lenguajes, asignar un nuevo valor a una v

CSS como código: ¿programación más allá del diseño?

Este artículo explora una idea inusual: usar CSS como un lenguaje de consulta o incluso como un lenguaje de programación general, más allá de su función principal de diseñar páginas web. La pregunta central es por qué alguien querría hacer esto, dado que CSS es notoriamente complejo y existen lengua

orígenes del código: los 'ur-lenguajes' revelados

Este artículo explora un concepto fundamental en el desarrollo de software: los "ur-lenguajes" (lenguajes ancestrales). La idea central es que, aunque existen miles de lenguajes de programación, muchos comparten patrones básicos de construcción y organización, agrupándose en familias o "ur-lenguajes

Byterun: Intérprete de Python en 500 líneas

Este artículo de Allison Kaptur, ingeniera de Dropbox, explora Byterun, un intérprete de Python escrito en Python. El objetivo principal es desmitificar el funcionamiento interno de un intérprete, demostrando que su estructura fundamental puede caber en un código relativamente corto (menos de 500 lí

Rust: Maximiza el potencial con menos esfuerzo

El autor ha estado buscando el lenguaje de programación perfecto durante años, frustrado por las limitaciones de opciones populares como F#, TypeScript y C#. Si bien Rust ofrece un gran potencial, su curva de aprendizaje y complejidad (relacionada con la gestión de memoria y el sistema de tipos) han

K: Eliminan 'raze' para optimizar código

Este artículo explora una optimización interesante en el lenguaje de programación K, específicamente relacionada con la eliminación de una técnica llamada 'raze'. K es un lenguaje de programación de matriz (array language) conocido por su concisión y expresividad. El problema que aborda el autor, Ch

aprende a usar ⍋⍋: la función inesperada de APL

Este artículo explora el significado y la utilidad de la función ⍋⍋ en el lenguaje de programación APL, un tema que inicialmente parecía carecer de sentido según Paul Mansour. Aunque inicialmente se considera inútil (equivalente a una versión más lenta de otra función), el artículo revela una aplica

Spath y Splan: Sumato AI optimiza la codificación con IA

El artículo de Sumato AI introduce Spath y Splan, dos nuevas herramientas diseñadas para mejorar la eficiencia y la calidad de los agentes de codificación basados en IA. Tradicionalmente, la programación ha estado intrínsecamente ligada al sistema de archivos, lo que implica una estructura jerárquic

memo: Programa con fluidez y experimenta

## memo: Un Entorno de Programación Fluido y Experimental memo es un entorno de programación inusual, descrito como un "entorno de codificación de flujo de conciencia". En esencia, se trata de un lenguaje de programación experimental que prioriza la continuidad y la espontaneidad sobre la estructur

Mejoran inferencia de tipos para errores más claros

El artículo presenta un nuevo algoritmo de inferencia de tipos llamado 'Quadratic Micropass Type Inference', diseñado para mejorar la claridad de los mensajes de error en lenguajes de programación con inferencia de tipos. La inferencia de tipos, una característica que permite al compilador deducir e

Python: El operador que sacudió al lenguaje

Este artículo narra la controvertida introducción del 'walrus operator' (:=) en Python 3.8, un evento que llevó a la renuncia de Guido van Rossum, el creador y líder de facto del lenguaje durante tres décadas. ¿Qué es y por qué es importante? El walrus operator es una nueva forma de asignar valore

Tipos y errores: un análisis de Map.take! en Elixir

Este artículo explora las limitaciones de los sistemas de tipos en lenguajes de programación dinámicos, utilizando como ejemplo la propuesta de una función `Map.take!/2` en Elixir. `Map.take/2` es una función existente en Elixir que extrae un subconjunto de claves de un mapa, ignorando las claves in

Go: el nuevo favorito para crear agentes de IA

El artículo argumenta que Go es el lenguaje de programación ideal para trabajar con agentes de IA, basándose en la experiencia del autor en el desarrollo de herramientas de ETL como Bruin. Aunque Python ha sido tradicionalmente popular en el ecosistema de datos, Go ofrece ventajas significativas en

Dada simplifica referencias: una alternativa a Rust

Este artículo del blog explora cómo Dada, un nuevo lenguaje de programación, aborda el manejo de referencias y permisos de una manera innovadora, superando las limitaciones de Rust. Dada introduce un sistema de permisos basado en 'lugares' (places) en lugar de 'tiempos de vida' (lifetimes), lo que s

¿Fin de la programación? La IA desafía el rol del programador

A lo largo de la historia de la informática, una promesa recurrente ha impulsado la innovación: la de simplificar la creación de software, reducir costos y, en última instancia, eliminar la necesidad de programadores. Este ciclo, que se repite desde la década de 1960, se manifiesta hoy con la irrupc

Rust: Una herramienta, no una solución mágica

Rust: Una herramienta útil pero no mágica El lenguaje de programación Rust, celebrado durante una década como el más admirado según las encuestas de Stack Overflow, no es la solución mágica que algunos defienden. Así lo aseguran dos voces del sector tecnológico que, desde perspectivas distintas, ad

Aprende Clojure: Plataforma práctica para desarrolladores

ClojureStream es una plataforma integral diseñada para el aprendizaje y la comunidad en torno a los lenguajes de programación Clojure, ClojureScript y Datalog. En un mundo donde la curva de aprendizaje de nuevas tecnologías puede ser empinada, ClojureStream se presenta como un recurso estructurado y

Programación: ¿La Sintaxis Define un Lenguaje?

Este artículo explora una peculiaridad en la comunidad de programación: la tendencia a juzgar y elegir lenguajes basándose en su sintaxis de declaración, a menudo sin considerar la semántica subyacente. El autor, un desarrollador de Odin, argumenta que la sintaxis es, en gran medida, superficial y f

Tipado: ¿Hindley-Milner o Bidireccional?

Este artículo aborda una pregunta común entre los desarrolladores de lenguajes de programación: ¿deberían usar un sistema de tipos Hindley-Milner (HM) o Bidireccional (Bidir)? La respuesta, según el autor, no es tan simple como elegir entre dos opciones mutuamente excluyentes. La verdadera pregunta

Swift y Kotlin: ¿Demasiada Estricción en la Programación?

El artículo del blog 'The Clean Code' explora una tendencia preocupante en el desarrollo de lenguajes de programación modernos, específicamente Swift y Kotlin. Ambos lenguajes, aunque con orígenes distintos (Swift derivado de Objective-C y Kotlin de Java), comparten una marcada inclinación hacia la

ga68: Reviven Algol 68 con Compilador para GCC

## FOSDEM 2026: Descubriendo ga68, el Compilador Algol 68 para GCC **¿Qué es Algol 68 y por qué deberíamos prestarle atención?** Algol 68 es un lenguaje de programación histórico, diseñado a mediados de la década de 1960 como sucesor de Algol 50. Aunque nunca alcanzó la popularidad de otros lengua