¿Por qué Python ha sido respaldado por Google y se ha vuelto tan popular rápidamente y Lua no?
¿Sabes por qué Lua se ha mantenido en segundo plano?
¿Por qué Python ha sido respaldado por Google y se ha vuelto tan popular rápidamente y Lua no?
¿Sabes por qué Lua se ha mantenido en segundo plano?
Realmente amo a Lua, pero tiene algunas limitaciones reales, y como otros han mencionado, se derivan principalmente de los orígenes de Lua como un lenguaje de archivo de configuración y luego como un lenguaje de scripting incorporado.
Debido al objetivo de mantener a Lua pequeño, solo existe una biblioteca estándar muy pequeña, que solo tiene funcionalidad básica.
Esto ha llevado a una cultura desafortunada en los círculos de Lua donde a los desarrolladores de Lua les gusta volver a implementar la funcionalidad ofrecida por muchas bibliotecas estándar de otros idiomas en lugar de trabajar colectivamente en un conjunto universalmente aceptado de bibliotecas centrales.
Cosas como subprocesos múltiples, expresiones regulares, métodos de acceso a archivos independientes de la plataforma e incluso operaciones de bits (hasta 5.2) se "no incluyen" ya que harían a Lua mucho más grande y más lento. Claro que puedes conseguir que las bibliotecas hagan estas cosas, pero luego tienen mantenedores independientes y niveles de calidad.
No me malinterpretes. Amo a Lua por las mismas razones que acabo de enumerar.
Simple: Lua tiene más objetivos de "nicho" que Python .
Se cree que Python es útil como lenguaje de programación general. Por lo tanto, es útil en muchos casos. Cubre muchos tipos de aplicaciones bien conocidas, pero no compite directamente con otros lenguajes que pueden estar dirigidos a restricciones específicas, pero la simplicidad de su sintaxis.
Lua está totalmente orientado a ser un lenguaje de secuencias de comandos incorporado. Es un propósito inicial, incluso si se usa en otros contextos actualmente, como los sistemas de compilación; se integrará en el software y permitirá la fácil implementación de funciones y estructuras de script específicas del dominio. Es tan minimalista que incluso se puede usar en hardware realmente restringido (utilicé Lua en NintendoDS), es liviano, fácil de usar, RÁPIDO y es un lenguaje tan minimalista, pero se cree que se extiende a muchos dialectos (importando paradigmas como orientación a objetos) están disponibles. Es tan portátil (ANSI C) que puede usarlo en cualquier hardware integrado con una cantidad decente de memoria para el software integrado moderno (si recuerdo bien, el valor predeterminado de lua vm es de alrededor de 400ko y casi nunca crecerá si no crea los objetos en bucle). ...).
Por lo tanto, Lua se usa inicialmente en un contexto en el que necesitas insertar un lenguaje de scripting para tu aplicación .
Python se usa para ... casi cualquier cosa que no requiera un lenguaje más especializado (puedes hacer juegos con mucho rendimiento con Python, pero algunos juegos de alto rendimiento realmente requieren evitar este tipo de sistema).
Es simplemente que Python se usa en más contextos que Lua. Por lo que sé, aparte de Android (que brinda soporte de Java y lenguaje nativo), Google no es una compañía de software integrado, por lo que realmente no necesitan Lua en todas partes, mientras que Python es útil para todo lo que hacen (web, sistema de compilación, comunicación, web y web).
Python también se usa en muchos juegos para scripts incrustados, pero es más pesado y más lento que Lua. La sintaxis de Python lo hace más apropiado para los grandes juegos que dependen mucho de la información de los scripts en su estructura de juegos (no estoy seguro de que esté claro, pero creo que si necesitas un "lenguaje completo real" para los scripts, la incorporación de Python podría ser una buena idea, si el rendimiento está bien para usted). Python no fue hecho para ser incrustado, así que está bien. Un equivalente de Python que está diseñado para incrustarse en C ++ es Falcon.
Para una comparación extrema, algunos lenguajes que apuntan a incrustar y tratan de tener una sintaxis más completa que la Lua minimalista, y compiten en rendimiento: ChaiScript, AngelScript, Io ...
Por cierto, he visto que los nuevos sistemas de compilación como PreMake o Bam utilizan Lua como el lenguaje del archivo de compilación. La idea es que sea ligero y bien conocido por los desarrolladores de juegos (construir sistemas en el desarrollo de juegos es un problema importante). Entonces tal vez ese es otro dominio donde Lua podría ser más apreciado. Sin duda, es más fácil de usar que la sintaxis de CMake ...
¿Puedes hacer todo con Lua, se crea como un lenguaje de scripting para extender programas? Sí, pero está lejos de limitarse a esto, hay muchas bibliotecas para Lua, y con las herramientas adecuadas (FFI o tolua de LuaJIT) incluso puedes usar una biblioteca C / C ++. La razón que hace que Python sea más usado en mi punto de vista es solo la edad, Python se usa como primer idioma en muchos colegios y escuelas, hay más personas que conocen Python que Lua y es mucho más fácil encontrar una buena biblioteca para Python Que para Lua, porque el lenguaje es más maduro. Además, no sé mucho sobre Python, pero por mucho que sepa, es fácil ocultar su código al usuario final, lo que en Lua no es tan fácil, ¿verdad?