Lua - är det värt att lära sig?

Permalänk
Medlem

Lua - är det värt att lära sig?

Hej!

Jag har plötsligt fått intresse av att lära mig Lua.
Anledningen är att jag gillar att pyssla med mikrokontrollers och inbäddad elektronik och började läsa lite om "Internet of Things" och råkade köpa mig ett par ESP8266 WiFI-moduler. Dessa kan man ladda med en firmware (NodeMCU) så att de kan programmeras i Lua för att skapa exempelvis en liten webbserver med integrerad mikroprocessor.

Här är en guide: http://www.benlo.com/esp8266/esp8266QuickStart.html
Dock är den där guiden windowsbaserad och jag kör Linux men det finns liknande verktyg för Linux.
Jag kanske kan slänga ihop en liten guide om jag får det att fungera.

Har själv mest programmerat i C och då AVR mikropocessorer och den där modulen kan man också programmera i C med hjälp av något halvdåligt dokumenterat API. Men Lua verkar enklare att komma igång med då det är svårt att hitta info om hur man programmerar den i C.

Så min fråga är finns det andra användningsområden där man använder Lua?
Har knappt hört talas om det innan men tror det nämnts här på forumet.
Som jag fattar det är det liksom ett scriptspråk liknande Python men med hyfsat bra prestanda?
Fördelar och nackdelar jämfört med exempelvis C, C++, Java eller Python?

Permalänk
Hedersmedlem

Lua används till mycket. Anledningen till att jag började labba med det var för att skriva WoW addons. Och det används till en hel del andra spel, tex Civ.

Det är inte så värst komplicerat att lära sig om man kan några andra språk, så om du är intresserad så varför inte köra på? En fördel som jag har uppfattat det är att Lua har en bra licensform, vilket är bra om man vill implementera en scriptmotor i sin egen mjukvara.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem

Jo jag för väl prova mig fram. Gillar C bäst men om något annat alternativ är enklare för att fixa problemet så är det väl bättre att köra på det.

Ja just det, det var inom spelutveckling jag hört om Lua. Antar det är hyfsat effektivt programspråk eftersom man väljer det för spel och att lägga det på en liten klen mikrokontroller (visserligen 80 MHz 32-bitars så jämförelse med 8-bit AVR som jag kört innan så är det ett prestandamonster).

Permalänk
Datavetare

Den enda större poäng jag hört med Lua är att dess skriptmotor är väldigt kompakt och mycket enkel att stoppa in i projekt som i övrigt kör C eller C++. Det stämmer för övrigt väldigt väl ihop med områdena där giplet har sett Lua användas, har själv sett några projekt för inbyggda-system där man använt mestadels C men kört Lua för delar man av olika anledningar vill skripta.

Som språk i sig är det kanske inte så mycket att bli upphetsad över.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Scriptmotorn för Lua är skriven i C och kan relativt enkelt kompileras med kompilator för C eller C++. NodeMCU är alltså en firmware skriven i C med diverse funktioner för mikrokontrollern som kan anropas från Lua om jag förstår det rätt vilket alltså gör det hyfsat enkelt att göra små script för de nätverkstjänster man vill utnyttja och för att programmera in och utgångar på mikrokontrollern.

Jag ska prova lite och jämföra det med att skriva något eget i C. Kanske kan jag skriva funktioner i C som jag anropar via Lua. Är väl för att få någon sorts högnivåspråk som använder hårdvarunära eller prestandakrävande funktioner man skapat i C antar jag. Fast så kan man väl göra med de flesta programmeringsspråken tror jag - alltså anropa C-kod.

Tydligen ska det vara på gång att skapa en python-tolk för den där WiFi-modulen också men det har inte kommit lika långt. På ett sätt känns det lite som slöseri med resurser men någonstans går väl gränsen där prestanda och minnesutrymme räcker till att köra högnivåspråk. Jag tycker det är lite skoj att man kan använda enklare hårdvara än exempelvis en raspberry pi och ändå köra ganska avancerade saker. Köpte de där modulerna för 25 kr styck ungefär.

Permalänk
Medlem

AFAIK så är det väldigt många av de program som stödjer plugins som har valt att använda sig av Lua som scriptspråk. Jag skulle absolut säga att det är värt att lära sig (funderar på samma sak själv när det kommer högst upp på min långa priolista )

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Medlem

Hur mycket tjänar du på att köra med lua mot din mikroprocessor? Jag gillar till exempel Python (för pc-grejor) för att man inte behöver skriva mycket och det är lättläst. Men sådant jag gjort för arduino i deras c/c++ har inte krävt så väldigt mycket kod för att göra det man vill. Hur avancerade saker är det du vill åstadkomma?

Visa signatur

/M

Permalänk
Medlem

Jag är mest ute för att lära mig använda den där modulen så effektivt som möjligt, sedan kvittar det vilket språk jag använder. Som jag förstått det är inte firmwaren som ger pythonstöd färdigutvecklad ännu och jag vill köra något som fungerar fullt ut.

Lua är nog mer lättläst än C tror jag men samtidigt får man inte samma koll på detajerna. Men jag tänker att är det något jag måste detaljstyra så borde jag kunna modda firmware i C och anropa den moddade funktionen från Lua.

Arduino har jag inte kört ännu men ska prova på det också någon gång. Har programmerat mikrokonrollers av typen AVR ATMega (likadana som sitter i Arduino) men programmerat dem direkt i C utan att använda arduino bootloader.

Här står det lite om status för Python på ESP8266:
https://github.com/micropython/micropython/tree/master/esp826...
Att den ännu inte har Wifi-support är ju en nackdel när det är en Wifi-modul som ska programmeras.

Permalänk
Avstängd

Håll dig dock borta från C# versionen av Lua, inte underhållen och full med minnesproblem som trasar sönder CLRen, jag körde det ett tag för ett av mina Open source project, https://andersmalmgren.github.com/FreePIE men bytte till Iron Python av ovan nämnda anledning.

Visa signatur
Permalänk
Medlem

Om du redan kan programmera är det egentligen inte så värst mycket att lära sig, språket är relativt simpelt, du kan nog lära dig tillräckligt på några dagars lätt läsande och lekande. Om frågan snarare är om det är värt att lägga manken till och bli värsta "lua proffset" så tror jag det är tveksamt. Lua används flitigt i vissa niche områden, men jämfört med mer användbara språk faller det ju något kort, tror det är bättre på att fokusera på något bredare språk som C, C++, C#, Java eller Python och sen lära sig Lua syntaxen som sidoprojekt.

Visa signatur

Fractal Design Define R5 | MSI Z97-GD65 Gaming | MSI Geforce GTX 970 Gaming 4G | Intel i5 4690k | Cooler Master Hyper 212 EVO | EVGA Supernova G2 750W | 2x8GB Corsair Vengeance Low Profile DDR3 1600Mhz | Samsung 850 EVO | Seagate 1TB SATA3.5