Ethereal-dev: Re: [Ethereal-dev] Re: [Ethereal-cvs] rev 17057: /trunk/plugins/lua/: Makefile.a

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Ulf Lamping <ulf.lamping@xxxxxx>
Date: Fri, 20 Jan 2006 05:18:58 +0100
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