BookinglyTech News
Software

Un veterano de Go defiende Odin: memoria manual, sin recolector y sin gestor de paquetes

El artículo no anuncia ninguna versión: es la defensa de un desarrollador que lleva diez años en Go y describe Odin como lo que le habría gustado que fuera su lenguaje.

2 min de lecturaLobsters0 vistas

Odin es un lenguaje de programación que se presenta como alternativa a Go para quien está harto del recolector de basura y del runtime, y la excusa para hablar de él es un artículo de un desarrollador con diez años de experiencia en Go que dice haber pasado del escepticismo al entusiasmo en una semana. No hay versión nueva ni anuncio detrás: el texto es una defensa del lenguaje y un repaso de lo que se gana y lo que se pierde al cambiarse.

Cómo lo describe el propio autor

Según su cuenta, Odin es un 60% Go, un 20% de cosas que le faltaban a Go, un 10% de programación de arrays y otro 10% de bajo nivel, FFI y gestión de memoria. Esa gestión es manual, así que no hay recolector. La distribución incluye librerías 3D, de ahí que mucha gente lo tome por un lenguaje para videojuegos; él sostiene que también sirve para backend porque su librería core se parece a la estándar de Go.

Sin recolector se caen cosas: no hay closures, ni composición, ni goroutines, ni selectores. Tampoco existe un tipo error. Los fallos se modelan con enums, unions y structs, con la directiva #shared_nil para encadenar jerarquías y #partial switch para desempaquetarlas. La sintaxis tiene 31 palabras clave, más directivas # y atributos @.

Lo que no trae

No tiene macros, ni comptime, ni constexpr, ni decoradores. Sí tiene genéricos, que el autor considera mejor diseñados que los de Go. Tampoco hay gestor de paquetes ni go.mod: un paquete es un directorio que copias dentro del proyecto y se importa por ruta relativa. La compilación se parece a la de Go (odin build ., odin run main.odin -file) y hay plugin de VSCode con autocompletado.

La documentación es escasa. El autor no considera que el resumen oficial que publica el proyecto sea documentación de verdad, y avisa de que buena parte de la stdlib no lleva comentarios ni ejemplos: se aprende leyendo código ajeno, empezando por el demo.odin que viene con el compilador.

El lenguaje, dice, está congelado y no cambiará; lo que sigue en desarrollo es el compilador, el toolchain y la librería core. Afirma que JangaFX y ChiAha lo usan en producción, aunque es una afirmación suya y no viene acompañada de ningún caso de uso con detalle.

La crítica al recolector y al runtime de Go lleva años sobre la mesa y cualquiera que haya peleado con fugas de memoria la reconocerá. Lo que frena a Odin no es la sintaxis: es que no hay ecosistema, ni documentación, ni gestor de paquetes, y eso pesa más que la elegancia cuando toca mantener algo en producción.