4 puntos por GN⁺ 2023-10-09 | 1 comentarios | Compartir por WhatsApp
  • Este artículo presenta Berry, un lenguaje de scripting embebido ultraligero y de tipado dinámico.
  • Berry fue diseñado especialmente para dispositivos embebidos de bajo rendimiento.
  • El tamaño del código del núcleo del intérprete de Berry es menor de 40 KiB y puede ejecutarse con menos de 4 KiB de heap. Esto fue probado en una CPU ARM Cortex M4 usando Thumb ISA y el compilador ARMCC.
  • El intérprete de Berry incluye un compilador de una sola pasada y una máquina virtual (VM) basada en registros. Todo el código fue escrito en ANSI C99.
  • En Berry, no todos los tipos son objetos de clase. Los tipos de valor simples como int, real, boolean y string no son objetos de clase, mientras que list, map y range sí lo son. Esto se debe a consideraciones de rendimiento.
  • En el contexto de Berry, el término "VM basada en registros" tiene el mismo significado que en la computación general.

1 comentarios

 
GN⁺ 2023-10-09
Comentarios en Hacker News
  • Berry es un lenguaje de scripting embebido, ultraligero y de tipado dinámico, con un conjunto de funciones sorprendentemente amplio para un runtime de 40 KB.
  • Ejecuta un lenguaje similar a Python/Ruby y admite estilos procedimental, orientado a objetos y funcional.
  • Berry destaca por precrear objetos constantes y colocar la mayoría en ROM, lo que ahorra RAM para datos variables de una forma que no se ve en MicroPython o Lua.
  • Berry se usa en Tasmota, una plataforma para dispositivos IoT.
  • La documentación del lenguaje recibe muchos elogios por su amplitud y por incluir un "manual corto" para desarrolladores con experiencia.
  • Algunos usuarios expresaron que les gustaría un lenguaje similar con menos paradigmas y tipado estático para usarlo como lenguaje de configuración.
  • Hay sugerencias sobre ofrecer bindings para otros lenguajes y preguntas sobre la posibilidad de reanudar funciones o usar generadores.
  • Los usuarios están interesados en comparaciones de rendimiento y uso de memoria entre Berry y Lua, así como en funciones de sandboxing para ejecutar código no confiable.
  • Hay preguntas sobre la posibilidad de mostrar los frames del stack con los nombres de las funciones del script en los stack traces nativos.