Noticias que mencionan Java

Floe facilita el análisis de bases de datos con nuevas vistas

Floe, una empresa especializada en bases de datos, ha introducido 'system views' para mejorar la introspección y el diagnóstico de sus bases de datos. Esta nueva funcionalidad permite a los usuarios consultar directamente la base de datos sobre su propio funcionamiento, respondiendo preguntas como '

LLMs vs. OOP: Encapsulación, el Nuevo Desafío

El artículo explora los desafíos que enfrentan los Modelos de Lenguaje Grandes (LLMs) en la implementación de la encapsulación, un principio fundamental de la programación orientada a objetos (OOP). Inspirándose en la visión de Alan Kay, considerado el 'padre' de OOP, el texto critica la práctica co

LLMs vs. OOP: Encapsulación, el Nuevo Desafío

El artículo explora los desafíos que enfrentan los Modelos de Lenguaje Grandes (LLMs) en la implementación de la encapsulación, un principio fundamental de la programación orientada a objetos (OOP). Inspirándose en la visión de Alan Kay, considerado el 'padre' de OOP, el texto critica la práctica co

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

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

Ivanti: Ciberataque Implanta Puertas Traseras Ocultas

Un sofisticado ciberataque dirigido a usuarios de Ivanti Endpoint Manager Mobile (EPMM) ha sido detectado a partir del 4 de febrero de 2026. La vulnerabilidad, relacionada con CVE-2026-1281 y CVE-2026-1340, permite el acceso no autenticado a los endpoints de la aplicación. A diferencia de explotacio

NSA libera Ghidra: herramienta de análisis de código

La Agencia de Seguridad Nacional (NSA) ha publicado Ghidra, una herramienta de ingeniería inversa de código abierto, en su repositorio de GitHub. Ghidra es un conjunto de herramientas de análisis de código compilado diseñado para plataformas Windows, macOS y Linux, que permite el desensamblaje, la d

gRPC: API de alto rendimiento con enfoque 'contract-first'

gRPC es un framework de código abierto para construir APIs distribuidas de alto rendimiento. A diferencia de REST, que a menudo trata la documentación de la API como un añadido, gRPC adopta un enfoque 'contract-first', definiendo la API mediante archivos `.proto` de Protocol Buffers. Estos archivos

ChronDB: ahora biblioteca para más lenguajes

ChronDB, una base de datos Clojure inicialmente diseñada como servidor, ha evolucionado para convertirse en una biblioteca políglota gracias a la integración con GraalVM. Originalmente concebida para almacenar datos con Git y exponer protocolos como PostgreSQL, Redis y REST, el equipo de desarrollo

Apache Arrow: 10 años de intercambio de datos

El proyecto Apache Arrow celebra su décimo aniversario el 5 de febrero de 2026. Iniciado en 2016 como un esfuerzo conjunto para estandarizar el intercambio eficiente de datos columnares entre diferentes bibliotecas y sistemas, Arrow complementa a Apache Parquet al proporcionar un formato en memoria.

MiniMax M2.5: IA eficiente para tareas complejas

MiniMax ha anunciado el lanzamiento de su nuevo modelo de lenguaje, MiniMax M2.5, diseñado para aumentar la productividad en tareas del mundo real. El modelo, entrenado con aprendizaje por refuerzo en una amplia variedad de entornos complejos, destaca en programación, uso de herramientas, búsqueda y

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

IA duplica la velocidad de biblioteca de código Quamina

El desarrollador Tim Bray ha compartido una experiencia inusual sobre cómo la inteligencia artificial generativa (GenAI), específicamente el modelo Claude, ha mejorado significativamente el rendimiento de su biblioteca de código Quamina. Inicialmente reacio a experimentar con GenAI, Bray se sorprend

Delphi: 31 años de innovación en desarrollo

Delphi, la plataforma de desarrollo de Embarcadero, celebra su 31º aniversario con la publicación de una innovadora línea de tiempo visual que recorre tres décadas de avances tecnológicos. La línea de tiempo, disponible como descarga gratuita en formato PDF de alta resolución, abarca desde febrero d

Elixir impulsa la IA: un nuevo contendiente emerge

Un reciente artículo destaca cómo el lenguaje de programación Elixir, construido sobre la máquina virtual BEAM (originalmente desarrollada por Erlang en 1986), está ganando terreno en el desarrollo de inteligencia artificial, desafiando los marcos tradicionales basados en Python. Un estudio de Tence

Emacs: ShannonMax optimiza tus atajos de teclado

ShannonMax es una herramienta innovadora para Emacs que utiliza la teoría de la información para optimizar tus atajos de teclado. La idea central es que los comandos que usas con más frecuencia deberían tener atajos más cortos y convenientes, mientras que los comandos poco usados podrían liberarte e

FirebirdSQL facilita conversión decimal con nueva biblioteca

FirebirdSQL ha lanzado la biblioteca 'decimal-java', una herramienta diseñada para convertir números de punto flotante de Java (java.math.BigDecimal) a formatos de representación de bytes IEEE-754r (decimal32, decimal64 y decimal128), y viceversa. Esta biblioteca, disponible a través de Maven, es cr

Common Lisp y Scheme: Interoperabilidad sin precedentes

Un nuevo proyecto, denominado 'cl-kawa', permite una profunda interoperabilidad entre Common Lisp y Scheme, dos lenguajes de programación, a través de una implementación innovadora. El proyecto, creado por Anthony Green y disponible en GitHub, utiliza OpenLDK, un JVM escrito en Common Lisp que trans

Java optimiza recolección de basura con nueva API

