Luau, una variante de verificación de tipos del lenguaje Lua se convierte en open source

Hace poco se dio a conocer la liberación de la primera versión independiente del lenguaje de programación Luau, el cual continúa con el desarrollo de Lua y que ademas es compatible con versiones anteriores de Lua 5.1.

El lenguaje Luau está diseñado principalmente para incrustar motores de secuencias de comandos en aplicaciones y tiene como objetivo lograr un alto rendimiento y un bajo consumo de recursos. El código del proyecto está escrito en C++ y está abierto bajo la licencia MIT.

Luau amplía Lua con capacidades de verificación de tipos y algunas construcciones sintácticas nuevas como los literales de cadena. El idioma es compatible con versiones anteriores de Lua 5.1 y parcialmente con versiones más recientes. Se admite la API de Lua Runtime, lo que permite usar Luau con códigos y enlaces preexistentes.

A partir de hoy, Luau ya no es una parte inseparable de la plataforma Roblox; es un lenguaje de código abierto independiente.

El runtime del lenguaje se basa en un código de tiempo de ejecución 5.1 de Lua muy revisado, pero el intérprete se ha reescrito por completo. El desarrollo involucró algunas nuevas técnicas de optimización que permitieron lograr un mayor rendimiento en comparación con Lua.

Cuando se creó Roblox hace 15 años, elegimos Lua como lenguaje de programación. Lua era pequeño, rápido, fácil de integrar y aprender y abrió enormes posibilidades para nuestros desarrolladores.

Gran parte de Roblox se creó en Lua, incluidos cientos de miles de líneas de código desarrollado internamente que impulsa la aplicación Roblox y Roblox Studio hasta el día de hoy, y los millones de experiencias que los desarrolladores han creado. Para muchos de ellos, fue el primer lenguaje de programación que aprendieron.

El proyecto fue desarrollado por Roblox y se utiliza en el código de la plataforma de juegos y aplicaciones personalizadas de esta empresa, incluido el editor de Roblox Studio. Inicialmente, Luau se desarrolló a puerta cerrada, pero al final se decidió transferirlo a la categoría de proyectos abiertos para un mayor desarrollo conjunto con la participación de la comunidad.

Características principales:

  • Un sistema de tipo secuencial, que ocupa una posición intermedia entre la escritura dinámica y estática. Luau permite la escritura estática según sea necesario especificando la información del tipo a través de anotaciones especiales.
  • Se proporcionan los tipos integrados «any», «nil», «boolean», «number», «string» y «thread». Al mismo tiempo, también se conserva la posibilidad de utilizar la tipificación dinámica sin definir explícitamente el tipo de variables y funciones.
  • Soporte para cadenas literales (como en Lua 5.3)
  • Soporte para la expresión «continue», además de la palabra clave «break» existente, para saltar a una nueva iteración del ciclo.
  • Soporte para operadores de asignación compuesta
  • Soporte para el uso de bloques condicionales «if-then-else» en forma de expresiones que devuelven el valor calculado durante la ejecución del bloque. Puede especificar un número arbitrario de instrucciones elseif en un bloque.
  • La presencia de un modo sandbox que le permite ejecutar código que no es de confianza. Esta función se puede utilizar para organizar su propio código y el código escrito por otro desarrollador, por ejemplo, bibliotecas de terceros que no se pueden garantizar, para que se ejecuten una al lado de la otra.
  • Una limitación de la biblioteca estándar de la que se han eliminado las funciones que potencialmente podrían crear problemas de seguridad. Por ejemplo, bibliotecas «io» (acceso a archivos y procesos de inicio), «paquete» (acceso a archivos y carga de módulos), «os» (se eliminaron las funciones para acceder a archivos y cambiar las variables de entorno), «depurar» (memoria insegura manejo), «dofile» y «loadfile» (acceso al sistema de archivos).
  • Proporcionar herramientas para el análisis de código estático, detección de errores (Linter) y validar el uso de tipos.
  • Analizador, intérprete de código de bytes y compilador propio de alto rendimiento.
  • Luau aún no admite la compilación JIT, pero se argumenta que el intérprete de Luau es bastante comparable en rendimiento a LuaJIT en algunas situaciones.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.