Vreau să știu totul

Vizitatul nostru astăzi este un adevărat luptător al frontului ascuns. Ai putea vedea în jocuri (World of Warcraft, Angry Birds, X-Plane, S.T.A.L.K.E.R.) sau produsele companiei Adobe (Lightroom), dar chiar nu cred că există. Între timp, această limbă a fost de aproape 25 de ani și tot acest timp a făcut în liniște viața noastră virtuală puțin mai bună.

Vreau să știu totul

Informații succinte

Tipologia aici este dinamică, iar metadatele sunt folosite pentru a pune în aplicare moștenirea, adică este un instrument excelent pentru extinderea capabilităților produsului dvs. Iar din cauza compactității sale, este potrivit pentru utilizarea pe aproape orice platformă. Judecător pentru tine: tarball Lua 5.3.4 cantareste doar 296 de kilobytes (în "necomprimate" a - 1,1 megabytes), interpret (scris în C) pentru Linux - de la 182 până la 246 kilobytes, iar setul standard de biblioteci - chiar 421 kilobytes.

Să începem cu tradiționalul:

Sunt de acord, familiar și nu prea informativ. Un exemplu mai interesant din punctul de vedere al cunoașterii lui Lua îl reprezintă calculul factorial al numărului introdus:


funcția (n)
dacă n == 0 atunci
retur 1
altfel
returnează n * fapt (n-1)
capăt
capăt

print ("introduceți un număr:")
a = io.read ("* number") - citiți un număr
print (fapt (a))

Totul este foarte clar. Apropo, Lua susține asignarea paralelă:

Și, în concluzie, un exemplu destul de simplu folosind bibliotecile:

#include
#include
#include
#include
#include

int principal (void) char buff [256];
int eroare;
lua_State * L = lua_open (); / * deschide Lua * /
luaopen_base (L); / * deschide biblioteca de bază * /
luaopen_table (L); / * deschide biblioteca de tabele * /
luaopen_io (L); / * deschide biblioteca I / O * /
luaopen_string (L); / * deschide șirul lib. * /
luaopen_math (L); / * deschide matematica. * /

în timp ce (fgets (piele de bivol, sizeof (piele de bivol), stdin)! = NULL) eroare = luaL_loadbuffer (L, piele de bivol, strlen (piele de bivol), "linia") ||
lua_pcall (L, 0, 0, 0);
dacă (eroare) fprintf (stderr, "% s", lua_tostring (L, -1));
lua_pop (L, 1); / * mesaj de eroare pop din stiva * /
>
>

lua_close (L);
retur 0;
>

Avantaje și dezavantaje

Deci, ce este bun despre Lua?

În primul rând, după cum sa menționat deja, compactitatea sa, și cuplat cu faptul că codul sursă scris în C, veți obține o interacțiune complet cu una dintre cele mai populare limbi din lume și o gamă largă de platforme disponibile.

În al doilea rând, este rapid. Dacă te uiți la caracteristicile comparative cu alte limbi, poți vedea că, deși Lua nu pune C sau Python pe ea, dar în unele teste arată rezultate excelente.

În al treilea rând, este foarte convenabil pentru studierea chiar și de către cei mai experimentați programatori. Cu siguranță chiar și cei care cunosc limba engleză înțeleg cel puțin 80% din codul descris mai sus și se pot reproduce fără probleme.

Al patrulea argument este că nu veți avea probleme cu găsirea de informații. Lua are multe informații utile direct pe site-ul oficial. În plus, o comunitate foarte bine dezvoltată pe StackOverFlow și IRC-chat. și în SUA, dezvoltatori și creatori și se întâlnesc în fiecare an.

Iubitorii de tendințele contemporane implică faptul că puteți scrie pe funcția Lua kod.Da acolo, dacă vă luați cel puțin două săptămâni de programare în Lua, veți găsi că mai mult de o duzină de profesioniști.

Cu toate acestea, nu există limbi fără defecte, însă în Lua ele sunt de natură locală. De exemplu, limbajul prestabilit nu acceptă unicode, dar acest lucru este fixat utilizând o bibliotecă specială pentru ICU. Sau posibilități limitate de tratare a erorilor și a excepțiilor. deși mulți vor lua în considerare acest lucru pentru totdeauna. Sau necesitatea de a pune ultima declarație de întoarcere în bloc, dar din nou pentru mulți este o regulă naturală de cod bun.

Medii de dezvoltare

ZeroBrane Studio este un mediu specializat scris în Lua;

Decoda nu este cel mai popular IDE cross-platform, dar va funcționa ca o alternativă;

WoWUIDesigner - ghiciți pentru ce joc acest mediu ajută la manipularea scripturilor, inclusiv Lua?

Vreau să știu totul

Link-uri utile

Articole similare