Artículos

  • C# 0

    Source Generators en C#: metaprogramación en tiempo de compilación sin reflection

    Los Source Generators de C# permiten generar código en tiempo de compilación analizando el árbol sintáctico del proyecto, eliminando la necesidad de reflection en runtime para serialización, mapeo y otras tareas repetitivas. Desde .NET 6, los Incremental Source Generators ofrecen además un ...

  • Java 0

    Java moderno en 2026: records, sealed classes, pattern matching y text blocks

    Desde Java 16 hasta Java 21, el lenguaje ha incorporado features que eliminan el boilerplate de siempre: records, sealed classes, pattern matching para instanceof y switch, record patterns y text blocks. Aquí tienes cómo funcionan y cuándo usarlos.

  • Javascript 0

    Funciones flecha en JavaScript: diferencias reales con function y cuándo usarlas

    Las arrow functions no son solo sintaxis más corta: no tienen su propio this, no tienen arguments y no sirven como constructores. Aprende las diferencias clave con function y cuándo es mejor no usarlas, con ejemplos reales que incluyen el bug típico del this.

  • Generales 0

    Structs en Rust: agrupar datos y añadir métodos con impl

    Guía práctica sobre structs en Rust: definición, instanciación, mutabilidad de instancia entera, struct update syntax, tuple structs y unit structs. Cómo añadir métodos con impl usando referencias, referencias mutables o por consumo, y el patrón de constructor new().

  • Python 0

    Generadores en Python: yield, lazy evaluation y cómo ahorrar memoria

    Los generadores de Python producen valores uno a uno con yield en lugar de calcularlos todos a la vez. Aprende la diferencia de memoria frente a listas, cómo encadenar generadores en pipelines, generar secuencias infinitas y usar send() y throw() para comunicación bidireccional.

  • PHP 0

    str_contains, str_starts_with y str_ends_with en PHP 8

    Aprende a usar str_contains(), str_starts_with() y str_ends_with(), introducidas en PHP 8.0, que reemplazan el confuso strpos() !== false con booleanos directos. Incluye comparativas con PHP 7, ejemplos reales con URLs, ficheros y formularios, y el comportamiento con cadena vacía.

  • Generales 0

    veb: el framework web de V que sustituye a vweb y es 4 veces más rápido

    Quinta entrega de la serie sobre V: veb reemplazo oficial de vweb desde la version 0.4.10, con una app minima, rutas por convencion y con atributos, el objeto Context, middleware y como servir ficheros estaticos.

  • Javascript 0

    Optional chaining ?. y nullish coalescing ?? en JavaScript moderno

    Aprende a usar optional chaining (?.) y nullish coalescing (??) en JavaScript ES2020: accede a propiedades anidadas sin comprobar null en cada nivel y define valores por defecto que no te traicionan con 0 o cadenas vacías. Incluye nullish assignment ??= y errores frecuentes.

  • Generales 0

    Arrow en Kotlin: programación funcional con Either, Raise y coroutines

    Arrow es una librería para Kotlin que añade tipos funcionales como Either y el DSL Raise para manejar errores sin excepciones, con integración nativa con coroutines. Arrow 2.x ha simplificado su API y resulta especialmente útil en capas de dominio con lógica compleja.

  • Javascript 0

    TypeScript en Node.js en 2026: tsx, strip types nativo y Bun sin configurar

    En 2026 hay varias formas de ejecutar TypeScript directamente en Node.js sin pasar antes por tsc: strip types nativo, tsx, ts-node y Bun. Cada una tiene su sitio.