it-swarm-eu.dev

Proč Python a ne Lua?

Proč byl Google podporován Python) a stal se tak rychle populární a Lua to neudělala?

Víte, proč Lua zůstala v pozadí?

47
BenjaminB

Opravdu miluji Luu, ale má určitá skutečná omezení a jak jiní zmínili, odvozují se většinou z Luových původů jako jazyk konfiguračního souboru a později později jako zabudovaný skriptovací jazyk.

Kvůli cíli udržet Luu malou, existuje pouze velmi malá knihovna standardní, která má pouze holé kosti.

To vedlo k nešťastné kultuře v Lua kruzích, kde vývojáři Lua raději znovu implementují funkčnost, kterou nabízejí standardní knihovny mnoha jiných jazyků, než aby společně pracovali na všeobecně přijímané sadě základních knihoven.

Věci, jako je vícevláknové zpracování, regulární výrazy, metody přístupu k souborům nezávislé na platformě a dokonce i bitové operace (do 5.2), nejsou všechny „nezahrnuty“, protože by Luu udělaly mnohem větší a pomalejší. Jistě můžete dostat knihovny udělat takové věci - ale ty mají nezávislé správce a úrovně kvality.

Nechápejte mě špatně. Miluji Luu ze stejných důvodů, jaké jsem právě uvedl.

40
sylvanaar

Jednoduché: Lua má více „mezer“ cílů než Python.

Python je považován za užitečný jako obecný programovací jazyk. Takže je to užitečné v mnoha případech. Pokrývá mnoho dobře známých typů aplikací, ale nevstoupí přímo do konkurence s jinými jazyky, které by mohly být zaměřeny na určitá omezení, ale na jednoduchost jeho syntaxe.

Lua je zcela zaměřena na to, aby byla vloženým skriptovacím jazykem. Je to počáteční účel, i když je v současné době používán v jiných kontextech, jako jsou například build systémy; má být zabudován do softwaru a umožňuje snadnou implementaci skriptových funkcí a struktur specifických pro danou doménu. Je tak minimalistický, že ho lze použít i na opravdu omezeném hardwaru (Lua jsem použil na NintendoDS), je lehký, snadno použitelný, RYCHLÝ a je takový minimalistický jazyk, ale myšlenka je rozšířena tak, že spousta dialektů (importování paradigmat jako orientace na objekt). Je tak přenosný (ANSI C), že jej můžete použít na jakémkoli vestavěném hardwaru se slušným množstvím paměti pro moderní vestavěný software (pokud si dobře pamatuji, výchozí lua vm je kolem 400ko a téměř nikdy nevzroste, pokud nevytváříte smyčky při vytváření objektů) ...).

Takže Lua se zpočátku používá v kontextu, ve kterém musíte do své aplikace vložit skriptovací jazyk.

Python se používá pro ... téměř cokoli, co nevyžaduje více specifický jazyk (pomocí Pythonu si můžete vytvořit docela výkonné hry, ale některé druhy výkonově náročných her se opravdu musí takovému systému vyhnout).

Je to jednoduše, že Python se používá ve více kontextech než Lua. Pokud vím, jiné než Android (které poskytují = Java a podpora rodného jazyka), Google není integrovaná softwarová společnost, takže Lua opravdu nepotřebují všude, zatímco Python je užitečný pro všechno, co dělají) (web, sestavení systému, komunikace, web a web).

Python se používá také v mnoha hrách pro vestavěné skriptování, ale je těžký a pomalejší než Lua. Syntaxe Python) je vhodnější pro velké hry, které se ve své herní struktuře hodně spoléhají na skriptované informace (nejsem si jistý, zda jsem tam jasný, ale jen si myslím, že pokud potřebujete "skutečné" jazyk "pro skriptování, vkládání Python by mohl být dobrý nápad, pokud je výkon pro vás v pořádku). Python nebyl vytvořen pro vložení, takže to je Ekvivalent Python), který je zaměřen na vložení do C++, je Falcon.

Pro extrémní srovnání, některé jazyky, které se zaměřují na vkládání a snaží se mít úplnější syntaxi než minimalistický Lua, a soutěží o výkon: ChaiScript, AngelScript, Io ...

Mimochodem, viděl jsem nové systémy sestavení, jako je PreMake nebo Bam, které používají Lua jako jazyk souboru sestavení. Myšlenka je taková, že je lehká a dobře známá od vývojářů her (hlavní problém je stavět systémy ve vývoji her). Možná je to další doména, kde by Lua mohla být více oceněna. Je to určitě uživatelsky přívětivější než CMake syntaxe ....

56
Klaim

S Luou můžete dělat všechno, je to vytvořeno jako skriptovací jazyk pro rozšíření programů? Ano, ale není to zdaleka omezeno, existuje spousta knihoven pro Luu a se správnými nástroji (LuaJITův FFI nebo tolua) můžete dokonce použít knihovnu C/C++. Důvod, proč je podle mého názoru Python) více používán, je věk, Python je používán jako první jazyk na mnoha vysokých školách a školách, je více lidí kteří vědí Python než Lua, a je mnohem snazší najít dobrou knihovnu pro Python než pro Lua, protože jazyk je vyspělejší.) nevím nic o Pythonu, ale stejně jako já vím, je snadné skrýt váš kód před koncovým uživatelem, co v Lua, není to snadné, mám pravdu?

4
Gustavo