1. I am just curious. What does Lua do that modern Basic can't?

    And I think that Basic is even easier to learn.

    Well, the simplest answer as pertains to this site's topic: You can program for WoW in Lua. You can't in Basic.

    As for why that is, you'd have to ask Blizzard. But I'd guess their answer would sound something like something like this.

    Besides, learning more languages often makes you a better programmer in those you already know.

    I am just curious. What does Lua do that modern Basic can't?

    And I think that Basic is even easier to learn.

    Well, "modern basic" is a bit of a misnomer, since the basic language hasn't had much evolution over the course of time. Either way, the primary reasons for a language like Lua are the following:

    • It is easy to embed in another application, which is specifically how WoW uses Lua
    • It doesn't constrain you to a single mode of thinking or programming. Doing something functional style in basic is extremely difficult, and the other paradigms are just as awkward.
    • Lua is extremely small and extremely fast. As a result, it can be used to compliment the host application without lowering performance.
    • Lua tables are extremely easy to read and edit. This is due to the way the language evolved from a data description language to the version we're using currently. This means in the end even non-programmers can understand how to edit them.

    For this job there are only two languages that are typically considered, Python and Lua. There are clear reasons why Lua was chosen over Python.

    As for learning Lua, I suspect its due to your currently knowledge of basic. Lua isn't easy to learn if you try to learn it in the context of another language, but on it's own it remains internally consistent and most things "just make sense".

    FWIW, Lua is used VERY heavily in video game programming, specifically due to its strength as an embedded language.

    Ah, thank you for the good and clear answers all