Un nuevo API de Java, incluido en OpenJDK 26, busca optimizar la eficiencia de la recolección de basura (GC) al permitir a los ingenieros cuantificar el costo de CPU asociado. Históricamente, la optimización de GC se centraba en minimizar los tiempos de pausa, pero con los colectores modernos, la re

Volver a 1993: ¿Un error la informática moderna?

El artículo, presentado con un tono humorístico pero con una base de reflexión seria, propone una idea radical: que la evolución de la computación debería haberse detenido en 1993. El autor, con una perspectiva retrospectiva y basada en su conocimiento de la historia de la informática, argumenta que

Clojure y Java: Solucionan Retraso de Inicio en OpenLDK

Este artículo aborda un problema de rendimiento significativo encontrado al integrar Clojure (un lenguaje funcional) con OpenLDK, una implementación de Common Lisp que se ejecuta sobre la Máquina Virtual de Java (JVM). Inicialmente, el tiempo de inicio de Clojure en OpenLDK era excesivamente largo (

agenticSeek: IA privada que funciona en tu dispositivo

Un nuevo asistente de IA de código abierto llamado agenticSeek ha sido lanzado en GitHub, ofreciendo una alternativa centrada en la privacidad a las soluciones basadas en la nube como Manus AI. Este asistente funciona completamente en el dispositivo del usuario, sin necesidad de conexión a internet

gzpeek: Descubren datos ocultos en archivos gzip

Un desarrollador ha creado una nueva herramienta llamada 'gzpeek' para analizar los metadatos ocultos dentro de archivos comprimidos con gzip. Tradicionalmente se asume que gzip solo sirve para comprimir datos, pero la especificación técnica revela que los archivos gzip contienen información adicion

Sistemas concurrentes: ¿por qué Erlang sigue siendo clave?

Este artículo de Variant Systems explora por qué los sistemas basados en procesos, como los que utiliza Erlang/Elixir (BEAM y OTP), siguen siendo relevantes y efectivos en la construcción de sistemas concurrentes y distribuidos, especialmente en el contexto de la inteligencia artificial y los agente

Funciones: abstracciones para simplificar la programación

Este artículo explora la naturaleza de las funciones en programación y cómo los lenguajes modernos manejan la ejecución del código, particularmente en lo que respecta al despacho dinámico y el manejo de errores. Comienza desafiando la noción de que las funciones son entidades reales, argumentando qu

Controla la terminal: guía para interfaces dinámicas

Este artículo del blog de Haoyi explora cómo controlar la terminal desde programas de línea de comandos, un aspecto fundamental para crear interfaces de usuario más dinámicas y sofisticadas. Tradicionalmente, los programas interactúan con la terminal simplemente imprimiendo texto que se desplaza. Si

Python: Recuerdos de sus inicios con Thomas Wouters

Un proyecto de entrevistas con figuras clave en la historia temprana de Python ha comenzado con una conversación con Thomas Wouters, quien compartió sus recuerdos sobre cómo descubrió Python. La entrevista, publicada en gvanrossum.github.io, revela que Wouters se familiarizó con Python a través de L

Rescatan firmware perdido de Lego NXT

Este artículo del blog detalla el proceso de extracción (dumping) del firmware original de un ladrillo Lego NXT, específicamente la versión 1.01 de 2006. El autor, contribuyente al proyecto Pybricks (una implementación de MicroPython para Lego Mindstorms), se enfrentó a la necesidad de archivar esta

Sem: Nueva herramienta revoluciona el control de versiones

Ataraxy Labs ha lanzado 'Sem', una nueva herramienta de código abierto que revoluciona la forma en que se realiza el control de versiones. A diferencia de las herramientas tradicionales que se centran en las líneas de código, Sem ofrece 'diffs' a nivel de entidad, identificando cambios específicos c

Skir: Nuevo lenguaje agiliza desarrollo de APIs

Skir, una nueva herramienta de código abierto, ha sido lanzada para simplificar el desarrollo de APIs. Se trata de un lenguaje declarativo que permite a los desarrolladores definir tipos de datos, constantes y APIs en un único archivo .skir. A partir de este archivo, Skir genera código idiomático y

SQG: Generación de código SQL ahora con soporte Java Streams

SQG, un generador de código SQL de tipo seguro, ha lanzado su versión 0.10.0, introduciendo importantes mejoras para desarrolladores Java. La actualización permite la generación de código Java que incluye métodos para retornar resultados en formato `Stream<T>` además de `List<T>`, facilitando la eva

Java: Plugin 'Binding Expressions' Refuerza Seguridad

Un nuevo plugin para el compilador de Java, denominado 'Binding Expressions', busca introducir seguridad de tipos en tiempo de compilación al permitir que expresiones adyacentes se unan para formar nuevas expresiones basadas en sus tipos estáticos. Desarrollado por Manifold Systems y disponible en G

Ukkonen: Visualizando un Algoritmo Complejo

Este artículo explora la visualización del algoritmo de Árbol de Sufijos de Ukkonen, una técnica compleja para indexar y buscar subcadenas dentro de grandes conjuntos de datos de texto. El autor, un divulgador técnico, comparte su experiencia personal en el aprendizaje de algoritmos, destacando la b

Temporal: Bloomberg Crea Nueva Biblioteca de Fechas en JavaScript

Bloomberg ha desarrollado 'Temporal', una nueva biblioteca para manejar fechas y horas en JavaScript, tras nueve años de trabajo y una larga historia de problemas con la funcionalidad de fechas integrada en el lenguaje. La necesidad surgió porque la implementación original de `Date` en JavaScript, r

IA traduce software: avance con limitaciones

A principios de 2026, se ha observado un auge en las traducciones autónomas asistidas por IA, impulsado por publicaciones de Cursor y Anthropic que demuestran la traducción de software complejo como navegadores web, compiladores C y emuladores de Windows. Si bien estas demostraciones han generado en

LogClaw: Observabilidad con IA y seguridad VPC

LogClaw ha lanzado una nueva solución de Observability como Servicio (SRE) impulsada por inteligencia artificial, diseñada para resolver los problemas de costos y seguridad asociados con herramientas tradicionales como Splunk y Datadog. La plataforma se despliega completamente dentro del entorno VPC

Aislamiento en Erlang: ¿Solución o Limitación?

Este artículo explora las limitaciones del modelo de concurrencia basado en aislamiento, utilizando Erlang como ejemplo paradigmático. Erlang, conocido por su robustez y alta disponibilidad (como se evidencia en sistemas como WhatsApp), implementa un modelo de 'actores' donde cada proceso tiene su p

Go 1.26: Nueva herramienta facilita la modernización del código

La versión 1.26 de Go introduce una nueva herramienta llamada 'source-level inliner' dentro del comando `go fix`, diseñada para ayudar a los desarrolladores a modernizar su código Go y mantenerlo actualizado. Esta herramienta permite a los autores de paquetes expresar migraciones y actualizaciones d

Error en compilador Rust al emular tipos avanzados

Este artículo técnico explora una peculiaridad en el sistema de tipos de Rust y cómo un intento de emular tipos de orden superior (HKTs) llevó a un error de desbordamiento en la evaluación de requisitos de traits, causando que el compilador fallara. El autor, en su intento de crear un lenguaje de sc

Código de Minecraft PS3 revela secretos de programación

El código fuente de Minecraft para PlayStation 3 ha sido filtrado recientemente, revelando técnicas de programación ingeniosas utilizadas por 4J Studios, el estudio escocés encargado de portar el juego de Java a la consola. Debido a las limitaciones de hardware de la PS3, que no podía ejecutar Java,

Floci: Alternativa gratuita a LocalStack para emular AWS

Un nuevo emulador de AWS de código abierto llamado Floci ha surgido como alternativa gratuita a LocalStack, especialmente relevante tras el anuncio de LocalStack de una transición a un modelo de suscripción en marzo de 2026. Floci, inspirado en la formación de nubes 'cirrocumulus floccus', ofrece un

Fin de una era: TechEmpower cesa benchmarks de frameworks

TechEmpower ha anunciado el cese de actividad del proyecto Framework Benchmarks, una iniciativa que durante más de una década ha servido como referencia para la industria del desarrollo web. El proyecto, lanzado en 2013, ha cubierto cientos de frameworks en diversos lenguajes de programación como Go

Loreline: nuevo lenguaje facilita narrativas interactivas

Loreline es un nuevo lenguaje de narrativa diseñado para facilitar la creación de historias interactivas y juegos. Desarrollado por Jeremyfa, el lenguaje busca equilibrar la facilidad de uso para escritores con la complejidad de la ingeniería de software. Su diseño prioriza una sintaxis intuitiva qu

Clojure: lenguaje funcional gana terreno en empresas

Una reciente implementación en Michelin ha impulsado la adopción de Clojure, un lenguaje de programación funcional basado en Lisp, para el desarrollo de aplicaciones empresariales. Inicialmente, el equipo se mostró escéptico al desviarse de la pila de desarrollo estándar (Java), pero rápidamente apr

Código Intencionalmente Complicado: ¿Una Estrategia?

Este artículo, escrito con un tono irónico, explora cómo escribir código deliberadamente difícil de mantener, con el objetivo de generar más trabajo para los programadores que lo heredarán. El autor, Roedy Green, argumenta que siguiendo estas prácticas, uno se asegura una carrera prolongada en el ma

Binario Linux de 105 bytes: ¿el mínimo ejecutable?

Un desarrollador ha logrado reducir el tamaño de un archivo ELF (Executable and Linkable Format) de Linux a tan solo 105 bytes, mientras mantiene la capacidad de imprimir el mensaje "Hello, world!". Esta hazaña, impulsada por el trabajo de Josh Triplett, se basa en técnicas de optimización que elimi

Panamá: Puente Java-Nativo Facilita la Interoperabilidad

El proyecto Panamá, impulsado por el Hotspot Group dentro de OpenJDK, busca mejorar la interoperabilidad entre la Máquina Virtual de Java (JVM) y código nativo, especialmente APIs comúnmente utilizadas por programadores de C. El objetivo es permitir una comunicación más fluida y eficiente entre el c

APEX: Protocolo unifica la negociación automatizada

Una nueva iniciativa llamada APEX ha lanzado un protocolo abierto, denominado APEX Protocol, para estandarizar la comunicación entre agentes de negociación automatizados (AI agents) y los intermediarios financieros, bolsas y otros puntos de ejecución. El objetivo es eliminar las integraciones person

SOM: Nuevo Lenguaje de Programación con Múltiples Versiones

Un nuevo lenguaje de programación llamado 'SOM' ha surgido, destacando por su enfoque en la claridad de implementación sobre el rendimiento absoluto. Desarrollado por SOM-st, SOM cuenta con nueve implementaciones distintas, que varían en tamaño (de 2.5k a 8k líneas de código) y técnicas de implement

Sky: Nuevo lenguaje fusiona Go y Elm

Un desarrollador ha creado Sky, un nuevo lenguaje de programación experimental que busca combinar lo mejor de Go y Elm. Sky apunta a simplificar el desarrollo full-stack al ofrecer un lenguaje único para el frontend y el backend, compilando a un binario Go portable. El lenguaje incorpora característ

Foxguard: Escaneo de seguridad ultrarrápido para desarrolladores

PwnKit Labs ha lanzado Foxguard, una nueva herramienta de escaneo de seguridad local diseñada para ser extremadamente rápida, buscando solucionar la lentitud de los escáneres tradicionales que a menudo impiden su uso frecuente por parte de los desarrolladores. Foxguard completa un escaneo en tan sol

Software y hardware: redescubriendo la 'simpatía mecánica'

Un artículo de martinfowler.com explora el concepto de 'simpatía mecánica' en el desarrollo de software, una práctica que busca optimizar el rendimiento al considerar las características y limitaciones del hardware subyacente. Inspirado en un principio de la Fórmula 1, la simpatía mecánica implica c

OpenJDK 11: nuevas herramientas para terminar JVM

Una nueva versión de OpenJDK 11 introduce opciones de terminación de la Máquina Virtual Java (JVM) para mejorar la depuración y el manejo de errores en entornos de producción. Estas opciones, disponibles a través de flags de runtime, permiten abortar la JVM en situaciones específicas como fallos de

Lean: el lenguaje que verifica su propio código

Este artículo explora el concepto de un "lenguaje de programación perfectible", ejemplificado por Lean. La idea central es que un lenguaje perfectible no solo permite escribir código, sino también expresar propiedades sobre ese código dentro del propio lenguaje. Esto abre la puerta a la verificación

Scheme: repositorio desacoplado para datos

Este artículo presenta un enfoque innovador para la capa de datos en proyectos Scheme, buscando resolver un problema común: el acoplamiento estrecho entre la capa de control y la implementación específica de la base de datos (en este caso, SQLite). El autor, proveniente de un background en lenguajes

Investigación de Lighterra: Referente en Informática

La colección de artículos y papers de Lighterra, liderada por Jason R. C. Patterson, abarca una impresionante variedad de temas en informática, desde el diseño de microprocesadores hasta la optimización de compiladores y la calidad de video en la web. El trabajo de Patterson, a menudo originado como

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

Async: De C10K a async/await, la evolución de la concurrencia

Este artículo explora la evolución de las técnicas para manejar la concurrencia en sistemas informáticos, desde el problema original de C10K (manejar miles de conexiones simultáneas) hasta la adopción generalizada de `async/await`. Inicialmente, la solución fue el uso de hilos del sistema operativo,

Rust optimiza memoria al procesar JSON de AWS

Este artículo del blog de dystroy.org describe una optimización significativa de memoria en un programa Rust que deserializa archivos JSON complejos. El problema original era que el programa, al procesar archivos JSON que representan estructuras de datos de AWS (Smithy Shapes), consumía una gran can

Kubernetes: Herramienta protege registros de datos sensibles

Un nuevo proyecto de código abierto llamado PII-Shield ha sido lanzado para automatizar la eliminación de datos sensibles en registros de Kubernetes, abordando un problema común de seguridad y cumplimiento. La herramienta, desarrollada por Aragossa, previene fugas de información de identificación pe

Usuario integra LLM en app Android sin permiso

Un usuario ha logrado integrar una función de sincronización con un servicio de audiolibros de terceros (Audiobookshelf) en una aplicación Android de código cerrado llamada Smart Audiobook Player (SABP) utilizando modelos de lenguaje grandes (LLMs). El usuario, insatisfecho con la falta de sincroniz

Java: Visualiza tu aprendizaje con este gráfico interactivo

El "100DaysOfJava Knowledge Graph" es una herramienta interactiva que visualiza el contenido de una serie de publicaciones de blog centradas en el aprendizaje y la exploración de Java. Imagina que has seguido un curso intensivo de Java, con cientos de conceptos interconectados. Intentar recordar y c

Mamba-Studio lanza TypedMemory para memoria off-heap type-safe en Java

Mamba-Studio ha lanzado TypedMemory, una nueva biblioteca Java experimental diseñada para simplificar la gestión de memoria off-heap mediante vistas fuertemente tipadas. La librería, construida sobre la API Java Foreign Function & Memory (FFM), permite mapear tipos record de Java directamente a memo

Nuevo addon permite personalizar scroll en Minecraft Bedrock

Mouse Wheel Tweaks es un addon o modificación diseñado para Minecraft Bedrock Edition que ajusta y personaliza el comportamiento de la rueda del ratón en el juego. Esta herramienta responde a una necesidad específica de la comunidad de jugadores que utiliza teclado y ratón en versiones móviles o de

Tres estudiantes Selected para mejorar Haiku OS este verano

Haiku OS ha seleccionado tres estudiantes para participar en el programa Google Summer of Code 2026. Los jóvenes seleccionados trabajarán durante el verano en proyectos de mejora del sistema operativo de código abierto. Leo Roureau, estudiante de ingeniería de software en Polytechnique Montréal, des

El día que Google buscó unificar sus IDEs de desarrollo

El presente artículo ofrece una mirada retrospectiva sobre la evolución de los entornos de desarrollo integrado (IDEs) en Google, una de las mayores empresas tecnológicas del mundo. Durante años, Google permitió que sus ingenieros eligieran libremente su IDE favorito, lo que generó un ecosistema alt

El misterio de a++ + ++a: por qué el mismo código C da resultados diferentes

El contenido explora el comportamiento indefinido (UB) en expresiones C/C++ que combinan operadores de incremento pre (++a) y post (a++). El caso central analizado es a = a++ + ++a. Se demuestra teóricamente cómo existen múltiples posibilidades de evaluación: el orden de captura de valores y cuándo

Anthropic compra Stainless para potenciar sus agentes de IA con nuevos SDKs

Anthropic ha anunciado la adquisición de Stainless, empresa especializada en el desarrollo de kits de desarrollo de software (SDKs) y herramientas de servidores MCP, con el objetivo de fortalecer la conectividad de sus agentes de IA. Fundada en 2022, Stainless ha generado todos los SDKs oficiales de

Guía completa compara cuatro dialectos principales de Lisp

Esta referencia lateral de hyperpolyglot.org ofrece una comparación exhaustiva entre cuatro dialectos principales del ecosistema Lisp: Common Lisp, Racket, Clojure y Emacs Lisp. Cada dialecto comparte la sintaxis característica de Lisp —notación prefijada con paréntesis—, pero difiere considerableme

Cursor lanza Composer 2.5 con IA mejorada para programación

Cursor ha lanzado Composer 2.5, una actualización sustancial de su modelo de inteligencia artificial para programación. La nueva versión ofrece mejoras significativas en inteligencia y comportamiento, siendo más competente en tareas prolongadas y en el seguimiento de instrucciones complejas. El mode

PyYAML bug converts country codes to boolean values

El 12 de enero de 2026, la librería de Python PyYAML expuso un fallo crítico conocido como el "problema de Noruega", donde el código de país "NO" se interpreta erróneamente como el valor booleano "false" en lugar de una cadena de texto. Este incidente afecta a la popularidad de YAML como lenguaje de

Peter Luschny presenta 21 algoritmos para optimizar factoriales a gran escala

Peter Luschny ha publicado una colección exhaustiva de algoritmos para el cálculo de la función factorial (n!) en gran escala. Este recurso técnico, alojado en su sitio web, presenta descripciones breves de 21 algoritmos distintos, junto con implementaciones en múltiples lenguajes de programación co

IA transforma el desarrollo de Android: una reflexión

El artículo "Leave Me Behind" de Adam McNeilly reflexiona sobre el impacto de la inteligencia artificial (IA), específicamente los modelos de lenguaje grandes (LLMs), en la comunidad de desarrollo de software, y en particular, en los desarrolladores de Android. El autor, con una década de experienci

TSDuck: nueva herramienta open source para manipular flujos de transporte

TSDuck es un nuevo marco de trabajo de código abierto desarrollado por Thierry Lelégard para la manipulación de flujos de transporte MPEG. Diseñado como una caja de herramientas general para ingenieros de televisión digital, el software facilita tareas de prueba, monitoreo, integración y depuración

Java destaca en comparativa de lenguajes para plugins de IA

Un desarrollador ha desarrollado un plugin para la plataforma de inteligencia artificial Claude destinado a procesar documentos DOCX utilizando tres lenguajes de programación distintos: Ruby, Java y TypeScript. Esta comparación se centra en la capacidad de cada tecnología para manejar archivos zip y

Endive: nuevo runtime de wasm para java sin dependencias nativas

El proyecto Endive, desarrollado por Bytecode Alliance, es un nuevo tiempo de ejecución nativo de Java para WebAssembly (Wasm). Lanzado como un fork de Chicory, permite ejecutar módulos Wasm directamente en la Máquina Virtual de Java (JVM) sin dependencias nativas ni llamadas JNI. La relevancia de e

Creador de herramienta de pruebas inyecta código destructivo a agentes de IA

Un desarrollador de código abierto ha introducido una inyección de prompt destructiva en su aplicación de prueba Java para sabotear a los agentes de codificación por IA. Johannes Link, creador de jqwik, incluyó instrucciones ocultas que ordenan borrar todo el código y las pruebas si son ejecutadas p

Herramienta aislop limpia código generado por asistentes de IA

El desarrollador Scanaislop ha presentado aislop, una herramienta de línea de comandos diseñada para depurar el código generado por asistentes de programación impulsados por inteligencia artificial. Este problema surge cuando herramientas como Claude Code o Cursor escriben código funcional que pasa

CodeGraph reduce las llamadas a herramientas y los costes en asistentes IA

CodeGraph es una herramienta de código abierto que genera un grafo de conocimiento de código pre-indexado para potenciar asistentes de codificación basados en inteligencia artificial, como Claude Code, Cursor, Codex, OpenCode, Hermes Agent, Gemini, Antigravity y Kiro. Su objetivo principal es reduci

CodeGraph reduce las llamadas a herramientas y los costes en asistentes IA

CodeGraph es una herramienta de código abierto que genera un grafo de conocimiento de código pre-indexado para potenciar asistentes de codificación basados en inteligencia artificial, como Claude Code, Cursor, Codex, OpenCode, Hermes Agent, Gemini, Antigravity y Kiro. Su objetivo principal es reduci

Yo amo la computadora: un viaje personal por la cultura geek

En un ensayo autobiográfico, el autor reflexiona sobre cómo descubrió su pasión por la informática en la Noruega de los años noventa, a partir de un IBM 486 DX6 con Windows 3.0 que su madre llevó a casa. Describe su infancia en Dølihagen, los traslados familiares tras la muerte de su padre y cómo la

Trinket se ofrece gratis para siempre en una edición comunitaria de Strive Math

Trinket, una plataforma de programación en el navegador de código abierto, ya está disponible de forma gratuita y permanente a través de una edición comunitaria alojada por Strive Math en trinket.strivemath.org. Todas las funcionalidades son gratuitas sin planes de pago ni periodos de prueba, gracia

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

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

Programación funcional desde cero: motivación y funciones matemáticas

Este artículo, primero de una serie titulada "Programación funcional desde los principios básicos", explica qué es la programación funcional y por qué importa. Presenta las cuatro grandes familias de paradigmas de programación (imperativo procedural, orientado a objetos, lógico y funcional) y enmarc

Por qué los patrones de diseño suelen sobrar en el software moderno

Los patrones de diseño, popularizados por el libro de 1994 de la «Banda de los Cuatro» (Gamma, Helm, Johnson y Vlissides), se concibieron como plantillas reutilizables y agnósticas al lenguaje para resolver problemas recurrentes de diseño. Con el tiempo, señala el autor, se han convertido en dogma:

Cómo Go implementa sus genéricos con GC shape stenciling

Go emplea una técnica intermedia entre la monomorfización completa de Rust o C++ y la borradura de tipos de Java para implementar los genéricos introducidos en Go 1.18: el GC shape stenciling. En lugar de generar una copia del código genérico por cada tipo concreto, el compilador agrupa los tipos se

La función de OxCaml que más lenguajes deberían copiar

OxCaml, el superset de OCaml desarrollado por Jane Street, incorpora una función que obliga al compilador a garantizar que una función completa no realiza asignaciones en el heap. Basta con anotar el código con [@zero_alloc]: si cualquier parte del árbol de llamadas reserva memoria, la compilación f

Estreno de 'The Java Story', documental oficial sobre la historia del lenguaje

'The Java Story | The Official Documentary' es un documental de 74 minutos publicado por el canal CultRepo que repasa la historia del lenguaje de programación Java, desde su nacimiento como proyecto interno en Sun Microsystems hasta su papel actual en la empresa y la nube. El filme, dirigido por Joe

Copybara: la herramienta de Google para sincronizar código entre repositorios

Copybara es una herramienta desarrollada y utilizada internamente en Google cuyo propósito es transformar y mover código fuente entre distintos repositorios. Responde a una necesidad habitual en proyectos de software: mantener sincronizados repositorios con políticas de visibilidad diferentes, como

Diccionarios y tablas en KDB/Q: guía práctica de sus tipos de datos nativos

KDB/Q incorpora de forma nativa dos estructuras de datos fundamentales, los diccionarios y las tablas, que en lenguajes como Java requieren construcciones alternativas como HashMap o ArrayList. Comprender estas estructuras resulta clave para sacar partido a la velocidad y el rendimiento de KDB/Q en

Slopo: detector de código duplicado mediante embeddings

Slopo es una herramienta de línea de comandos diseñada para localizar fragmentos de código similares que se encuentran dispersos dentro de un mismo proyecto, un tipo de duplicación especialmente difícil de identificar tanto para herramientas tradicionales como para la inspección manual. A diferencia

«En nuestro lado no ha cambiado nada»: tres incidentes reales de Big Data

Gregory Weintraub, líder de un equipo de Big Data en IBM, relata tres incidentes de producción recientes en los que la frase «en nuestro lado no ha cambiado nada» resultó falsa o insuficiente. En el primer caso, una actualización del framework que escribe eventos en un data lake optimizó la velocida

Sobrecargar la sobrecarga: dos significados de 'overloading' en Python

En Python no existe la sobrecarga de métodos tal como se entiende en Java o C++: si una clase define dos métodos con el mismo nombre, el segundo sobrescribe silenciosamente al primero y la primera versión desaparece. Esto suele confundir a quienes vienen de lenguajes tipados estáticamente, donde dis

Qué cuesta de verdad la recolección de basura en un programa

La recolección de basura (GC) no cobra por la memoria usada, sino por los objetos vivos y las referencias entre ellos: por eso un grafo de muchos objetos pequeños resulta mucho más caro de barrer que un único búfer del mismo tamaño. El artículo explica que toda la memoria dinámica vive en el heap —l

Tipos de prueba en Dart: clases finales como testigos computacionales

Los tipos de prueba, también conocidos como tipos testigo o de evidencia, son un patrón de programación en el que la mera existencia de un valor garantiza que un determinado cómputo se ha ejecutado. En Dart 3.0, este patrón se materializa combinando cuatro mecanismos: el modificador final, que impid

Cómo tres mensajes en frío cambiaron mi vida

Zach Holman repasa tres episodios en los que una iniciativa de contacto no solicitado transformó su trayectoria: conseguir plaza en Carnegie Mellon tras ser incluido en lista de espera —la universidad admite apenas entre un 1% y un 10% de quienes esperan en esa lista—, incorporarse a GitHub en sus p

OpenJDK prohíbe el contenido generado por IA en sus contribuciones

La comunidad OpenJDK, patrocinada por Oracle, ha aprobado una política provisional que prohíbe incluir contenido generado total o parcialmente por modelos de lenguaje, modelos de difusión o sistemas de aprendizaje profundo en cualquier contribución al proyecto. La medida afecta a código fuente, text

OpenJDK fusiona la primera vista previa de los Value Objects (JEP 401)

El repositorio principal de OpenJDK (jdk/master) ha recibido un pull request que agrupa 2.934 commits para implementar la primera vista previa de la JEP 401 (Value Objects), uno de los cambios más ambiciosos del proyecto Valhalla. La propuesta introduce en el lenguaje Java un nuevo tipo de objeto: l

Cómo codificar métodos guarded en OCaml con testigos de igualdad de tipos

Los métodos guarded permiten asociar restricciones al receptor (self) únicamente a métodos concretos, de modo que solo puedan invocarse cuando el receptor cumpla dichas restricciones. OCaml no admite esta construcción de forma nativa en su sintaxis, pero el artículo muestra cómo codificarla mediante

Cómo RuneScape de 2004 metió un multijugador en 56k de módem

Un análisis técnico detallado explica cómo RuneScape, lanzado por Jagex en 2004, consiguió ofrecer un mundo 3D con hasta dos mil jugadores por servidor sobre conexiones de módem de 56 kb/s, en un applet de Java dentro del navegador. La clave fue una obsesión constante por no desperdiciar ni un byte.

La física del caché de compilación en Docker: tres almacenes, tres reglas

Docker no utiliza un único sistema de caché durante la compilación de imágenes, sino al menos tres con vidas, reglas de invalidación y modos de fallo distintos. Comprender en cuál de ellos reside la ganancia real de cada proyecto es la clave para elegir una estrategia de caché eficaz, según un análi

Haskell en cinco puntos: elección incondicional mediante parametricidad

Justin Le publica la segunda entrega de su serie «Five-Point Haskell», centrada en el principio que bautiza como «elección incondicional». La idea aprovecha la parametricidad de Haskell: cuando una función tiene un tipo polimórfico como `forall a. a -> a`, el compilador deduce propiedades que toda i

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

Recopilaciones de guías de interfaz humana de Apple y otras plataformas

Matt Sephton, desarrollador, ha reunido en un repositorio de GitHub la práctica totalidad de las guías de interfaz humana (Human Interface Guidelines, HIG) publicadas por Apple desde 1987 hasta 2014, incluyendo borradores tempranos, documentación de NeXT y de Newton. La colección, mantenida por Seph

El software gira en torno a las personas, no al código

Una carta abierta dirigida a desarrolladores nóveles defiende que el éxito de un proyecto de software depende más de las personas que del código en sí. El autor, Dan, confiesa que al inicio de su carrera creía que escribir código era la parte central del trabajo, por lo que invirtió tiempo en guías

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

Goroutines 101: guía básica de concurrencia en Go

Go destaca frente a Java, Python o Erlang por simplificar la concurrencia a una sola palabra clave: `go`. Una goroutine es una función que el runtime de Go ejecuta en paralelo con el resto del programa, sin que el desarrollador tenga que crear hilos, dimensionar pools ni instalar librerías. El artí

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

Trampas del benchmarking en sistemas modernos: por qué los resultados engañan

Benchmarking en sistemas modernos rara vez produce datos limpios y comparables. Aunque el software bajo prueba sea determinista, el resto del entorno —sistema operativo, hardware, JVM, mecanismos de seguridad— introduce variaciones que pueden cambiar los tiempos de ejecución entre iteraciones y entr

Implementar `nameOf` en Java introspeccionando el bytecode

El artículo muestra cómo reproducir en Java la expresión `nameof` de C#, que devuelve el nombre textual de un identificador para evitar duplicaciones en mensajes de validación. En lugar de añadir una característica al lenguaje, la propuesta se apoya exclusivamente en bibliotecas estándar: la API `St

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

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í

Rust Glancer: un servidor LSP ligero para Rust y el futuro de rust-analyzer

Rust Glancer es un nuevo servidor LSP (Language Server Protocol) funcional para Rust que, según se destaca en una publicación comunitaria, consume aproximadamente cien veces menos memoria RAM que las alternativas existentes como rust-analyzer. La entrada, surgida a partir de un comentario en lobste.

Mergiraf: controlador de fusión de Git para múltiples lenguajes

Mergiraf es un controlador de fusión (merge driver) para Git diseñado para gestionar archivos de diversos lenguajes de programación y formatos de archivo. Su principal característica es la capacidad de realizar fusiones estructuradas sintácticamente, lo que permite una integración más precisa y segu

ChaosTree: librería Java de árboles binarios y N-arios sin dependencias

ChaosTree es una librería de Java para conjuntos y mapas ordenados que se distingue por su arquitectura sin dependencias externas y su enfoque en el rendimiento de alto nivel. El proyecto ofrece implementaciones de árboles AVL, Rojo-Negro, B y B+, organizadas en dos familias: una binaria para consul

Alternativas a los puntos flotantes en programación

La representación de números en computación no se limita a los puntos flotantes estándar, que operan en base binaria y pueden introducir errores de precisión. Existen cinco alternativas principales implementadas en software, cada una con ventajas y desventajas específicas en términos de velocidad y

El ajedrez a ciegas como modelo para programar con IA

La programación asistida por inteligencia artificial está transformando radicalmente el rol del ingeniero de software, generando un debate sobre el nivel de control humano necesario. A diferencia del 'vibecoding', donde se delega toda la lógica sin revisión, el autor argumenta que los desarrolladore

Siete tareas clave para dejar tu PC a punto antes de la vuelta al cole

Con el fin de las vacaciones, el PC vuelve a ser herramienta central de trabajo y estudio y conviene dedicarle una sesión de mantenimiento para alargar su vida útil, mejorar el rendimiento y reforzar la seguridad. La guía repasa las principales tareas, aplicables a Windows y, en su mayoría, también

Análisis técnico de la gestión de memoria en el lenguaje V

El lenguaje de programación V ofrece un sistema de gestión de memoria que combina recolección de basura (GC), gestión manual y un modo de liberación automática llamado autofree. Aunque la documentación oficial promete que el autofree resuelva el 90-100% de la memoria, las pruebas prácticas con herra

El origen del número mágico 0xCAFEBABE en los archivos Java

El número hexadecimal 0xCAFEBABE, conocido como el número mágico, es la secuencia de los primeros cuatro bytes de cada archivo de clase Java (.class). Su propósito principal es permitir a las herramientas de desarrollo distinguir rápidamente los archivos válidos de Java de otros formatos de binario.

Codes: una librería JVM ligera para estandarizar resultados y mapear protocolos

Codes es una biblioteca para JVM (Java 17+, sin dependencias en tiempo de ejecución) que ofrece identidades estables para los resultados de una aplicación y mappings explícitos entre fronteras de protocolo. Su propósito es que un mismo dominio conserve la misma identidad de outcome —por ejemplo, com

JDK 27 llega a General Availability con nueve nuevas mejoras

La implementación de referencia de Java 27, conocida como JDK 27, ha alcanzado su estado de General Availability (GA) tras su lanzamiento como segundo Candidate de Referencia (RC) el 20 de agosto. El build 35, que se había puesto a disposición para pruebas de acceso temprano (P1), no ha reportado ni

Swift 6.4 llega con mejoras en construcción, concurrencia y compatibilidad

Apple ha lanzado la versión 6.4 de Swift, una actualización que busca simplificar el código diario y mejorar el rendimiento en múltiples plataformas. El cambio más significativo es la adopción de Swift Build como sistema de construcción predeterminado en Swift Package Manager, lo que permite que los

onboardapi: biblioteca para comunicación de sensores con DDS

onboardapi es una biblioteca de interfaz y middleware desarrollada por Rheinmetall que facilita la comunicación entre sistemas de sensores y componentes de software. Su objetivo principal es garantizar la interoperabilidad mediante un modelo de datos estandarizado, diseñado para entornos de hardware

Freenet/Hyphanet lanza versión 0.7.5 con soporte Java 17

El equipo de desarrollo de Freenet/Hyphanet ha publicado la versión 0.7.5, la última compatible con Java 8, antes de abandonar dicho soporte. La decisión se debe a que Debian oldstable solo ofrece Java 11, lo que obliga a migrar a Java 17 para mantener un sistema de construcción estable y de bajo ma

Análisis técnico de las limitaciones de parámetros en Rust

El artículo analiza las diferencias fundamentales entre la gestión de parámetros y argumentos en el lenguaje de programación Rust y otros sistemas como Ruby o Java. El autor argumenta que, aunque Rust carece de funciones avanzadas como los parámetros nombrados, los argumentos opcionales con valores

El acrónimo CRAP para medir la calidad del código

CRAP, que significa Change Risk Anti-Patterns, es un acrónimo técnico desarrollado en 2007 por Alberto Savoia y Bob Evans para identificar patrones de código de mala calidad. Su origen surge de la necesidad de un término memorable que los desarrolladores usen para describir código complejo o difícil

Sintaxis de declaración de tipos en lenguajes de programación

La sintaxis de declaración de tipos varía significativamente entre los lenguajes de programación modernos, reflejando influencias históricas y decisiones de diseño específicas. La mayoría de los lenguajes actuales, como Java, C# y D, han adoptado la sintaxis de C, aunque esta puede generar ambigüeda

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

txt: editor de terminal rápido y sin modales para ingenieros

txt es un editor de texto para terminal diseñado específicamente para ingenieros que buscan una experiencia de edición rápida, sin la complejidad de los sistemas modales ni la fricción de los editores gráficos. Su filosofía de diseño prioriza la inmediatez: el editor se abre al instante, las teclas

Treepeat: herramienta para detectar similitudes de código con AST

Treepeat es una herramienta de línea de comandos diseñada para identificar bloques de código duplicados o similares dentro de una base de código. A diferencia de los métodos tradicionales que comparan líneas de texto, Treepeat utiliza el análisis del árbol abstracto sintáctico (AST) generado por Tre

La tecnología requiere humanistas para superar la era de la IA

El artículo argumenta que la profesión de la tecnología escrita y el desarrollo de software están perdiendo relevancia si se limitan a la acumulación de conocimientos técnicos específicos, como el uso de Java o Bash. En un contexto donde la inteligencia artificial puede gestionar la recuperación de

Un desarrollador de bajo nivel denuncia el impacto de los LLM en su carrera

Un desarrollador de software con ocho años de experiencia en programación de bajo nivel ha publicado una reflexión personal sobre el impacto de los modelos de lenguaje de gran escala (LLM) en su profesión. El autor, quien se identifica como un 'codificador' enfocado en detalles, optimización de rend

Por qué evitar efectos secundarios en declaraciones if

Las declaraciones condicionales deben limitarse a la verificación de una condición lógica, no a la ejecución de código como efecto secundario. Utilizar el valor de retorno de una función directamente dentro de un if genera ambigüedad en la intención del código y dificulta la lectura. Por ejemplo, si

La pérdida de precisión en el vocabulario de la ingeniería de software

El autor reflexiona sobre la erosión de la precisión conceptual en el desarrollo de software, utilizando la analogía histórica de la República Romana y el discurso de Cato el Joven. En 63 a.C., Cato argumentó que la República se encontraba al borde del colapso porque se habían perdido los nombres ve

fakecloud: emulador local de AWS con 105 servicios y SDKs de prueba

fakecloud es un emulador de nube local para AWS diseñado para facilitar pruebas de integración sin necesidad de cuentas de pago ni tokens de autenticación. A diferencia de soluciones como LocalStack Community, fakecloud permite ejecutar aplicaciones con clientes AWS estándar y herramientas de infrae

La sintaxis de Lisp y los principios de percepción visual

La sintaxis de Lisp, caracterizada por su uso intensivo de paréntesis, ha sido históricamente considerada menos legible que las notaciones de lenguajes como Python, Java o C. Aunque muchos atribuyen esta dificultad a la falta de familiaridad, el autor argumenta que existen factores cognitivos y visu