DinoCode v0.2.0: Lanzamiento oficial

El código fuente del compilador y la máquina virtual de DinoCode (desarrollado en Rust) ya está oficialmente disponible para la comunidad bajo la licencia Apache 2.0.

De proyecto académico a open source#

Hasta ahora la versión v0.1.0 existía de forma cerrada como binarios pre-compilados para la evaluación de usabilidad en mi tesis de grado. Tras culminar con éxito la defensa y graduarme como Ingeniero de Software el paso natural para el proyecto era ser liberado.

Transparencia

Al liberar el código busco ofrecer transparencia y abrir las puertas a cualquiera que desee estudiar el funcionamiento interno del lenguaje o contribuir a su desarrollo.

La nueva plataforma web#

A la par de esta apertura estoy lanzando oficialmente este sitio web. Lo desarrollé en estos últimos meses (incrementalmente) como una plataforma completa diseñada para que puedas experimentar con el lenguaje de manera interactiva.

El sitio estrena una documentación que escribí personalmente con guías, ejemplos y notas sobre mis decisiones al diseñar la sintaxis y funcionamiento de DinoCode.

Ejemplos interactivos

La documentación incluye bloques de código ejecutables para que pruebes cómo funciona DinoCode directamente desde el navegador. Presiona el icono .

nombre = "DinoCode 🦖"
print "Bienvenido a " nombre

Entorno interactivo y WebAssembly#

El sitio integra un entorno interactivo basado en WebAssembly. A diferencia de otros playgrounds, este cuenta con soporte para lecturas por teclado en tiempo real y funciones para pausar la ejecución sin bloquear el navegador.

Por ejemplo puedes escribir código Dino como el siguiente y probarlo tú mismo:

# Lectura por teclado con el operador <-
nombre <- "Escribe tu nombre: "

# Usando funciones como input()
apellido = input("Escribe tu apellido: ")

# Pausa de 3 segundos
print "DinoCode está esperando por 3 segundos..."
Time.sleep 3

# Resultado
> MENSAJE
  ¡Hola, $nombre $apellido! 
  Bienvenido a DinoCode.

print MENSAJE

Para complementar la experiencia de aprendizaje el editor también genera en tiempo real:

Diagramas de flujo:

Diagrama de flujo visual generado por el editor de DinoCode

Inspección del Bytecode:

Vista del bytecode generado por el compilador de DinoCode

El futuro de DinoCode#

DinoCode pasa de ser un prototipo académico a un ecosistema accesible y transparente. Te invito a explorar el repositorio en GitHub, experimentar con la consola web y formar parte de este proyecto.

Únete a la comunidad

¿Encontraste un bug o tienes una idea para mejorar el lenguaje? ¡Los PRs y los Issues en el repositorio oficial son más que bienvenidos!