Dependable C: un subconjunto de C pensado para durar décadas

Dependable C es un proyecto que documenta un subconjunto del lenguaje C orientado a quienes necesitan escribir bibliotecas portables, estables y mantenibles a largo plazo. La guía parte de una premisa clara: cuando se necesita una biblioteca de bajo nivel para complementar lenguajes como Python, Jav

Por qué un script "/bin/sh" puede no ser portable aunque sea POSIX

El desarrollador Alexandre Gomes Gaigalas sostiene que la idea de escribir un guion "portable" en shell POSIX es engañosa, porque POSIX es una especificación, no un programa. Cada shell real —bash, dash, ash, ksh, yash y otros— implementa esa norma con lagunas, extensiones y particularidades históri

Expresiones regulares que funcionan en cualquier herramienta

Las expresiones regulares son una de las herramientas más extendidas en programación y procesamiento de texto, pero su gran debilidad es la fragmentación: cada motor (sed, awk, grep, Emacs, Perl, PCRE) implementa un subconjunto distinto de sintaxis y funcionalidades, lo que provoca que un patrón que

Código C: la compatibilidad es un desafío constante

El artículo de lemon.rip explora un problema fundamental en el desarrollo de software en C: la dificultad de crear código que sea verdaderamente compatible con el estándar ISO C y que funcione de manera consistente en diferentes compiladores y sistemas operativos. La realidad es que la mayoría del c

Sp.h ofrece una biblioteca estándar moderna para C más eficiente y portable

sp.h representa un esfuerzo significativo para modernizar la biblioteca estándar de C, ofreciendo una alternativa ultra-portable y de alta calidad a libc. En un ecosistema donde las aplicaciones modernas requieren programación asíncrona y gestión de memoria precisa, libc a menudo se vuelve un obstác

OpenBSD y el Zaurus: una historia de portabilidad

Este artículo narra una historia poco conocida del desarrollo de OpenBSD, centrada en la portabilidad a arquitecturas ARM y la eventual habilitación del Sharp Zaurus como plataforma viable. En la década de 1990, varios grupos intentaron adaptar sistemas Unix-like (incluido BSD y Linux) a hardware do

Knight: Un lenguaje de programación minimalista y peculiar

Knight es un lenguaje de programación minimalista y peculiar, diseñado con una filosofía radicalmente diferente a la de la mayoría de los lenguajes existentes. Su objetivo principal no es facilitar la vida al programador que escribe código, sino simplificar la implementación del propio lenguaje. Est

MacBook Neo: Chip de iPhone impulsa portátil de 600$

El artículo de John Gruber analiza el nuevo MacBook Neo, un portátil de 600 dólares que ha sorprendido al mundo tecnológico. La clave de este éxito radica en el uso del chip A18 Pro, el mismo que se encuentra en los modelos iPhone 16 Pro de 2024. Esto demuestra cómo los chips diseñados originalmente

R3Forth: Lenguaje eficiente para sistemas limitados

R3Forth es un lenguaje de programación y un entorno de ejecución diseñado para la eficiencia y la portabilidad, especialmente útil en entornos con recursos limitados o donde la predictibilidad del rendimiento es crucial. Su origen está ligado a la necesidad de crear un sistema de control robusto y a

Software redundante: el riesgo del 'efecto plataforma'

El 'efecto plataforma interna' (Inner-Platform Effect) es un patrón de diseño de software, considerado un anti-patrón, que ocurre cuando los arquitectos de sistemas crean soluciones tan personalizables que terminan replicando, de forma imperfecta, la plataforma de desarrollo que están utilizando. En

Juegos en C: El Regreso de un Lenguaje Clásico

Este artículo explica por qué un desarrollador elige usar el lenguaje de programación C para sus proyectos de juegos, una decisión inusual en la industria actual. El autor, con experiencia en desarrollo de juegos, detalla sus razones, que van más allá de la simple preferencia personal y se basan en