Steve Dekorte inventó ‘Io’ en 2002. Se escribe con “I” mayúscula y “o” minúscula (en google sólo encontrarás información si escribes “Io language”) y se trata de un lenguaje basado en prototipos como Lua o JavaScript.
En ‘Io’ prima la simplicidad y sencillez junto a una semántica sorprendentemente potente. A pesar de comportarse como un lenguaje orientado a objetos, no existen ni clases ni módulos. Todo son objetos, prototipos y slots. Podrás aprender la sintaxis básica en quince minutos y cómo funciona en treinta, aunque las librerías te costarán un poquito más. Una vez lo entiendas, comprenderás mucho mejor cómo funciona JavaScript.
Ejemplo de sintaxis básica y diagrama de objetos básico:
Ventajas:
- Entorno: Su máquina virtual es muy fácil de usar y entender para cualquier tipo de Sistema Operativo.
- Flexibilidad: Puedes cambiar las reglas básicas del lenguaje para adaptarlas a tu aplicación. Es bastante sencillo añadir proxies en cualquier parte cambiando el slot correspondiente.
- Concurrencia: A diferencia de Ruby o Java, la concurrencia está muy cuidada y actualizada en ‘Io’. Actores, futuros y corrutinas hacen muy fácil crear aplicaciones multihilo simples de testear y con altas prestaciones.
Desventajas:
- Sintaxis: ‘Io’ tiene “poca miga” en cuanto a sintaxis. Por un lado, hace que el lenguaje sea fácil de comprender al principio, sin embargo, conceptos complejos son muy complicados de comunicar correctamente. Dicho de otra manera, algunas veces puede ser bastante complicado entender qué está haciendo nuestro programa.
- Comunidad: Hoy por hoy, la comunidad Io es muy pequeña. Es complicado encontrar librerías para todo, a diferencia de Ruby, Java o C. También es complicado encontrar programadores y esto continuará siendo un círculo vicioso hasta que salga una aplicación escrita en ‘Io’ que rompa la baraja.
- Performance: ‘Io’ tiene ciertas limitaciones de performance en aplicaciones monohilo que afectan a la velocidad de la aplicación. Existen mecanismos demitigación construidos, pero es importante tenerlos en cuenta a la hora de programar.
En general, creemos que ‘Io’ merece una oportunidad. Con esta filosofía de simplicidad y flexibilidad, Steve Dekorte ha creado el concepto del ‘Lisp de los lenguajes basados en prototipos’. Para conocer ‘Io’ en profundidad, podéis entrar en su página oficial: iolanguage.org.
Puedes ver nuestra consultoría de transformación digital AQUI👈