LEGO wrote:
Hi List,
For the last few days I've been working in embedding Lua (a
programming language) into ethereal.
Info about Lua can be found in http://www.lua.org .
I choose Lua because I found it preety easy to embed (so far less than
2K lines of straightforrward C). Because it implements references to
functions (Callbacks) which are very essential to ethereal's model.
And mainly because embeding it took me a fraction of the time it has
taken me just to begin the fruitless developement of an ethereal
specific language, and last but not leaast because it is already
documented.
Hi LEGO!
I'm *very* pleased that you see the benefits of using a "standard"
scripting language for this task as this will have some obvious benefits.
I've heard about lua together with SciTE (http://www.scintilla.org) a
small text editor before, but I'm really no scripting expert (just doing
a little python and some bash scripting before).
Just asking why you choose this relative "exotic" language?
The main disadvantage in my eyes: bindings to advanced features is
really limited (e.g. networking: sending a ping/mail/...). One of the
main advantages of scripting languages IMHO is to be able to use such
advanced features in an quick, easy and platform independent way.
I see some other lua disadvantages:
- users must certainly learn a new language (and don't know others to ask)
- documentation of lua is a bit sparse
- running the risk that lua will be discontinued
Any reasons not using a widely used one, like python, ruby or perl (I
personally prefer python, but this is obviously based on my personal
knowledge).
I've had a quick look how to start such a binding to python:
- http://python.org/doc/2.4.2/ext/ext.html "Extending and Embedding the
Python Interpreter"
- http://python.org/doc/2.4.2/api/api.html "Python/C API Reference Manual"
I understand that choosing the "right" language is difficult as most
programmers will have a personal bias and each programmer will tell you
a different story.
On the other hand I understand that there may be good reasons to use a
relative "exotic" language to simply bring this to life and the binding
itself seems to be straightforward.
BTW: Defining a powerful and at the same time simple (scripting) API is
another (difficult) task which is overall independent of the actually
chosen scripting language. So having a good scripting binding to lua is
a good start for other bindings as well :-)
Anyway, I really appreciate to see that you taken a big step in the
right direction IMHO.
Regards, ULFL