Quote:
What prevents you from writing support for Python? If the interface is the same, you can just link against some headerfiles and be done with it, right?
...
Merely leave the option there to use Python, Perl, Ruby and so forth if the user has those installed.
I don't see how you can easily support lots of script engines, short of using the Microsoft scripting interface, which itself is working directly against the idea of making a client available on multiple platforms.
For one thing, each language has different facilities (sets in Python were mentioned), so some sort of "common" interface would have to use the lowest-common-denominator that is provided by all languages (eg. you can forget sets).
Already in MUSHclient there are two completely different ways of calling a callback function - the MS scripting interface way (where variables are turned into variants), and the Lua way (where variables are pushed onto the Lua "stack").
Quote:
Worstje said:
But for anything other than elementary scripting, I am very glad I'm not stuck with Lua.
As I said before, I don't want to get into a "script language war", because choice of languages is rather a subjective thing.
However I would like to point out one fact, as opposed to an opinion ...
The MMORPG game "World Of Warcraft", which (claims to) have over 8 million subscribers, each paying around $US 15 per month (work that out!) chose Lua as its scripting language. Now, Blizzard is big enough to write their own language, or spend weeks evaluating the various languages available. One supposes that they compared Lua to Python, Perl, TCL, Java, and all the other possible languages, plus the option of developing an in-house one. Surely the fact that they chose Lua says something about the language?
They use Lua not only for end-user scripting, but the client they supply (the GUI client that displays you running around and fighting) has a considerable amount of scripting support supplied as default by Blizzard. For example, incoming chat messages are routed to various panes on the main screen by its supplied scripts.
They have documented their scripting interface (there are hundreds of them), which allows scripters to create additional panes, write to them, move them around, catch events, and so on.
There are thousands of end-user addons (plugins as we call them here), which do all sorts of things. There are plugins to manage raids groups (groups of 10 to 40 people on a large quest), plugins to manage your inventory, and your auctions.
Despite being implemented in Lua, there are very rarely pauses or slow-downs in the interface, excepting perhaps when you go to an "auction house" initially, when there might be a 1-second delay while the tens of thousands of auction items are loaded into memory from the disk database (a Lua table).
They also have the advantage that, since Lua is cross-platform, it also works on their Mac version.
Again, the more popular plugins supply multiple (human) language support, by having files of messages in English, French, and so on.
Blizzard does not support other script languages for WoW, just Lua. By doing so they simplify their work load. They don't need to develop methods for converting variables from one language format to another.
|