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