Bienvenidos sean a este post, hoy les traigo un lenguaje de los menos conocidos en ambitos generales pero no por esto sea un desconocido para otros ambitos, como por ejemplo web o video juegos. La particularidad de este lenguaje que a diferencia de otros no intenta reemplazar o solapar a un lenguaje, ya que su gran aliado es C porque todo lo que maneja este lenguaje es de manera correcta y eficiente, como operaciones a bajo nivel y con software de terceras partes, en cambio Lua ayuda a C a realizar las tareas en las cuales no es muy eficiente:

  • Una buena distancia del hardware
  • Estructuras dinamicas
  • Sin redundancias
  • Facilidad de testear y depurar
  • Ambiente seguro
  • Manejo automatico de memoria
  • Facilidades para manipular datos con tamaño dinamico

Una gran parte de poder de este lenguaje viene de la libreria, esto no es por casualidad, porque una de las mayores firmezas es la extensibilidad, esto gracias a otras caracteristicas como los tipos dinamicos que permiten distintos tipos de polimorfismo, la asignacion automatica de memoria que simplifica las interfaces porque no necesitamos a nadie que ubique y saque de memoria y tambien manejando los overflow (sobrecarga), las funciones de alto orden y funciones anonimas nos permiten una mejor parametrizacion dando como resultado funciones mas versatiles, a Lua mas que extensible se lo conoce como lenguaje pegamento porque Lua soporta un enfoque basado en componentes para el desarrollo de software, donde creamos una aplicacion “pegando” juntos componentes existentes de alto nivel, esto nos permite optimizar la carga de tiempos de CPU en un programa final, pero a diferencia de otros lenguajes pegamento tambien es un lenguaje hecho y derecho, donde no solamente podremos pegar otros componentes sino adaptarlos y darles otra forma para crear nuevos componentes.

Anuncios

Por supuesto que Lua no es solamente un lenguaje de tipo script, aunque podamos usar otros lenguajes que hacen mas o menos las mismas tareas pero Lua ofrece algunas caracteristicas que lo convierten en una mejor opcion:

  • Extensibilidad, este lenguaje ha sido diseñado desde cero para ser extendido tanto por codigo de Lua como de C, esto nos facilita poder crear interfaces entre Lua y C/C++, y tambien ha sido integrados con otros lenguajes como Fortran, Java, SmallTalk, Ada, C#, Perl y Ruby (estos ultimos dos son lenguajes de tipo Script)
  • Simplicidad, este lenguaje es pequeño y simple, esto trae como consecuencia que es mas facil de aprender y tambien contribuye a su pequeño tamaño, el que pueda caber en un solo disquette.
  • Eficiencia, este lenguaje en comparacion con otros lenguajes por medio de benchmarks es sutilmente mas eficiencia que otros lenguajes de tipo script
  • Portabilidad, cuando hablamos de portabilidad no hablamos solamente de que corra en Unix y Windows sino tambien en Playstation, Xbox, Mac OS, OS X, BeOS, QUALCOMM brew, MS-DOS, IBM mainframes, RISC OS, Symbian OS, Palm OS, Procesadores ARM, Procesadores Rabbit y por supuesto Unix y Windows, esto es gracias a que el codigo para cada una de las plataformas es practicamente el mismo, esto es porque Lua no usa una compilacion condicional para adaptarse a cada plataforma sino en cambio que se ajusta al estandar ANSI C (ISO) permitiendo esta portabilidad

Con esto tenemos una base con los conceptos del lenguaje, hemos hablado de beneficios, caracteristicas y algunas caracteristicas mas especificas para entender porque goza de cierta popularidad, a continuacion les enlistare algunos conceptos que deben tener en cuenta antes de comenzar con este curso:

  • Algun conocimiento de programacion, no es fundamental pero ayuda
  • Usare una PC virtual con Debian como Sistema Operativo, les recomiendo este post donde explico como instalarlo
  • Aprenderemos desde cero hasta la parte mas compleja tratando de no omitir nada.
  • No se preocupen por los terminos porque se explicaran cada uno de ellos

Hasta aqui una breve descripcion del lenguaje, algunos conceptos basicos, algunas caracteristicas propias del lenguaje, como se puede implementar y cuales son las ventajas de utilizar este lenguaje, en los proximos dias iremos subiendo post a post para entenderlo desde cero, espero les sea util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00