Por que Python e não Lua? [fechadas]

44

Por que o Python foi apoiado pelo google e se tornou tão popular e o Lua não?

Você sabe por que a Lua ficou em segundo plano?

    
por BenjaminB 08.04.2011 / 23:52
fonte

3 respostas

37

Eu realmente amo o Lua, mas ele tem algumas limitações reais, e como outros já mencionaram, eles derivam principalmente das origens do Lua como uma linguagem de arquivo de configuração e depois como uma linguagem de script incorporada.

Por causa da meta de manter Lua pequena, existe apenas uma pequena biblioteca standard , que tem apenas a funcionalidade bare bones.

Isso levou a uma cultura desafortunada nos círculos Lua, onde os desenvolvedores Lua gostam de reimplementar a funcionalidade oferecida pelas próprias bibliotecas padrão de outras linguagens, em vez de trabalhar coletivamente em um conjunto universalmente aceito de bibliotecas centrais.

Coisas como multi-threading, expressões regulares, métodos de acesso a arquivos independentes de plataforma e até mesmo operações de bits (até 5.2) eram todas "não incluídas", pois tornariam Lua muito maior e mais lenta. Claro que você pode fazer com que as bibliotecas façam essas coisas - mas então elas têm mantenedores independentes e níveis de qualidade.

Não me entenda mal. Eu amo a Lua pelas mesmas razões que acabei de listar.

    
por 08.08.2011 / 09:32
fonte
52

Simples: Lua tem mais objetivos de "nicho" do que o Python .

O Python é considerado útil como uma linguagem de programação geral. Portanto, é útil em muitos casos. Ele abrange muitos tipos bem conhecidos de aplicativos, mas não entra diretamente na competição com outros idiomas que podem ser direcionados a restrições específicas, mas a simplicidade de sua sintaxe.

Lua é totalmente direcionada para ser uma linguagem de script incorporada. É uma finalidade inicial, mesmo se usada em outros contextos atualmente, como sistemas de compilação; deve ser incorporado ao software e permitir a fácil implementação de funções e estruturas de script específicas do domínio. É tão minimalista que pode até ser usado em hardware realmente restrito (eu usei Lua no NintendoDS), é leve, fácil de usar, FAST, e é uma linguagem minimalista, mas pensada para ser estendida que muitos dialetos (importando paradigmas como orientação a objetos) estão disponíveis. É tão portátil (ANSI C) que você pode usá-lo em qualquer hardware embarcado com boa quantidade de memória para software embarcado moderno (se bem me lembro, o padrão lua vm é em torno de 400ko e quase nunca crescerá se você não criar objetos em loop) ...).

Então, Lua é inicialmente usada no contexto em que você precisa incorporar uma linguagem de script para seu aplicativo .

O Python é usado para ... quase tudo que não requer uma linguagem mais niche (você pode fazer jogos bastante eficientes usando o Python, mas alguns tipos de jogos com desempenho pesado realmente exigem para evitar tal sistema).

É simplesmente que Python é usado em mais contextos do que Lua. Até onde sei, além do Android (que fornece suporte a Java e idioma nativo), o Google não é uma empresa de software embarcada. eles realmente não precisam de Lua em todos os lugares, enquanto o Python é útil para qualquer coisa que eles façam (web, sistema de compilação, comunicação, web e web).

O Python também é usado em muitos jogos para scripts incorporados, mas é pesado e mais lento que o Lua. A sintaxe do Python torna-o mais apropriado para grandes jogos que dependem muito de informações em script em sua estrutura de jogo (não tenho certeza se estou claro, mas acho que se você precisar de uma "linguagem completa real" para scripts, o Python pode ser uma boa idéia, se o desempenho é bom para você). O Python não foi feito para ser incorporado, então tudo bem. Um equivalente do Python que é direcionado para ser incorporado no C ++ é o Falcon.

Para uma comparação extrema, algumas linguagens que visam a incorporação e tentam ter uma sintaxe mais completa que a Lua minimalista, e competem no desempenho: ChaiScript, AngelScript, Io ...

A propósito, eu vi novos sistemas de compilação como PreMake ou Bam usar Lua como a linguagem de arquivos de compilação. A ideia é que ela é leve e bem conhecida dos desenvolvedores de jogos (construir sistemas no desenvolvimento de jogos é um grande problema). Então, talvez seja outro domínio em que Lua seja mais apreciada. É certamente mais fácil de usar do que a sintaxe do CMake ....

    
por 09.04.2011 / 00:10
fonte
4

Você pode fazer tudo com Lua, é criado como uma linguagem de script para estender programas? Sim, mas está longe de ser limitado, há muitas bibliotecas para Lua, e com as ferramentas certas (FFI ou tolua) você pode até usar uma biblioteca C / C ++ nela. A razão que faz o Python mais usado no meu ponto de vista é apenas a idade, o Python é usado como primeiro idioma em muitas faculdades e escolas, há mais pessoas que conhecem Python que Lua, e é muito mais fácil encontrar uma boa biblioteca para Python do que para Lua, porque a linguagem é mais madura. Além disso, eu não sei muito sobre o Python, mas, por mais que eu saiba, é fácil esconder seu código do usuário final, o que, em Lua, não é tão fácil, estou certo?

    
por 19.07.2013 / 05:51
fonte