» Overview » Why Lua?

Why Lua?

Extremely well crafted, Lua is the perfect example of a minimal, yet fully functional language.

Although generally advertised as a "scripting language" (and used accordingly especially in the game industry), it is also fully capable of running stand-alone programs and web services (ex: Adobe Lightroom, World of Warcraft, …).

Its limited resource requirements make it suitable to a lot of microcontroller families.

The intrinsic high portability of the original Lua code (which is ANSI C and runs virtually on every known platform), combined with the highly portable software architecture of eLua, allow for easy porting of the project to a large variety of architectures.

The peripheral access libraries/modules exported by eLua are also portable by design, so one could run a Lua program (without or with very few modifications) on every eLua supported platform.

This brings an unprecedent level of portability to the embedded aplications world. eLua inherits the minimalistic and functional design of Lua, staying in line with the well known KISS, Keep It Small and Simple philosophy.

Imagine programming to microcontrollers with features only found in big and expensive Desktop development frameworks:

  • Full Lua 5.1 language, not a sub-set, the same Lua for Desktops version
  • Dynamically typed
  • Collaborative multitasking
  • Extremely fast and efficient
  • Multiple memory management models (automatic, manual, emergency)
  • Powerful string management and pattern matching
  • Multiple numeric options (float, integer, fixed)
  • Infinite recursion (proper tail calls)
  • First class functions (lambda calculus)
  • Remote procedure calls (for distributed processing)
  • No operating system "below"
  • Architected to be extended and easily linked to other libs